Веб-скрапинг – ограничение скорости через страницу перенаправления?Python

Программы на Python
Anonymous
Веб-скрапинг – ограничение скорости через страницу перенаправления?

Сообщение Anonymous »

У меня есть скрипт Python, который использует Selenium для сбора данных из Yahoo Finance. После вызова driver.get() headless-браузер часто отображает страницу перенаправления, полную рекламы. Чаще всего это происходит сразу после входа в систему (первое, что делает скрипт, это входит в мою учетную запись Yahoo), но иногда и позже во время выполнения. Иногда сценарий остается на этом экране загрузки всего несколько секунд, прежде чем продолжить работу и успешно выполниться, но в большинстве случаев сценарий остается на странице перенаправления на неопределенный срок, пока мне не придется вручную закрыть программу и повторить попытку.
Я настроил драйвер на автоматическое завершение работы и повторную попытку, если загрузка страницы занимает более 25 секунд:
driver.set_page_load_timeout(25)

Это помогает в большинстве случаев, но я по-прежнему вижу, что сценарий иногда застревает на странице перенаправления, даже после установки тайм-аута. Я также настроил рандомизированный пользовательский агент и рандомизированное время ожидания, чтобы сценарий выглядел более похожим на человека, и это помогло.
Моя вероятность успеха еще ниже при запуске сценария в Windows вместо MacOS. Как я могу улучшить возможности моего сценария, чтобы избежать такого типа ограничения скорости и более последовательно работать в обеих операционных системах?
Когда я запускаю свой код в Windows, безголовый браузер отображает страницу перенаправления, например на снимке экрана и в командной строке показано:
DevTools listening on ws://127.0.0.1:50135/devtools/browser/f704d001-0bfe-4d23-b79c-611ca1374e3a
[5100:6840:0926/170336.793:ERROR:ssl_client_socket_impl.cc(882)] handshake failed; returned -1, SSL error code 1, net_error -100
[5100:6840:0926/170336.840:ERROR:ssl_client_socket_impl.cc(882)] handshake failed; returned -1, SSL error code 1, net_error -100
Message: timeout: Timed out receiving message from renderer: 25.000
(Session info: chrome=129.0.6668.71)
Stacktrace:
ZwWaitLowEventPair [0x00007FFF5A811C54+2766084]
GetHandleVerifier [0x00007FF7E82AB125+29573]
(No symbol) [0x00007FF7E821FF50]
(No symbol) [0x00007FF7E80DB6EA]
(No symbol) [0x00007FF7E80C41E7]
(No symbol) [0x00007FF7E80C3EEA]
(No symbol) [0x00007FF7E80C1D65]
(No symbol) [0x00007FF7E80C25BF]
(No symbol) [0x00007FF7E80D10CE]
(No symbol) [0x00007FF7E80E9B8D]
(No symbol) [0x00007FF7E80EF71A]
(No symbol) [0x00007FF7E80C2D24]
(No symbol) [0x00007FF7E80E9972]
(No symbol) [0x00007FF7E8178A01]
(No symbol) [0x00007FF7E81570A3]
(No symbol) [0x00007FF7E81212DF]
(No symbol) [0x00007FF7E8122441]
GetHandleVerifier [0x00007FF7E85DC76D+3377613]
GetHandleVerifier [0x00007FF7E8627B67+3685831]
GetHandleVerifier [0x00007FF7E861CF8B+3641835]
GetHandleVerifier [0x00007FF7E836B2A6+816390]
(No symbol) [0x00007FF7E822B25F]
(No symbol) [0x00007FF7E8227084]
(No symbol) [0x00007FF7E8227220]
(No symbol) [0x00007FF7E821607F]
uaw_wcsrchr [0x00007FFF592809BC+962300]
uaw_wcsrchr [0x00007FFF59217BA0+532704]
ZwWaitLowEventPair [0x00007FFF5A71B8B8+1757544]


Подробнее здесь: https://stackoverflow.com/questions/790 ... irect-page

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