Был написан код, с помощью которого я хотела получить названия вакансий, компаний и их месторасположения, но в консоли выводится ответ "200", UserAgent использовала, чтобы как-то обойти проблему, но не помогло.....Буду благодарна, если кто-нибудь поможет)
Код на первый файл:
from headhunter import extract_max_page, extract_hh_jobs
hh_max_page = extract_max_page()
hh_jobs = extract_hh_jobs(hh_max_page)
print(hh_jobs)
Код на второй файл:
import requests
from bs4 import BeautifulSoup
ITEMS = 100
URL = f'https://hh.ru/search/vacancy?text=python&items_on_page={ITEMS}'
headers = {
'Host': 'hh.ru',
'User-Agent': 'Safari',
'Accept': '*/*',
'Accept-Encoding':'gzip, deflate, br',
'Connection': 'keep-alive'
}
def extract_max_page():
hh_request=requests.get(URL, headers=headers)
hh_soup = BeautifulSoup (hh_request.text,'html.parser')
pages = []
paginator = hh_soup.find_all("span", {'class':'pager-item-not-in-short-range'})
for page in paginator:
pages.append(int(page.find('a').text))
return pages[-1]
def extract_job(html):
title=html.find('a').text
link =html.find('a')['href']
company = html.find('div', {'class': 'vacancy-serp-item__meta-info-company'}).text
company = company.strip()
location = html.find('span', {'data-qa':'vacancy-serp__vacancy-address'}).text
location = location.partition(',')[0]
return {'title':title, 'company': company, 'location': location, 'link':link}
def extract_hh_jobs(last_page):
jobs = []
for page in range (last_page):
print(f'Парсинг страницы {page}')
result = requests.get(f'{URL}&page={page}', headers=headers)
print(result.status_code)
soup = BeautifulSoup (result.text,'html.parser')
results = soup.find_all('div', {'class':'serp-item__title'})
for result in results:
jobs.append(extract_job(result))
return jobs