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

Como fazer, Proxies, Python, Mar-06-20245 minutos de leitura

Quando se utiliza um proxy, não se liga diretamente ao servidor de destino; em vez disso, dirige-se o pedido ao servidor proxy que o avalia e devolve uma resposta. Os proxies têm muitas vantagens, tais como ocultar os seus verdadeiros endereços IP, contornar filtros, censura, etc. Por vezes, é difícil efetuar uma recolha avançada de dados da Web

Índice

Quando se utiliza um proxy, não se liga diretamente ao servidor de destino; em vez disso, dirige-se o pedido ao servidor proxy que o avalia e devolve uma resposta. Os proxies têm muitas vantagens, tais como ocultar os seus verdadeiros endereços IP, contornar filtros, censura, etc. 

Por vezes, é difícil efetuar uma recolha avançada de dados da Web devido ao envio de vários pedidos a partir do mesmo endereço IP. Os raspadores da Web enfrentam o problema comum de serem bloqueados pelos sítios Web que raspam. Mas podem utilizar muitas técnicas para evitar o bloqueio, tais como

  • Rotação de endereços IP
  • Utilizar browsers sem cabeça
  • Reduzir a taxa de rastreio,
  • Utilizar proxies

Um rotador de proxy pode ajudá-lo a contornar a maioria das medidas anti-raspagem. Também o pode utilizar para contornar quaisquer limites de taxa implementados no sítio Web alvo e extrair dados com êxito. Mas o que é um proxy rotativo? É um proxy que atribui um novo endereço IP a cada ligação a partir do conjunto de proxies. Isto significa que pode enviar 1000 pedidos a qualquer número de sítios Web lançando um script e obtendo 1000 endereços IP diferentes.

Este artigo ajuda-o a compreender como utilizar proxies para rodar endereços IP em python.

Como utilizar proxies para rodar endereços IP em Python

Pode obter uma lista de proxies gratuitos e guardá-los num ficheiro de texto chamado list_proxy.txt. Pode então seguir os passos abaixo para rodar endereços IP em Python.

Importar bibliotecas

É necessário importar o módulo requests do Python utilizando o comando abaixo.

pedidos de importação

Se o módulo não estiver instalado no seu ambiente, pode instalá-lo utilizando o comando abaixo.

!pip install requests

Criar uma função

É necessário criar uma função send_request que receba dois parâmetros, ou seja, sessão e proxy. É preferível utilizar um proxy HTTP, uma vez que a maioria dos proxies gratuitos não utiliza o protocolo HTTPS. Utilizaremos blocos try-except porque a maioria dos proxies gratuitos não funciona, uma vez que foram colocados 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 ficheiro .txt

Aqui vem a secção principal do código. Tem de ler o seu ficheiro list_proxy.txt e guardá-lo na variável chamada proxies, como se mostra abaixo.

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

Utilizar um For Loop

É necessário utilizar o módulo requests para criar uma sessão em Python. Usámos um loop for para percorrer o proxy no código abaixo. Em seguida, passamos a sessão e o proxy para a função send_request. 

com requests.Session() as session:
  for proxy in proxies:
       send_request(sessão, proxy)

Executar o Script

Pode executar o script e ver o resultado como mostrado abaixo. Obterá uma longa lista de proxies, mas lembre-se, eles não funcionarão. 

python rotateproxy.py

Todo o seu código 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 criar um rotador de proxy

Seguem-se algumas sugestões para rodar proxies em Python quando se utiliza um proxy rotativo.

Utilizar serviços de proxy fiáveis e gratuitos

A maior parte dos serviços proxy gratuitos disponíveis estão congestionados, o que leva a falhas inesperadas e atrasos frustrantes. Por conseguinte, quando planeia optar por proxies gratuitos, tem de verificar se correspondem às suas necessidades de recolha de dados sem causar atrasos significativos.

A maioria dos proxies gratuitos é válida por um período limitado, pelo que pode construir a sua própria lógica em Python que pode rodar o rotador da lista de proxies gratuitos com endereços IP funcionais. Desta forma, não terá quaisquer interrupções durante o web scraping. 

Evite utilizar endereços IP proxy previsíveis

