@Katerina92_lomova

Как упростить запрос парсинга на Питоне?

Подскажите, можно ли как-то упростить код.
Ищу значения с сайта, и группирую их по типам вакансий.
Понятно, что написание символов может быть разное, где-то большая буква, где то маленькая, где то русская буква, где-то английская. То есть прописываю в условии Java или JAVA или java. Можно ли упростить записи if в таком случае?

<source lang="python">
num_of_page = 39
job_elements = []
job_elements1 = []

for i in range(num_of_page):
    URL ="https://career.habr.com/vacancies?divisions[]=backend&page=" + str(i+1)+ "&type=all"
    page = requests.get(URL)
    soup = bs(page.text, "html.parser")
    vacancies_names = soup.find_all('a', class_='vacancy-card__title-link')
    for name in vacancies_names:
        if 'C# ' in name.get_text() or 'С#' in name.get_text()or '#C' in name.get_text():
            job_elements.append(name.get_text())
         elif'Java' in name.get_text() or 'java' in name.get_text() or 'JAVA' in name.get_text():
            job_elements1.append(name.get_text())
</source>
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Как вариант:
collected_data = [
  {'pattern': ['#c', 'c#'], 'result': []},
  {'pattern': ['java'], 'result': []}
]

...

for name in vacancies_names:
    for data in DATA:
        if any([x in name.get_text().lower() for x in data['pattern']]):
            data['result'].append(text)
            continue

В конце collected_data обогатится спарсенными данными

Если еще нужно похожие отлавливать с опечатками - типа "iava" вместо "java" - то посмотрите про расстояние Левенштейна
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы