При парсинге hh.ru результатом является пустой список

Рейтинг: 0Ответов: 0Опубликовано: 17.01.2023

При парсинге сайта hh.ru хочу вытащить название вакансии, ссылку на вакансию, вилку зп, название компании, город. При этом все вакансии отфильтровать по наличию в ее описании слов 'Django' или 'Flask'. Вытаскиваю каждый элемент в цикле, добавляю их в список в виде словаря. В итоге должен получиться список из словарей. Но у меня в итоге пустой список. Подскажите, пожалуйста, что не так? Код прилагаю.

import requests
from pprint import pprint
from bs4 import BeautifulSoup
from fake_headers import Headers
import json


def get_headers():
    return Headers(browser='chrome', os='win').generate()


HOST = 'https://hh.ru/search/vacancy?text=python&area=1&area=2'
html = requests.get(HOST, headers=get_headers()).text
pprint(html)

soup = BeautifulSoup(html, features='lxml')
vacancy = soup.find_all('div', class_='vacancy_serp-item__layout')
pprint(vacancy)

description_list = []
for item in vacancy:
    description_vacancy = item.find('div', data_qa='vacancy-serp__vacancy_snippet_requirement')
    description = description_vacancy.find('span').text
    if 'Django' in description and 'Flask' in description:
        description_list.append(item)


vacancy_list = []
for word in description_list:
    title = word.find('a', class_='serp-item__title').text
    link_tag = word.find('a', class_='serp-item__title')
    link = link_tag['href']
    try:
        salary_tag = word.find('span', class_='bloko-header-section-3')
        salary = salary_tag.text
    except Exception:
        salary = 'Не указана'
    company_tag = word.find('a', class_='bloko-link bloko-link_kind-tertiary')
    company = company_tag.text
    city_tag = word.find('div', class_='bloko-text')
    city = city_tag.text

    vacancy_list.append({

        'Название': title,
        'Зарплата': salary,
        'Компания': company,
        'Город': city,
        'Ссылка': link

    })

pprint(vacancy_list)

with open('vacancy.json', 'w') as f:
    json.dump(vacancy_list, f)

Ответы

Ответов пока нет.