Выдает ошибку 403 при парсинге сайта при помощи requsets, а при selenium 1023
Пытаюсь спарсить сайт https://www.svyaznoy.ru/catalog/accessories/8936/6270567/availability/moskva#mainContent только при requests.get() выдает 403, селениумом тоже не вариант, пробовал fake user-agent, не получилось, в селениум браузер менять пробовал.
import requests
headers ={'Host': 'static.criteo.net',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
'Accept-Language':'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive',
'Referer': 'https://www.svyaznoy.ru/',
'Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'iframe',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-User': '?1',
'TE': 'trailers'}
print(requests.post('https://www.svyaznoy.ru/catalog/accessories/8936/6270567/availability/moskva#availabilityContent',headers= headers))
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
class Parser():
def __init__(self,url):
self.driver = webdriver.Edge()
self.url = url
def parse(self):
try:
self.driver.get(self.url+'/availability/sankt-peterburg#mainContent')
finally:
self.driver.close()
p = Parser('https://www.svyaznoy.ru/catalog/notebook/1738/5871538#mainContent')
p.parse()
Даже указание всех заголовков не помогло
Ответы (1 шт):
Автор решения: Bubunduc
→ Ссылка
эта проблема решается этим кодом :
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
driver.get('https://www.svyaznoy.ru/catalog/accessories/8936/6270567')