Como Usar um Proxy com HTTPX em Python para Requisições Anônimas
Specialist in Anti-Bot Strategies
Aumente sua automação e raspagem com Scrapeless Proxies — rápido, confiável e acessível.
HTTPX é um cliente HTTP moderno e completo para Python que suporta tanto solicitações síncronas quanto assíncronas. Ao realizar raspagem na web ou fazer inúmeras chamadas de API, integrar um proxy é um passo crítico para manter a anonimidade e gerenciar o volume de solicitações. O HTTPX torna a configuração do proxy simples, suportando tanto configurações básicas quanto autenticadas.
Configuração Básica de Proxy no HTTPX
O HTTPX permite que você defina proxies usando um dicionário que mapeia o protocolo (http:// ou https://) para a URL do proxy. A URL do proxy segue o formato padrão: <PROTOCOL>://<IP_ADDRESS>:<PORT>.
python
import httpx
# Defina suas configurações de proxy
proxies = {
"http://": "http://216.137.184.253:80",
"https://": "http://216.137.184.253:80"
}
# Faça uma requisição com o proxy especificado
try:
r = httpx.get("https://httpbin.io/ip", proxies=proxies)
print(f"IP da Resposta: {r.json().get('origin')}")
except httpx.ProxyError as e:
print(f"Conexão de proxy falhou: {e}")
Alternativamente, você pode configurar o proxy ao inicializar uma instância de httpx.Client, que é a abordagem recomendada para fazer várias requisições ao mesmo destino, pois reutiliza a conexão [4].
python
import httpx
proxy_url = "http://216.137.184.253:80"
with httpx.Client(proxies=proxy_url) as client:
r = client.get("https://httpbin.io/ip")
print(f"IP da Resposta: {r.json().get('origin')}")
Lidando com Autenticação de Proxy
Para proxies que requerem um nome de usuário e senha, o HTTPX suporta embutir as credenciais diretamente na URL do proxy. O formato é http://<USERNAME>:<PASSWORD>@<IP_ADDRESS>:<PORT>.
python
import httpx
# URL do proxy com credenciais embutidas
proxy_url = "http://<SEU_NOME_DE_USUÁRIO>:<SUA_SENHA>@proxy.scrapeless.com:1337"
with httpx.Client(proxies=proxy_url) as client:
r = client.get("https://httpbin.io/ip")
print(f"IP da Resposta: {r.json().get('origin')}")
Implementando Rotação de Proxy
Para evitar detecções e manter altas taxas de sucesso, você deve rotacionar seus proxies. Isso envolve manter uma lista de endpoints de proxy e selecionar aleatoriamente um para cada requisição ou sessão. Isso é particularmente eficaz quando combinado com uma biblioteca de raspagem robusta.
python
import httpx
import random
# Lista de URLs de proxy (por exemplo, do seu painel Scrapeless)
proxy_urls = [
"http://user:pass@proxy1.scrapeless.com:10000",
"http://user:pass@proxy2.scrapeless.com:10001",
"http://user:pass@proxy3.scrapeless.com:10002",
]
def make_proxied_request(url):
# Seleciona um proxy aleatório para a requisição
random_proxy = random.choice(proxy_urls)
# Configura o proxy para o cliente
proxies = {
"http://": random_proxy,
"https://": random_proxy
}
try:
with httpx.Client(proxies=proxies, timeout=10.0) as client:
response = client.get(url)
response.raise_for_status()
return response
except httpx.RequestError as e:
print(f"Ocorreu um erro ao solicitar {url} via proxy {random_proxy}: {e}")
return None
# Exemplo de uso
response = make_proxied_request("https://targetwebsite.com/data")
if response:
print(f"Dados raspados com sucesso com código de status: {response.status_code}")
Solução de Proxy Recomendada: Scrapeless Proxies
Para raspagem assíncrona de alto volume com o HTTPX, uma infraestrutura de proxy confiável é fundamental. Scrapeless Proxies são projetados para desempenho e discrição, oferecendo um pool diversificado de IPs que minimizam o risco de bloqueio. Seus Proxies Residenciais e Proxies ISP Estáticos são particularmente eficazes para raspagem baseada em Python, fornecendo o alto nível de confiança necessário para acessar alvos complexos.
Perguntas Frequentes (FAQ)
P: O HTTPX suporta proxies SOCKS?
R: Sim, o HTTPX suporta proxies SOCKS. Você precisa apenas especificar o protocolo SOCKS na URL do proxy, por exemplo: socks5://user:pass@ip:port [5].
P: Qual é a vantagem de usar httpx.Client em vez de httpx.get() simples?
R: Usar httpx.Client permite o agrupamento de conexões e o gerenciamento de sessões, o que é mais eficiente ao fazer múltiplas requisições. Também permite definir parâmetros padrão, como proxies, para todas as requisições feitas dentro daquela sessão do cliente.
P: Como faço para lidar com erros de proxy no HTTPX?
R: O HTTPX levanta exceções específicas para problemas de rede. Você deve envolver suas requisições em um bloco try...except e capturar httpx.ProxyError ou o mais geral httpx.RequestError para implementar a lógica de repetição ou mudar para um proxy diferente.
Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.



