Latest posts on как обойти ошибку 403 на таких сайтах как ozon и eldorado? topichttp://python.su/forum/topic/41825/2022-07-27T20:49:34+03:00Общий :: Python для новичков :: как обойти ошибку 403 на таких сайтах как ozon и eldorado?
2022-07-27T20:49:34+03:00AD0DE412223547requests <=> selenium ?
Общий :: Python для новичков :: как обойти ошибку 403 на таких сайтах как ozon и eldorado?
2022-07-27T16:02:12+03:00Naipalych223544Добрый день!<br/>Ситуация в общем такая:<br/>пишу на python телеграмм бота, который действует так:<br/>1. Пользователь вносит в программу список сайтов.<br/>2. Бот каждый час направляет запрос на сайт, и если статус 200 то все ок.<br/>3. Но если статус отличается от 200 то пользователю бота должно быть отправлено сообщение.<br/>Собственно проблема заключается в том, что большинство сайтов например мвидео, магнит отправляют статус 200 все ок. Но есть сайты такие как ozon или eldorado которые несмотря на переданный словарь header c параметрами user.agent и т.д. выдают ошибку 403 (отказано в доступе). Запросы выполняю через библиотеку requests.<br/>Подскажите, пожалуйста, что можно сделать в данном случае?<br/><br/>Пример кода:<br/><br/>import requests<br/>headers = {<br/> “Accept”: “application/json”,<br/> “Accept-Encoding”: “br, gzip, deflate”,<br/> “Accept-Language”: “ru,en;q=0.9,en-GB;q=0.8,en-US;q=0.7”,<br/> “Host”: “httpbin.org”,<br/> “Referer”: "<a href="https://httpbin.org/">https://httpbin.org/</a>“,<br/> ”Sec-Ch-Ua“: ”\“ Not A;Brand\”;v=\“99\”, \“Chromium\”;v=\“102\”, \“Microsoft Edge\”;v=\“102\”“,<br/> ”Sec-Ch-Ua-Mobile“: ”?0“,<br/> ”Sec-Ch-Ua-Platform“: ”\“Windows\”“,<br/> ”Sec-Fetch-Dest“: ”empty“,<br/> ”Sec-Fetch-Mode“: ”cors“,<br/> ”Sec-Fetch-Site“: ”same-origin“,<br/> ”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“,<br/> ”X-Amzn-Trace-Id“: ”Root=1-62a3330c-723e022541074b446b5835b4“<br/>}<br/>response = requests.get(”<a href="https://www.ozon.ru/">https://www.ozon.ru/</a>", headers=headers)<br/>print(response.status_code)