Как парсить информацию со всех регионов, если мой браузер настроен только на мой регион?
Всем привет,
изучать python начал недавно и сейчас набираюсь опыта в парсинге. Посмотрел разные видео и решил попробовать создать парсер для auto.ru (достаточно банально, но полезно в моей работе)
Вот ссылка на сайт: https://auto.ru
Хочу, чтобы выбирал новые автомобили, любую марку, затем любую доступную модель, вставлял соответствующую ссылку в 'URL' и выгружался список с интересующей меня информацией. Столкнулся со следующей проблемой: учел пагинацию, но при проверке заметил, что количество страниц при парсинге отличается от реального количества страниц на сайте (у меня парсится меньше) Выяснил, что выгружаются только автомобили моего региона ("Москва"), а я хочу, чтобы выгружался "Любой регион", то есть все автомобили (кнопка в правом верхнем углу).
Но никак не могу разобраться, как правильно записать это в параметры и в параметры ли вообще.
Если кто подскажет, буду очень благодарен
Код вот:
import requests
from bs4 import BeautifulSoup
URL='https://auto.ru/cars/new/group/audi/a6/21210593-21210635/'
HEADERS={'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15', 'accept': '*/*'}
def get_html(url, params=None):
r=requests.get(url, headers=HEADERS, params=params)
return r
def get_pages_count(html):
soup=BeautifulSoup(html, 'lxml')
pagination=soup.find_all('a', class_='Button Button_color_whiteHoverBlue Button_size_s Button_type_link Button_width_default ListingPagination-module__page')
if pagination:
return int(pagination[-1].get_text())
else:
return 1
def parse ():
html=get_html(URL)
if html.status_code==200:
pages_count=get_pages_count(html.text)
print(pages_count)
else:
print('Error')
parse()
Ответы (1 шт):
Попробуйте передать все заголовки которые есть. Для этого нужно зайти в код элемента -> network -> потом не выходя из кода элемента выбрать все регионы. У вас перезагрузится страница и покажутся много файлов, нужно выбрать первый и нажать Headers. И там покажутся все заголовки, которые передаются. Один из них, скорее всего, будет отвечать за выбранное местоположение, надо просто в запросе передать все заголовки.