dark proxyscrape logotipo

Como usar Proxies para girar endereços IP em Python? 5 etapas fáceis em 2024

Como fazer, Proxies, Python, 02/11/20225 minutos de leitura

Índice

Ao usar um proxy, você não se conecta diretamente ao servidor de destino; em vez disso, você direciona sua solicitação ao servidor proxy que a avalia e retorna uma resposta. O Proxies tem muitos benefícios, como ocultar seus endereços IP reais, contornar filtros, censura etc. 

Às vezes, é difícil executar um trabalho avançado na Web scraping por causa do envio de várias solicitações do mesmo endereço IP. Os raspadores da Web enfrentam o problema comum de serem bloqueados pelos sites que scrape. Mas eles podem usar muitas técnicas para evitar o bloqueio, como
  • Rotação de endereços IP
  • Uso de navegadores sem cabeça
  • Reduzir a taxa de rastreamento,
  • Usando proxies

Um rotador proxy pode ajudá-lo a contornar a maioria das medidas antiscraping . Você também pode usá-lo para contornar qualquer limite de taxa implementado no site de destino e extrair dados com êxito. Mas o que é um proxy rotativo? É um proxy que atribui um novo endereço IP para cada conexão do pool proxy . Isso significa que você pode enviar 1.000 solicitações a qualquer número de sites lançando um script e obtendo 1.000 endereços IP diferentes.

Este artigo ajuda você a entender como usar proxies para rotacionar endereços IP em python.

Como usar Proxies para girar endereços IP em Python

Você pode scrape uma lista de proxies gratuitos e salvá-los em um arquivo de texto chamado list_proxy.txt. Em seguida, você pode seguir as etapas abaixo para rotacionar endereços IP no Python.

Importar bibliotecas

Você deve importar o módulo de solicitações do Python usando o comando abaixo.

solicitações de importação

Se o módulo não estiver instalado em seu ambiente, você poderá instalá-lo usando o comando abaixo.

!pip install requests

Criar uma função

Você deve criar uma função send_request que receberá dois parâmetros, ou seja, sessão e proxy. É melhor usar um HTTP proxy , pois a maioria dos sites gratuitos proxies não usa o protocolo HTTPS. Usaremos blocos try-except porque a maioria dos proxies gratuitos não funciona, pois foram incluídos em listas de bloqueio.
def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass

Ler o arquivo .txt

Aqui vem a seção principal do código. Você deve ler o arquivo list_proxy.txt e salvá-lo na variável chamada proxies , conforme mostrado abaixo.

if __name__ == "__main__":
  with open('lista_proxy.txt', 'r') as file:
      proxies = file.readlines()

Usar um For Loop

Você precisa usar o módulo requests para criar uma sessão no Python. Usamos um loop for para percorrer o proxy no código abaixo. Em seguida, passamos a sessão e o endereço proxy para a função send_request. 

com requests.Session() como session:
  for proxy in proxies:
       send_request(session, proxy)

Executar o script

Você pode executar o script e ver o resultado conforme mostrado abaixo. Você obterá uma longa lista de proxies , mas lembre-se de que eles não funcionarão. 

python rotateproxy.py

Seu código completo será como:

import requests


def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass


if __name__ == "__main__":
   with open('list_proxy.txt', 'r') as file:
       proxies = file.readlines()

   with requests.Session() as session:
       for proxy in proxies:
           send_request(session, proxy)

Dicas para construir um Proxy Rotator

Abaixo estão algumas dicas para girar proxies em Python ao usar um proxy rotativo.

Use serviços Proxy confiáveis e gratuitos

A maioria dos serviços gratuitos disponíveis no proxy está congestionada, o que leva a falhas inesperadas e atrasos frustrantes. Portanto, quando você planeja optar pelo proxies gratuito, é preciso verificar se ele atende às suas necessidades scraping sem causar nenhum drawdown significativo.

A maioria das listas proxies gratuitas é válida por tempo limitado, portanto, você pode criar sua própria lógica em Python para girar o rotador da lista proxy gratuita com endereços IP funcionais. Dessa forma, você não sofrerá interrupções durante a Web scraping. 

