@vlad__is_lav

Как запарсить страницу?

Нужно перевести таблицу с сайта https://tomsk.hh.ru/article/31475 в exel для учебного проекта, решил написать парсер на python и сразу же столкнулся с проблемой. При запросе именно на эту страницу выдает 404. Пробовал подключиться к любым другим сайтам - все ок, код 200. Может ли на hh.ru стоять какая-то защита от парсинга?) В чем может быть проблема и как ее решить? Запрос делал так:
import requests
from bs4 import BeautifulSoup

url = 'https://tomsk.hh.ru/article/31475'
response = requests.get(url)
print(response)
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Может ли на hh.ru стоять какая-то защита от парсинга?)

Самая примитивная, которая чекает заголовки:
import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept-Encoding': 'gzip, deflate',
    'Connection': 'keep-alive',
}

res = requests.get('https://tomsk.hh.ru/article/31475', headers=headers)

if res.status_code == 200:
    soup = BeautifulSoup(res.text, 'html.parser')
    el = soup.find('div', class_='URS-ratingTable')

    if el:
        print(el)
    else:
        print('Table not found!')
else:
    print('The problem with connecting to the website', {res.status_code})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы