Почему я получаю ошибку 429 каждый раз при использовании Selenium, но ни разу при обычном просмотре сайта bstn.com?Python

Программы на Python
Ответить
Anonymous
 Почему я получаю ошибку 429 каждый раз при использовании Selenium, но ни разу при обычном просмотре сайта bstn.com?

Сообщение Anonymous »

После нескольких часов поиска по переполнению стека и другим страницам я так и не смог найти решения своей проблемы. Я хотел бы просмотреть страницу https://www.bstn.com/eu_de с помощью Python Selenium и ChromeDriver.
При посещении страницы в обычном браузере, таком как Firefox или Chrome, это открывается без проблем. Однако при использовании Selenium возвращается страница с белым экраном. Мой скрипт уже включает в себя стандартные процедуры, которые можно найти в StackOverflow сотни раз:

Код: Выделить всё

options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
Я также использую ротацию и обновление пользовательских агентов при каждом запросе.
Дальнейшее расследование показало, что сервер, похоже, выдает ошибку 429. Обычно ошибка 429 указывает на то, что было сделано слишком много запросов, но поскольку я пробовал ее менее 10 раз, а в обычных браузерах она все еще работает, это, похоже, не является проблемой.
Еще один взгляд на вкладку «Сеть Chromes» -> «Заголовки» показывает, что сервер, выдающий ошибку 429, — это Cloudflare, поэтому кажется, что Cloudflare каким-либо образом замешан в этом.
Я сравнил заголовки запросов успешного соединения. (Справа на картинке) и соединение с ошибкой 429 слева.
Сравнение заголовков
Единственное отличие — немного больший набор файлов cookie (все файлы cookie были удалены до запрос, где он был сделан), заголовок реферера, значение sec-fetch-site, содержащее тот же источник, и sec-fetch-user: ?1 .
Добавление/изменение этой информации заголовка с помощью инструмента под названием Selenium Wire, не Кажется, это никак не влияет на проблему, с которой я столкнулся.
Я также мог идентифицировать файл cookie запроса: "name":"KP_REF","domain":"www. bstn.com","value":""
создается в обычном браузере и не существует при использовании Selenium. Добавляю:

Код: Выделить всё

driver.add_cookie({"name":"KP_REF","domain":"www.bstn.com","value":""})
также ничего не меняет.
Что я упускаю или делаю неправильно, чтобы получить доступ к этой странице? Я также пока не использую Chrome без дисплея и полагаюсь на использование ChromeDriver, поскольку это стандарт внутри нашего приложения. Я также настаиваю на ChromeDriver, поскольку ChromeDriverManager, похоже, не работает с undetected-ChromeDriver.

Подробнее здесь: https://stackoverflow.com/questions/716 ... of-the-tim
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»