Evite usar endereços IP Proxy previsíveis

Você deve evitar usar endereços IP que sigam uma sequência específica ou um formato previsível, como pertencer ao mesmo grupo. Isso ocorre porque a maioria das ferramentas antiscraping pode detectar facilmente as solicitações enviadas de tais endereços IP. Por exemplo, você deve se abster de usar a seguinte sequência de endereços IP rotativos, pois isso levantará rapidamente a bandeira vermelha.

103.243.132.11

103.243.132.12

103.243.132.13

103.243.132.14

Considere um serviço premium Proxy

Os rotadores de IP gratuitos do proxy são inseguros e lentos. Portanto, usá-los não será adequado se você realizar projetos avançados e de grande escala na Web scraping . Com o uso de um bom proxies premium, você pode obter um serviço de alta qualidade e scrape milhares de páginas da Web sem sofrer bloqueios ou interrupções. 

Para usar um serviço proxy premium, você terá que pagar alguns dólares e obter um provedor que atenderá às suas necessidades de extração de dados e garantirá sua privacidade.

Ir para a elite Proxies

Veja abaixo as três principais categorias de proxies na Internet.

  • Elite Proxies
  • Anônimo Proxies
  • Transparente Proxies
Elite proxies é a melhor opção a ser considerada entre esses proxies , pois eles podem evitar detecções e contornar restrições. Você só pode enviar o cabeçalho REMOTE_ADDR usando um proxy de elite e manter os outros cabeçalhos vazios. Dessa forma, você pode obter privacidade ideal com esses proxies.
Por outro lado, um proxy transparente revela os detalhes de seu endereço IP e envia seu IP real por meio do cabeçalho HTTP_VIA e do cabeçalho HTTP_X_FORWARDED_FOR. O proxy anônimo não divulga o seu endereço IP real. Ele envia o IP do proxyou o deixa vazio.

Combine a rotação de IP com a rotação do agente do usuário

Você pode usar a rotação de IP para alternar vários endereços IP e evitar a detecção. No entanto, algumas medidas antiscraping podem identificar essas atividades e bloquear a coleta de dados. Portanto, você também precisa alternar os agentes de usuário além de alternar os endereços IP para aumentar suas chances de sucesso. 

Perguntas frequentes:

1. Como usar proxies para rotacionar endereços IP usando python?
Com a ajuda das solicitações da biblioteca python, você pode fazer a rotação do proxies com facilidade. Primeiro, faça o download da lista de proxies gratuitos do site ProxyScrape; segundo, crie uma função que possa ser usada para executar todo o processo de rotação de IP; terceiro, use a função read para ler o proxies gratuito baixado; e, por fim, execute o script usando o loop for para obter o proxy que está disponível para uma sessão.
2. Existe um rotador proxy disponível on-line?
Sim, há rotadores proxy disponíveis on-line. Em vez de girar manualmente o site proxies do seu datacenter, você pode usar esses rotadores proxy para fazer o trabalho pesado. Mas esses são serviços pagos; se quiser um rotador proxy gratuito, a melhor chance é criar um rotador com a ajuda do python.
3. Como o proxies ajuda na Web scraping?
Proxies ajudam a mascarar seu endereço IP original e a usar o endereço IP deles para enviar várias solicitações ao servidor de destino para obter as informações necessárias. Para a Web scraping, você precisa enviar muitas solicitações rapidamente, o que o servidor de destino pode considerar um comportamento anormal e bloquear seu endereço IP. O Proxy ajuda a evitar esses cenários.

Conclusão

É simples criar um rotador proxy em Python. Você pode gerar proxies aleatórios e, em seguida, criar uma lógica para scrape dados de sites. Além do data center e do proxies residencial, as outras categorias são elite, anônimo e transparente proxies. O proxies de elite é a melhor opção porque é difícil de ser detectado pelo site de destino. Você pode usar o proxies anônimo se quiser apenas manter sua privacidade na Internet. Por fim, você pode usar o proxies transparente, mas ele oferece a menor chance de sucesso. Este artigo espera fornecer informações detalhadas e exemplos de como usar o proxies para rotacionar endereços IP em python com etapas simples de codificação