Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Português
Comece agora

Referência de erro de proxy · Erros de conexão e TLS

Read timed out através de proxy: causas e timeouts sensatos

Erro de timeout do cliente: a mensagem exata em cada ferramenta, as causas prováveis em ordem, e o conserto que funciona.

Última atualização: · 4 min de leitura

Resposta rápida

O que Read timed out (ReadTimeout) significa com um proxy?

Read timed out significa que seu cliente esperou mais que o timeout de leitura para os próximos bytes da resposta. Através dos proxies residenciais CrawlRelay, o atraso geralmente vem de um alvo lento ou uma saída residencial lenta. Defina timeouts separados para conexão e leitura, cerca de 10 e 30 a 60 segundos para páginas HTML, e tente novamente uma requisição que expire uma vez com uma saída nova.

Read timed out (ReadTimeout) de relance

ErroRead timed out (ReadTimeout)
TipoErro de timeout do cliente
Enviado porSeu cliente HTTP, quando nenhum dado chega dentro do timeout de leitura
Definido emClient setting, no protocol status
Tentar novamente?Sim, uma ou duas vezes em uma nova saída
Primeira verificaçãoCompare seu timeout de leitura com o tempo normal de resposta do destino

O que Read timed out (ReadTimeout) significa?

Clientes geralmente têm dois relógios. O timeout de conexão limita quanto tempo o cliente espera para abrir a conexão com o proxy. O timeout de leitura limita quanto tempo ele espera entre bytes após a requisição ser enviada. Um timeout de leitura significa que a conexão funcionou mas a resposta foi lenta.

Sem timeouts explícitos, alguns clientes esperam indefinidamente. Em requests do Python, o padrão é sem timeout, então uma requisição travada pode congelar um worker.

Como a read timeout aparece em Python, curl, Node.js e navegadores?

A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:

  • Python requests: ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)
  • httpx: httpx.ReadTimeout
  • Node.js: ETIMEDOUT, ESOCKETTIMEDOUT, ou um AbortError do seu próprio timer
  • Playwright: TimeoutError: page.goto: Timeout 30000ms exceeded

O que causa a read timeout?

Mais provável inicialmente:

  • Página alvo lenta, como resultados de busca ou páginas dinâmicas pesadas.
  • Saída lenta: velocidade de upload residencial, Wi-Fi ou célula móvel congestionada.
  • Downloads grandes lidos em um bloco só em vez de streaming.
  • Timeouts muito curtos para o tipo de página.
  • Páginas em navegador que aguardam rede inativa em sites que nunca param de carregar rastreadores.

Como diagnosticar a read timeout passo a passo?

  1. Cronometre a requisição sem o proxy para ter referência.
  2. Registre tempo até o primeiro byte e tempo total separadamente.
  3. Verifique o tamanho das respostas para as URLs lentas.
  4. Em navegadores, verifique qual condição waitUntil você usa.
Teste a URL com erro usando curl (porta HTTP, modo verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Como corrigir a read timeout?

  • Defina ambos os timeouts: conexão cerca de 10 segundos, leitura 30 a 60 segundos para HTML, mais para arquivos grandes.
  • Stream respostas grandes e escreva em disco em pedaços.
  • Use domcontentloaded em vez de rede inativa no Playwright quando só precisar do HTML.
  • Bloqueie recursos pesados que não precisa em navegadores, como vídeo.
  • Tente novamente uma vez com uma saída nova, depois mova a URL para fila lenta.
Python httpx: timeouts explícitos para conexão, leitura, gravação e pool
import httpx

proxy = "http://USERNAME:[email protected]:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...

Devo tentar novamente após a read timeout?

Tente uma ou duas vezes um timeout de leitura em saída nova. Se a mesma URL continuar expirando, dê um timeout maior em uma fila lenta separada ao invés de aumentar o timeout para tudo. Cuidado com efeitos colaterais duplicados: só tente novamente requisições que são seguras para repetir, como GET.

Como Read timed out (ReadTimeout) se aplica ao CrawlRelay?

Cada nova conexão CrawlRelay sem ID de sessão usa uma saída residencial diferente, então uma nova tentativa também testa uma conexão residencial nova. Mantenha sessões sticky curtas para alvos lentos: se a saída for lenta, toda requisição na sessão será lenta.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: 504 Gateway Timeout · Connection reset · Guia de concorrência.

Read timed out (ReadTimeout): perguntas que desenvolvedores fazem

Qual timeout usar para scraping com proxies?

Comece com cerca de 10 segundos para conectar e 30 segundos para ler páginas HTML, depois ajuste a partir dos seus próprios testes. APIs JSON costumam ser mais rápidas; arquivos grandes e páginas de busca lentas precisam mais. Defina explicitamente: requests Python não tem timeout por padrão.

Timeout consome minha franquia?

Só para os bytes transferidos antes do timeout. Uma requisição que expira esperando o primeiro byte quase não transferiu nada. Um download grande que expira na metade transferiu dados. Faça streaming de arquivos grandes e retome downloads onde possível.

Por que timeouts ocorrem em rajadas?

Frequentemente porque o destino desacelera sob carga, às vezes devido à sua própria carga. Picos em várias saídas ao mesmo tempo apontam para o destino; timeouts isolados indicam saídas lentas individuais. Reduza a concorrência no host quando um pico começar.

Outros erros de proxy nesta referência

Códigos de status HTTP

Erros no navegador e cliente

Erros de conexão e TLS

Proxies residenciais com documentação que cobre os casos de falha

CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira.

A partir de US$ 0,50/GB · sem KYC

Comece agora