при парсинге beru.ru отвечает ошибками : '403' либо 'Connection aborted'
При попытке парсить сайт beru.ru выдаются ошибки:
403:
import requests
from bs4 import BeautifulSoup
import time
URL = 'https://m.beru.ru/catalog/tovary-dlia-avto-i-mototekhniki/76688/list?hid=90402&how=aprice#1-0'
class ParserBeru:
def __init__(self, url):
self.url = url
self.session = requests.Session()
self.session.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
'Accept-Language': 'ru',
}
def get_page(self):
res = self.session.get(url=self.url)
res.raise_for_status()
return res.text
def main():
Parser = ParserBeru(url=URL)
soup = BeautifulSoup(Parser.get_page(), 'lxml')
print(soup)
if __name__ == '__main__':
try:
main()
except Exception as e:
print(f'Ошибка чтения страницы. Пожалуйста подождите...\n{e}')
time.sleep(5)
и "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))" при смене headers на:
self.session.headers = {
'Host':'https://m.beru.ru/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'ru,en-US;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'DNT': '1',
'Connection':'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache'
}
PS: если парсить с помошью selenium, то все нормально работает. я предполагаю, либо с куками проблема, либо то, что beru отправляет запрос, ну а естественно request на него не отвечает. если напишете пару строчек кода с решением данной проблемы, буду очень признателен :). если почитать ответ, то пишет: "Доступ к нашему сервису временно запрещён!
Возможно, ваш компьютер заражён вредоносной программой, которая автоматически обращается к Яндексу." и т.д.
Заренее спасибо за помощь
Ответы (1 шт):
Возможно я ошибаюсь, но возможно вам стоит отправлять на сайт куки. Например,
HEADERS ={'cookes'= 'erhfuiwhgfiuwerhiw4ueghfwoqghuyq4go7w4gfuier(что-то)'}
r = requests.get(url, headers=HEADERS)
Надеюсь помог