Python + Selenium Web Driver, httpconnectionpool (host = 'localhost', port = 'nnnnn'): читать время. (Читать тайм -аут =Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python + Selenium Web Driver, httpconnectionpool (host = 'localhost', port = 'nnnnn'): читать время. (Читать тайм -аут =

Сообщение Anonymous »

Веб -драйвер Python selenium < /h1>
Эта ошибка не возникает, когда код выполняется, но это происходит случайным образом. JavaScript в «верхнем» контексте сайта, чтобы все запросы были заблокированы, чтобы остановить генерацию новых файлов cookie или других данных. ЦЕЛЬ.

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

        driver.execute_cdp_cmd("Storage.clearDataForOrigin", {
"origin": "https://example.com",  # Especifique o domínio do site
"storageTypes": "all"
})
< /code>
Большую часть времени он может сделать эту очистку, но иногда он дает эту ошибку < /p>    blockquote>
Urllib3.exceptions.readtimeouterror < /p> < /> < />   < />  httpconnectionpool (host = ', hosthost>. вне. (Читать тайм -аут = 120) < /p>
< /blockquote>
driver = webdriver.Chrome() 

После генерации ошибки «чтение времени», программа становится очень медленной и не может выполнять основные функции драйвера как Driver.get ("https://example.com/") и требует много времени, чтобы попытаться запустить Driver.get или другие команды. Oct ' Программа Script \ возвращается к нормальному, если я перейду к Chrome, инициализированному Webdriver и перезаряжаю сайт вручную, нажав кнопку перезарядки.from selenium import webdriver
from urllib3.exceptions import ReadTimeoutError

driver = webdriver.Chrome()
driver.execute_cdp_cmd("Network.enable", {})

def acessar_site():
while True:
try:
driver.get("https://x.com/")
print("Site acessado com Sucesso!")
break
except Exception:
print("Não consegui acessar o site, tentando novamente")
driver.stop_client()

def limpeza_completa_offline():
try:
acessar_site()
# Define o código JavaScript que bloqueia todas as requisições
block_requests_script = """
window.blockAllRequests = () => {
// Substituir fetch
const originalFetch = window.fetch;
window.fetch = (...args) => {
console.log('Requisição fetch bloqueada:', args);
return new Promise(() => {}); // Retorna uma Promise que nunca será resolvida
};

// Substituir XMLHttpRequest
const originalXhrOpen = window.XMLHttpRequest.prototype.open;
const originalXhrSend = window.XMLHttpRequest.prototype.send;

window.XMLHttpRequest.prototype.open = function(method, url, ...rest) {
this._url = url;
originalXhrOpen.call(this, method, url, ...rest);
};

window.XMLHttpRequest.prototype.send = function(...args) {
if (this._url) {
console.log('Requisição XMLHttpRequest bloqueada:', this._url);
}
};

// Substituir EventSource (SSE)
const originalEventSource = window.EventSource;
window.EventSource = function(url, config) {
console.log('Requisição EventSource bloqueada:', url);
};

// Substituir WebSocket
const originalWebSocket = window.WebSocket;
window.WebSocket = function(url, protocols) {
console.log('Requisição WebSocket bloqueada:', url);
throw new Error("WebSocket bloqueado!");
};
};

window.blockAllRequests();
"""

print("Injetando java no contexto da página: bloquear requisições")
# Executa o código JavaScript para bloquear as requisições
driver.execute_script(block_requests_script)

print("Comando CMD: Limpando Local Storage, IndexedDB, Cache Storage, Interrompendo e Desregistrando os Services Workers.")
# Limpa Local Storage, IndexedDB, Cache Storage, Interrompe e Desrigistra os Services Workers.
driver.execute_cdp_cmd("Storage.clearDataForOrigin", {
"origin": "https://x.com", # Especifique o domínio do site
"storageTypes": "all"
})
except ReadTimeoutError as RTE:
print(F"Excessão: {RTE}")
print("Breakpoint; Primeiro tente executar a def no pdb e depois tente continuar a execução do script >> acessar_site()")
breakpoint()
acessar_site()

while True:
# Algum momento o erro aparece
limpeza_completa_offline()
< /Code>
Я попросил собственную поддержку Selenium webdriver и получил ответ: < /p>

selenium действует как HTTP -сервер, который принимает запросы и предоставляет ответы синхронным образом. ответ. В большинстве случаев это означает, что снова невозможно взаимодействовать с драйвером. В зависимости от того, сколько времени обычно занимает, это может иметь смысл увеличить время чтения.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... port-nnnnn
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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