Como Usar HTTPX com Proxies Scrapeless: Um Guia Completo
Specialist in Anti-Bot Strategies
Hoje, vamos aprender como usar proxies com HTTPX. Um proxy fica entre o seu scraper e o site que você está tentando scrapear. Seu scraper faz uma solicitação ao servidor proxy para o site alvo. O proxy então busca o site alvo e o devolve ao seu scraper.
Como Usar Proxies Não Autenticados
Em resumo, todas as nossas solicitações vão para um proxy_url. Abaixo está um exemplo usando um proxy não autenticado. Isso significa que não estamos usando um nome de usuário ou senha.
python
import httpx
proxy_url = "http://localhost:8030"
with httpx.Client(proxy=proxy_url) as client:
ip_info = client.get("https://geo.brdtest.com/mygeo.json")
print(ip_info.text)
Como Usar Proxies Autenticados
Quando um proxy requer um nome de usuário e senha, ele é chamado de proxy "autenticado". Essas credenciais são usadas para autenticar sua conta e lhe dar uma conexão ao proxy.
Com autenticação, nosso proxy_url fica assim: http://<username>:<password>@<proxy_url>:<port_number>. No exemplo abaixo, usamos tanto nossa zone quanto nosso username para criar a parte do usuário da string de autenticação.
Estamos usando os proxies residenciais da Scrapeless para nossa conexão base.
python
import httpx
username = "seu-usuario"
zone = "seu-nome-de-zona"
password = "sua-senha"
proxy_url = f"http://scrapeless-customer-{username}-zone-{zone}:{password}@scrapeless.proxy.io:33335"
ip_info = httpx.get("https://geo.brdtest.com/mygeo.json", proxy=proxy_url)
print(ip_info.text)
O código acima é bem simples. Esta é a base para qualquer tipo de proxy que você deseja configurar.
- Primeiro, criamos nossas variáveis de configuração:
username,zoneepassword. - Usamos isso para criar nosso
proxy_url:f"http://scrapeless-customer-{username}-zone-{zone}:{password}@scrapeless.proxy.io:33335". - Fazemos uma solicitação para a API para obter informações gerais sobre nossa conexão proxy.
Sua resposta deve ser semelhante a esta:
json
{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"","region":"","region_name":"","postal_code":"","latitude":37.751,"longitude":-97.822,"tz":"America/Chicago"}}
Como Usar Proxies Rotativos
Quando usamos proxies rotativos, criamos uma lista de proxies e escolhemos entre eles aleatoriamente. No código abaixo, criamos uma lista de countries. Quando fazemos uma solicitação, usamos random.choice() para usar um país aleatório da lista. Nosso proxy_url é formatado para se encaixar no país.
O exemplo abaixo cria uma pequena lista de proxies rotativos.
python
import httpx
import asyncio
import random
countries = ["us", "gb", "au", "ca"]
username = "seu-usuario"
proxy_url = "scrapeless.proxy.io:33335"
datacenter_zone = "sua-zona"
datacenter_pass = "sua-senha"
for random_proxy in countries:
print("----------informações de conexão-------------")
datacenter_proxy = f"http://scrapeless-customer-{username}-zone-{datacenter_zone}-country-{random.choice(countries)}:{datacenter_pass}@{proxy_url}"
ip_info = httpx.get("https://geo.brdtest.com/mygeo.json", proxy=datacenter_proxy)
print(ip_info.text)
Este exemplo realmente não é muito diferente do seu primeiro. Aqui estão as principais diferenças:
- Criamos um array de países:
["us", "gb", "au", "ca"]. - Em vez de fazer uma única solicitação, fazemos várias. Cada vez que criamos uma nova solicitação, usamos
random.choice(countries)para escolher um país aleatório cada vez que criamos nossoproxy_url.
Como Criar uma Conexão Proxy de Reserva
Nos exemplos acima, usamos apenas proxies de datacenter e proxies gratuitos. Proxies gratuitos não são muito confiáveis. Proxies de datacenter tendem a serem bloqueados com sites mais difíceis.
Neste exemplo, criamos uma função chamada safe_get(). Quando chamamos essa função, primeiro tentamos obter a URL usando uma conexão de datacenter. Quando isso falha, voltamos para nossa conexão residencial.
python
import httpx
from bs4 import BeautifulSoup
import asyncio
country = "us"
username = "seu-usuario"
proxy_url = "scrapeless.proxy.io:33335"
datacenter_zone = "datacenter_proxy1"
datacenter_pass = "senha-datacenter"
residential_zone = "residential_proxy1"
residential_pass = "senha-residencial"
cert_path = "/home/path/to/scrapeless_proxy_ca/New SSL certificate - MUST BE USED WITH PORT 33335/Scrapeless SSL certificate (port 33335).crt"
datacenter_proxy = f"http://scrapeless-customer-{username}-zone-{datacenter_zone}-country-{country}:{datacenter_pass}@{proxy_url}"
residential_proxy = f"http://scrapeless-customer-{username}-zone-{residential_zone}-country-{country}:{residential_pass}@{proxy_url}"
async def safe_get(url: str):
async with httpx.AsyncClient(proxy=datacenter_proxy) as client:
print("tentando com datacenter")
response = await client.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
if not soup.select_one("form[action='/errors/validateCaptcha']"):
print("resposta bem-sucedida")
python
retornar resposta
print("resposta falhou")
async with httpx.AsyncClient(proxy=residential_proxy, verify=cert_path) as client:
print("tentando com residencial")
resposta = await client.get(url)
print("resposta bem-sucedida")
retornar resposta
async def main():
url = "https://www.amazon.com"
resposta = await safe_get(url)
com open("out.html", "w") como file:
file.write(resposta.text)
asyncio.run(main())
Este exemplo é um pouco mais complicado do que os outros que tratamos neste artigo.
- Agora temos dois conjuntos de variáveis de configuração, um para nossa conexão de datacenter e um para nossa conexão residencial.
- Desta vez, usamos uma sessão
AsyncClient()para introduzir algumas das funcionalidades mais avançadas do HTTPX. - Primeiro, tentamos fazer nossa solicitação com o
datacenter_proxy. - Se falharmos em obter uma resposta adequada, tentamos novamente a solicitação usando nosso
residential_proxy. Note também a flagverifyno código. Ao usar os proxies residenciais da Scrapeless, você precisa baixar e usar o certificado SSL deles. - Uma vez que obtemos uma resposta sólida, escrevemos a página em um arquivo HTML. Podemos abrir esta página em nosso navegador e ver o que o proxy realmente acessou e nos enviou de volta.
Se você tentar o código acima, sua saída e o arquivo HTML resultante devem se parecer muito com isso:
tentando com datacenter
resposta falhou
tentando com residencial
resposta bem-sucedida
Como os Proxies da Scrapeless Ajudam
Como você provavelmente notou ao longo deste artigo, a Scrapeless oferece uma solução de proxy abrangente projetada para as necessidades modernas de coleta de dados. Com mais de 90 milhões de IPs residenciais abrangendo mais de 195 países, taxas de sucesso de até 99,98% e suporte a uma ampla gama de casos de uso, incluindo web scraping, pesquisa de mercado, monitoramento de preços, rastreamento de SEO, verificação de anúncios e proteção de marca, a Scrapeless é ideal tanto para negócios quanto para fluxos de trabalho de dados profissionais.
Proxies Residenciais
Com mais de 90 milhões de IPs residenciais reais em mais de 195 países, os Proxies Residenciais da Scrapeless são ideais para scraping, inteligência de mercado, acompanhamento de preços e muito mais.
Principais Características:
- Rotação automática de proxies
- Taxa média de sucesso de 99,98%
- Geo-alvo preciso (país/cidade)
- Protocolos HTTP/HTTPS/SOCKS5
- Tempo de resposta <0.5s
- Excelente velocidade e estabilidade
- Apenas $1.80/GB
Proxies IPv6
Proxies IPv6 dedicados e de alta velocidade, projetados para tarefas pesadas de scraping.
Características:
- Suporte HTTP(S) & SOCKS5
- Rotação automática de proxies IPv6
- Alta anonimidade com IPs dedicados
- Pool premium de 50M+ IPv6
- Conformidade com CCPA & GDPR
- Cobrança por GB
Proxies de Datacenter
IPs de datacenter de alto desempenho otimizados para automação em grande escala, scraping em massa e concorrência maciça.
Características:
- 99,99% de uptime
- Tempo de resposta extremamente rápido
- Sessões estáveis de longa duração
- Acesso à API & fácil integração
- Alta largura de banda, baixa latência
- Suporte a HTTP/HTTPS/SOCKS5
Proxies ISP Estáticos
Ideais para operações em contas de eCommerce (eBay, PayPal, Amazon), consistência de identidade a longo prazo e baixo risco de bloqueio.
Características:
- IPs residenciais reais
- 99,99% de uptime
- Altas taxas de aceitação & baixo risco de banimento
- Geolocalização direcionada
- Protocolos HTTP/HTTPS/SOCKS5
Conclusão
Quando você combina HTTPX com proxies da Scrapeless, obtém uma maneira privada, eficiente e confiável de acessar a web. Se você quiser rotacionar proxies, é tão simples quanto usar a biblioteca random embutida do Python. Com uma combinação de proxies de datacenter e residenciais, você pode construir uma conexão redundante que supera a maioria dos sistemas de bloqueio.
Como você aprendeu, a Scrapeless fornece o pacote completo para seus projetos de web scraping. Com mais de 90 milhões de IPs, taxas de sucesso de 99,98% e cobertura em mais de 195 países, a Scrapeless é a escolha ideal para lidar com todas as suas necessidades de coleta de dados—desde web scraping e pesquisas de mercado até monitoramento de preços, rastreamento de SEO, verificação de anúncios e proteção de marca.
Comece seu teste gratuito com proxies da Scrapeless hoje!
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.