Deve evitar utilizar endereços IP que sigam uma sequência específica ou um formato previsível, como pertencer ao mesmo grupo. Isto deve-se ao facto de a maioria das ferramentas anti-raspagem poder detetar facilmente os pedidos enviados a partir de tais endereços IP. Por exemplo, deve abster-se de utilizar a seguinte sequência de endereços IP rotativos, uma vez que esta 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 de proxy premium

Os rotadores de IP proxy gratuitos são inseguros e lentos. Por isso, a sua utilização não será adequada se realizar projectos avançados e de grande escala de recolha de dados da Web. Utilizando bons proxies premium, pode obter um serviço de alta qualidade e extrair milhares de páginas Web sem sofrer bloqueios ou interrupções. 

Para utilizar um serviço proxy de qualidade superior, terá de pagar alguns dólares e obter um fornecedor que satisfaça as suas necessidades de extração de dados e garanta a sua privacidade.

Escolha proxies de elite

De seguida, apresentam-se três categorias principais de proxies na Internet.

  • Proxies de Elite
  • Proxies anónimos
  • Proxies transparentes

Os proxies Elite são a melhor opção a considerar entre estes proxies, uma vez que podem evitar detecções e contornar restrições. Só pode enviar o cabeçalho REMOTE_ADDR utilizando um proxy elite, mantendo os outros cabeçalhos vazios. Desta forma, é possível obter uma privacidade óptima com estes proxies.

Por outro lado, um proxy transparente revela os detalhes do seu endereço IP e envia o seu IP real através do cabeçalho HTTP_VIA e do cabeçalho HTTP_X_FORWARDED_FOR. O proxy anónimo não revela o seu endereço IP real. Ou envia o IP do proxy ou deixa-o vazio.

Combinar a rotação de IP com a rotação do agente do utilizador

Pode utilizar a rotação de IP para rodar vários endereços IP e evitar a deteção. No entanto, algumas medidas anti-raspagem podem identificar essas actividades e impedir a recolha de dados. Por conseguinte, para aumentar as suas hipóteses de sucesso, é necessário rodar os agentes do utilizador para além da rotação dos endereços IP. 

Perguntas frequentes:

1. Como usar proxies para rodar endereços IP usando python?
Com a ajuda dos pedidos da biblioteca python, é possível rodar proxies com facilidade. Em primeiro lugar, descarregue a lista de proxies gratuitos do sítio Web ProxyScrape; em segundo lugar, crie uma função que possa utilizar para efetuar todo o processo de rotação de IP; em terceiro lugar, utilize a função de leitura para ler os proxies gratuitos descarregados; e, por último, execute o script utilizando o for loop para obter o proxy que está disponível para uma sessão.
2. Existe um rotador de proxy disponível online?
Sim, existem rotadores de proxy disponíveis online. Em vez de rodar manualmente os proxies do seu centro de dados, pode usar estes rotadores de proxy para fazer o trabalho pesado. Mas estes são serviços pagos; se quiser um rotador de proxy gratuito, então construir um rotador com a ajuda de python é a melhor hipótese.
3. Como é que os proxies ajudam na recolha de dados da Web?
Os proxies ajudam a mascarar o seu endereço IP original e utilizam o seu endereço IP para enviar vários pedidos ao servidor de destino para obter as informações necessárias. Para a recolha de dados da Web, é necessário enviar muitos pedidos rapidamente, o que pode ser visto pelo servidor de destino como um comportamento anormal e bloquear o seu endereço IP. O proxy ajuda-o a evitar estes cenários.

Conclusão

É simples criar um rotador de proxy em Python. Pode gerar proxies aleatórios e depois construir uma lógica para extrair dados de sítios Web. Para além dos proxies de datacenter e residenciais, as outras categorias são os proxies de elite, anónimos e transparentes. Os proxies de elite são a melhor opção porque são difíceis de detetar pelo sítio Web visado. Pode utilizar proxies anónimos se quiser apenas manter a sua privacidade na Internet. Por último, pode utilizar proxies transparentes, mas são os que oferecem menos hipóteses de sucesso. Este artigo espera fornecer informações detalhadas e dar exemplos de como usar proxies para rodar endereços IP em python com passos simples de codificação