Como automatizar a rotação de proxies com Python

Como automatizar a rotação de proxies com Python

Compreendendo a rotação de proxy

Na delicada dança da extração de dados da web e das requisições automatizadas, a rotação de proxies funciona como escudo e espada. Ela oculta seu rastro digital, garantindo que as requisições não revelem sua origem para servidores vigilantes. A rotação de proxies alterna entre uma lista selecionada de servidores proxy, permitindo que cada requisição pareça vir de uma fonte diferente — evitando bloqueios, limites de requisição e o olhar atento dos mecanismos anti-bot.


Principais estratégias de rotação de procurações

Estratégia Descrição Caso de uso Complexidade
Round Robin Percorre sequencialmente os proxies em ordem Raspagem geral, alvos de baixa suspeita Baixo
Seleção aleatória Seleciona aleatoriamente um proxy do conjunto para cada solicitação. Evitar padrões detectáveis Médio
Escolha adaptativa/inteligente Seleciona proxies com base na integridade, velocidade ou histórico de banimentos. Raspagem em larga escala e de alta sensibilidade Alto

Preparando a lista de procuradores

Uma lista de proxies é essencial para a rotação de servidores. Ela pode ser obtida de provedores pagos, como... Dados brilhantes, Oxilabs, ou agregadores gratuitos como Lista de Proxy Gratuita.

Tabela: Exemplos de formato de lista de procuradores

Formatar Exemplo
IP:Port 51.158.68.68:8811
IP:Porta:Usuário:Senha 51.158.68.68:8811:nome de usuário:senha

Armazene seus proxies em um arquivo de texto simples (por exemplo, proxies.txt) com um proxy por linha, uma prática elegante e prática.


Implementando Rotação de Proxy em Python

1. Lendo a Lista de Proxies

def load_proxies(filename): with open(filename, 'r') as f: return [line.strip() for line in f if line.strip()]

2. Rotação de Proxy Round Robin

import itertools proxies = load_proxies('proxies.txt') proxy_pool = itertools.cycle(proxies) def get_next_proxy(): return next(proxy_pool)

Cada chamada para obter_próximo_proxy() Oferece o próximo proxy em um ciclo contínuo e perfeito — uma homenagem à graça ordenada de uma valsa parisiense.

3. Integração com solicitações

Para requisições HTTP, o pedidos A biblioteca é robusta e acessível.

import requests def format_proxy(proxy): parts = proxy.split(':') if len(parts) == 2: return {'http': f'http://{proxy}', 'https': f'https://{proxy}'} elif len(parts) == 4: ip, port, user, pwd = parts proxy_auth = f"{user}:{pwd}@{ip}:{port}" return {'http': f'http://{proxy_auth}', 'https': f'https://{proxy_auth}'} else: raise ValueError("Formato de proxy inválido") url = "https://httpbin.org/ip" proxy = get_next_proxy() proxies_dict = format_proxy(proxy) response = requests.get(url, proxies=proxies_dict, timeout=10) print(response.json())

Rotação de proxy com requests-HTML e Selenium

Algumas páginas da web, tão elusivas quanto as madeleines proustianas, exigem a renderização de JavaScript. Para essas, ferramentas como Solicitações-HTML ou Selênio são indispensáveis.

Exemplo de Requests-HTML:

from requests_html import HTMLSession session = HTMLSession() proxy = get_next_proxy() proxies_dict = format_proxy(proxy) r = session.get('https://httpbin.org/ip', proxies=proxies_dict) print(r.html.text)

Exemplo de selênio:

O Selenium requer configuração de proxy no nível do driver.

from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType def configure_selenium_proxy(proxy): ip, port = proxy.split(':')[:2] selenium_proxy = Proxy() selenium_proxy.proxy_type = ProxyType.MANUAL selenium_proxy.http_proxy = f"{ip}:{port}" selenium_proxy.ssl_proxy = f"{ip}:{port}" return selenium_proxy proxy = get_next_proxy() chrome_options = webdriver.ChromeOptions() selenium_proxy = configure_selenium_proxy(proxy) capabilities = webdriver.DesiredCapabilities.CHROME.copy() selenium_proxy.add_to_capabilities(capabilities) driver = webdriver.Chrome(options=chrome_options, desired_capabilities=capabilities) driver.get('https://httpbin.org/ip')

Gerenciando a integridade e o failover do proxy

Um script elegante se adapta rapidamente às adversidades. Proxies podem expirar, entrar em listas negras ou apresentar baixa latência. Portanto, monitore a integridade deles e remova ou reduza a prioridade daqueles que apresentarem problemas.

def verificar_proxy(proxy): tente: dicionário_de_proxies = format_proxy(proxy) resp = requests.get('https://httpbin.org/ip', proxies=dicionário_de_proxies, timeout=5) retorne resp.status_code == 200 exceto Exception: retorne False proxies_saudáveis = [p para p em proxies se verificar_proxy(p)]

Para verificações de integridade mais sofisticadas e failover automático, considere bibliotecas como proxies rotativos e fragmentados.


Utilizando bibliotecas de terceiros

Para uma orquestração mais grandiosa, bibliotecas de terceiros oferecem uma sinfonia de recursos:

Biblioteca Características Documentação
proxies rotativos e fragmentados Gerenciamento de pool de proxies, detecção de banimentos https://github.com/TeamHG-Memex/scrapy-rotating-proxies
pool de proxy Coleta, validação e rotação de proxy https://github.com/jhao104/proxy_pool
solicitações-agente-de-usuário-aleatório Randomização de User-Agent e proxy https://pypi.org/project/requests-random-user-agent/

Melhores práticas para rotação de proxy

  • Diversidade: Utilize servidores proxy de diferentes faixas de IP e localizações.
  • Respeite o arquivo Robots.txt: Respeite as políticas do site, em um espírito de civilidade digital.
  • Limitação de taxa: Limitar o número de solicitações para imitar o comportamento humano e evitar a detecção.
  • Registro: Registre o uso e as falhas do proxy para aprimoramentos futuros.
  • Considerações legais: Analise cuidadosamente o panorama jurídico e ético das suas atividades (ver Guia da EFF).

Leitura adicional

Que essas ferramentas e práticas sejam seu passaporte pelas inúmeras avenidas da web, cada solicitação acompanhada pela sutileza de uma máscara em constante transformação.

Solange Lefebvre

Solange Lefebvre

Analista de Proxy Sênior

Solange Lefebvre, uma conhecedora de caminhos digitais, está no comando do departamento analítico da ProxyMist há mais de uma década. Com sua experiência incomparável em segurança de rede e gerenciamento de servidores proxy, ela tem sido fundamental na curadoria e manutenção de uma das listas mais abrangentes de servidores proxy SOCKS, HTTP, elite e anônimos globalmente. Uma cidadã francesa com uma propensão à precisão, Solange garante que a ProxyMist permaneça na fronteira das soluções seguras de internet.

Comentários (0)

Ainda não há comentários aqui, você pode ser o primeiro!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *