Задать вопрос
Shampoo123
@Shampoo123
Fullstack developer

Парсинг на Python. В чём ошибка при GET запросе?

Привет, нужно спарсить один сайт. Я уже что только и не пробовал. Нашёл хороший сайт, который по cURL составляет headers, coockies и т.д. Сначала всё было шикарно, запросы идут, статус код 200. Понял то, что спустя какой-то промежуток времени куки с ключами PHPSESSID, cf_clearance меняются. Я захожу в браузер, в ручную подключаюсь к странице https://bamper.by/catalog/zapchasti/ и оттуда беру значение тех куки, вношу их в свой файл и запрос работает. Как автоматизировать этот процесс, чтобы я не заходил вручную в браузер и не копировал эти куки, а они сами обновлялись
Страница, которую нужно спарсить - https://bamper.by/catalog/zapchasti
Сайт, который дал coockies, headers - https://curlconverter.com/
Мой код:
import requests

cookies = {
    '_ga': 'GA1.1.529097006.1717094448',
    '_ym_uid': '1717094449319663323',
    '_ym_d': '1717094449',
    'BX_USER_ID': '218dd1b17e725f4f71d20c7c8f63b9a5',
    '_ym_isad': '2',
    'BITRIX_SM_aLastSearch': 'a%3A2%3A%7Bi%3A0%3Ba%3A2%3A%7Bs%3A5%3A%22title%22%3Bs%3A28%3A%22CD-%D1%87%D0%B5%D0%B9%D0%BD%D0%B4%D0%B6%D0%B5%D1%80%20Acura%20CL%22%3Bs%3A3%3A%22url%22%3Bs%3A51%3A%22%2Fzchbu%2Fzapchast_cd-cheyndzher%2Fmarka_acura%2Fmodel_cl%2F%22%3B%7Di%3A1%3Ba%3A2%3A%7Bs%3A5%3A%22title%22%3Bs%3A72%3A%22%D0%9F%D0%BD%D0%B5%D0%B2%D0%BC%D0%BE%D1%86%D0%B8%D0%BB%D0%B8%D0%BD%D0%B4%D1%80%20%D1%80%D1%83%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D0%B8%20Chevrolet%20Tahoe%22%3Bs%3A3%3A%22url%22%3Bs%3A75%3A%22%2Fzchbu%2Fzapchast_pnevmotsilindr-rulevoy-kolonki%2Fmarka_chevrolet%2Fmodel_tahoe%2F%22%3B%7D%7D',
    '_ym_visorc': 'b',
    'cf_clearance': 'ZGsSoSUHpHXlxYVBUhgss2l7uPB2PMqSnNZxDlbHR7s-1717416732-1.0.1.1-6QpZ0jRiNmtX.dRtDjPUm.O0ZiFw.5HSLlTMl_j67h1pjVTjFhZ4Pm8zUF5j0ZNRt.ioQr0GjsqbxmSFmCuA1Q',
    'PHPSESSID': '85rh7cf2bquaoc1im7ggq2caqf',
    '_ga_6M4HY0QKW3': 'GS1.1.1717411992.2.1.1717417676.0.0.0',
}

headers = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    # 'cookie': '_ga=GA1.1.529097006.1717094448; _ym_uid=1717094449319663323; _ym_d=1717094449; BX_USER_ID=218dd1b17e725f4f71d20c7c8f63b9a5; _ym_isad=2; BITRIX_SM_aLastSearch=a%3A2%3A%7Bi%3A0%3Ba%3A2%3A%7Bs%3A5%3A%22title%22%3Bs%3A28%3A%22CD-%D1%87%D0%B5%D0%B9%D0%BD%D0%B4%D0%B6%D0%B5%D1%80%20Acura%20CL%22%3Bs%3A3%3A%22url%22%3Bs%3A51%3A%22%2Fzchbu%2Fzapchast_cd-cheyndzher%2Fmarka_acura%2Fmodel_cl%2F%22%3B%7Di%3A1%3Ba%3A2%3A%7Bs%3A5%3A%22title%22%3Bs%3A72%3A%22%D0%9F%D0%BD%D0%B5%D0%B2%D0%BC%D0%BE%D1%86%D0%B8%D0%BB%D0%B8%D0%BD%D0%B4%D1%80%20%D1%80%D1%83%D0%BB%D0%B5%D0%B2%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D0%B8%20Chevrolet%20Tahoe%22%3Bs%3A3%3A%22url%22%3Bs%3A75%3A%22%2Fzchbu%2Fzapchast_pnevmotsilindr-rulevoy-kolonki%2Fmarka_chevrolet%2Fmodel_tahoe%2F%22%3B%7D%7D; _ym_visorc=b; cf_clearance=ZGsSoSUHpHXlxYVBUhgss2l7uPB2PMqSnNZxDlbHR7s-1717416732-1.0.1.1-6QpZ0jRiNmtX.dRtDjPUm.O0ZiFw.5HSLlTMl_j67h1pjVTjFhZ4Pm8zUF5j0ZNRt.ioQr0GjsqbxmSFmCuA1Q; PHPSESSID=85rh7cf2bquaoc1im7ggq2caqf; _ga_6M4HY0QKW3=GS1.1.1717411992.2.1.1717417676.0.0.0',
    'priority': 'u=0, i',
    'referer': 'https://bamper.by/catalog/modeli/',
    'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
    'sec-ch-ua-arch': '""',
    'sec-ch-ua-bitness': '"64"',
    'sec-ch-ua-full-version': '"125.0.6422.141"',
    'sec-ch-ua-full-version-list': '"Google Chrome";v="125.0.6422.141", "Chromium";v="125.0.6422.141", "Not.A/Brand";v="24.0.0.0"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-model': '"Nexus 5"',
    'sec-ch-ua-platform': '"Android"',
    'sec-ch-ua-platform-version': '"6.0"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Mobile Safari/537.36',
    'Upgrade-Insecure-Requests': '1'
}

response = requests.get('https://bamper.by/catalog/zapchasti/', cookies=cookies, headers=headers)
print(response)
  • Вопрос задан
  • 158 просмотров
Подписаться Средний 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
xenon
@xenon
Too drunk to fsck
Сделайте сессию, как описано здесь - https://requests.readthedocs.io/en/latest/user/adv...

При первом заходе, в сессии появятся куки, а следующие запросы в рамках этой сессии будут их использовать.
Если сервер (не важно по какой причине) выдаст новые значения кукам, они так же сами автоматически отразятся в сессии.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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