示例#1
0
def main(saveMethods=DEFAULT_SAVE_METHODS) -> None:
    logInfo("----- МГУ (Магистратура) -----")

    if len(saveMethods) == 0:
        logWarning("Пустой список методов сохранения.")

    logInfo("Начат поиск конкурсов.")
    contestLinks = findContestLinks()
    logInfo("Конкурсов найдено: %d. Начат поиск поступающих." %
            len(contestLinks))
    linkToAbits = findAbitsAsync(contestLinks)
    logInfo("Найдено записей: %d. Готово." %
            sum(map(len, linkToAbits.values())))

    for saveMethod in saveMethods:
        saveMethod(linkToAbits, "msu-mag")
    logInfo("Сохранено.")
示例#2
0
def _writeJson(jsonData: Union[dict, list], dirName: str,
               fileName: str) -> None:
    dirName = "output/" + dirName

    if not os.path.exists(dirName):
        os.makedirs(dirName)

    fileName = "output/" + dirName + urllib.parse.quote_plus(fileName).replace(
        "\\", "/")

    suffixName = fileName[fileName.rfind("/") + 1:]
    if len(suffixName) > 255:  # Ограничение Windows
        suffixName = suffixName[-255:]

    fileName = dirName + suffixName

    with open(fileName, "w", encoding="utf-8") as outputFile:
        print(json.dumps(jsonData, ensure_ascii=False, indent=2),
              file=outputFile)
        logInfo("JSON файл '%s' записан." % fileName)
示例#3
0
def main(saveMethods=DEFAULT_SAVE_METHODS) -> None:
    logInfo("----- РГГУ (Магистратура) -----")

    if len(saveMethods) == 0:
        logWarning("Пустой список методов сохранения.")

    logInfo("Начат поиск бюджетников.")
    linkToAbitsBudget = parseSite(RGGU_SITE_BUDGET,
                                  {PROPERTY.FOR_MONEY: False})
    logInfo("Бюджетных конкурсов найдено: %d. Начат поиск контрактников." %
            len(linkToAbitsBudget))
    linkToAbitsContract = parseSite(RGGU_SITE_CONTRACT,
                                    {PROPERTY.FOR_MONEY: True})
    logInfo("Контрактных конкурсов найдено: %d. Начато слитие конкурсов." %
            len(linkToAbitsContract))

    linkToAbits = {**linkToAbitsBudget, **linkToAbitsContract}

    logInfo("Найдено записей: %d. Готово." %
            sum(map(len, linkToAbits.values())))

    for saveMethod in saveMethods:
        saveMethod(linkToAbits, "rggu-mag")
    logInfo("Сохранено.")
示例#4
0
def parseSite(link: str, additionalParameters: dict) -> dict:
    contestLinks = findContestLinks(link)
    logInfo("Конкурсов найдено: %s." % len(contestLinks))

    return findAbitsAsync(contestLinks, additionalParameters)
示例#5
0
def main(department: Optional[str] = None, saveMethods=DEFAULT_SAVE_METHODS):
    logInfo("----- РАНХиГС (Магистратура) -----")

    if len(saveMethods) == 0:
        logWarning("Пустой список методов сохранения.")

    logInfo("Начат поиск филиалов.")

    departmentToLink, count = findDepartmentToLink(RANEPA_SITE)
    if department is not None:
        departmentToLink = {department: departmentToLink[department]}
        count = 1
    logInfo("Филиалов найдено: %s. Начат поиск направлений." % count)

    departmentToSpecialityToLink, count = findDepartmentToSpecialityToLink(
        departmentToLink)
    logInfo("Направлений найдено: %s. Начат поиск форм." % count)

    departmentToSpecialityToFormToLink, count = findDepartmentToSpecialityToFormToLink(
        departmentToSpecialityToLink)
    logInfo("Форм найдено: %s. Начат поиск образовательных программ." % count)

    departmentToSpecialityToFormToEducationalProgramToLink, count = findDepartmentToSpecialityToFormToEducationalProgramToLink(
        departmentToSpecialityToFormToLink)
    logInfo("Образовательных программ найдено: %s. Начат поиск абитуриентов." %
            count)

    linkToAbits, count = findLinkToAbit(
        departmentToSpecialityToFormToEducationalProgramToLink)
    logInfo("Найдено записей: %s. Готово." % count)

    for saveMethod in saveMethods:
        saveMethod(linkToAbits, "ranepa-mag")
    logInfo("Сохранено.")
示例#6
0
def parseSpbu(contests: Optional[Set[str]], saveMethods, spbuSite: str, name: str, saveDir: str) -> None:
    logInfo("----- %s -----" % name)

    if len(saveMethods) == 0:
        logWarning("Пустой список методов сохранения.")

    if contests is None:
        logInfo("Поиск конкурсов.")
        contests = findContests(spbuSite)  # { contestId }
        logInfo("Найдено конкурсов: %d." % len(contests))

    contestLinks = addPrefixLinkToContests(spbuSite, contests)

    linkToAbits = findContestListsAsync(contestLinks)  # contestPage: { abit }

    logInfo("Обработано конкурсов: %d." % len(linkToAbits))
    logInfo("Найдено записей: %d. Готово." % sum(map(len, linkToAbits.values())))

    for saveMethod in saveMethods:
        saveMethod(linkToAbits, saveDir)
    logInfo("Сохранено.")