Как обойти ошибку 403 при requests запросе на сайтах подобных ozon, eldorado?
Ситуация в общем такая: пишу на python телеграмм бота, который действует так:
- Пользователь вносит в программу список сайтов.
- Бот каждый час направляет запрос на сайт, и если статус 200 то все ок.
- Но если статус отличается от 200 то пользователю бота должно быть отправлено сообщение. Собственно проблема заключается в том, что большинство сайтов например мвидео, магнит отправляют статус 200 все ок. Но есть сайты такие как ozon или eldorado которые несмотря на переданный словарь header c параметрами user.agent и т.д. выдают ошибку 403 (отказано в доступе). Запросы выполняю через библиотеку requests, пробовал разные данные в headers но все равно сайты не хотят давать статус 200. Подскажите, пожалуйста, что можно сделать в данном случае?
import requests
headers = {
"Accept": "application/json",
"Accept-Encoding": "br, gzip, deflate",
"Accept-Language": "ru,en;q=0.9,en-GB;q=0.8,en-US;q=0.7",
"Host": "httpbin.org",
"Referer": "https://httpbin.org/",
"Sec-Ch-Ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Microsoft Edge\";v=\"102\"",
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": "\"Windows\"",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33",
"X-Amzn-Trace-Id": "Root=1-62a3330c-723e022541074b446b5835b4"
}
response = requests.get("https://www.ozon.ru/", headers=headers)
print(response.status_code)