¿Cómo Usar Proxies Para Rotar Direcciones IP En Python? 5 sencillos pasos en 2024

Cómo hacerlo, Proxies, Python, Mar-06-20245 minutos de lectura

Cuando utilizas un proxy, no te conectas directamente al servidor de destino, sino que diriges tu petición al servidor proxy, que la evalúa y devuelve una respuesta. Los proxies tienen muchas ventajas, como que ocultan tus direcciones IP reales, eluden los filtros, la censura, etc. A veces es difícil realizar un web scraping avanzado

Índice

Cuando utilizas un proxy, no te conectas directamente al servidor de destino, sino que diriges tu petición al servidor proxy, que la evalúa y devuelve una respuesta. Los proxies tienen muchas ventajas, como ocultar tus direcciones IP reales, saltarse los filtros, la censura, etc. 

A veces es difícil realizar un raspado web avanzado debido al envío de múltiples solicitudes desde la misma dirección IP. Los raspadores web se enfrentan al problema común de ser bloqueados por los sitios web que raspan. Pero pueden utilizar muchas técnicas para evitar ser bloqueados, tales como

  • Rotación de direcciones IP
  • Uso de navegadores headless
  • Reducción de la tasa de rastreo,
  • Utilizar proxies

Un proxy rotator puede ayudarte a eludir la mayoría de las medidas anti-scraping. También puede utilizarlo para eludir cualquier límite de velocidad implementado en el sitio web de destino y extraer datos con éxito. Pero, ¿qué es un proxy rotatorio? Es un proxy que asigna una nueva dirección IP para cada conexión desde el grupo de proxies. Esto significa que puedes enviar 1000 peticiones a cualquier número de sitios web lanzando un script y obteniendo 1000 direcciones IP diferentes.

Este artículo le ayuda a entender cómo utilizar proxies para rotar direcciones IP en python.

Cómo utilizar proxies para rotar direcciones IP en Python

Puedes obtener una lista de proxies gratuitos y guardarlos en un archivo de texto llamado lista_proxy.txt. A continuación, puedes seguir los siguientes pasos para rotar direcciones IP en Python.

Bibliotecas de importación

Debe importar el módulo requests de Python utilizando el comando siguiente.

solicitudes de importación

Si el módulo no está instalado en su entorno, puede instalarlo utilizando el siguiente comando.

pip install peticiones

Crear una función

Debes crear una función send_request que tomará dos parámetros, es decir, sesión y proxy. Sería mejor utilizar un proxy HTTP ya que la mayoría de los proxies gratuitos no utilizan el protocolo HTTPS. Usaremos bloques try-except porque la mayoría de los proxies gratuitos no funcionan ya que han sido bloqueados.

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

Leer el archivo .txt

Aquí viene la sección principal del código. Tienes que leer tu archivo list_proxy.txt y guardarlo en la variable llamada proxies como se muestra a continuación.

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

Utilizar un bucle For

Tienes que usar el módulo requests para crear una sesión en Python. Usamos un bucle for para recorrer el proxy en el código de abajo. Luego pasamos la sesión y el proxy a la función send_request. 

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

Ejecutar el script

Puede ejecutar el script y ver la salida como se muestra a continuación. Obtendrá una larga lista de proxies pero recuerde que no funcionarán. 

python rotarproxy.py

Todo tu 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)

Consejos para crear un rotador de proxy

A continuación se dan algunos consejos para rotar proxies en Python cuando se utiliza un proxy rotativo.

Utilice servicios proxy fiables y gratuitos

La mayoría de los servicios proxy gratuitos disponibles están congestionados, lo que provoca caídas inesperadas y retrasos frustrantes. Por lo tanto, cuando te plantees optar por proxies gratuitos, tienes que comprobar si se ajustan a tus necesidades de scraping sin provocar caídas significativas.

La mayoría de los proxys gratuitos son válidos por un tiempo limitado, así que puedes construir tu propia lógica en Python que pueda rotar el rotador de listas de proxys gratuitos con direcciones IP que funcionen. De esta forma, no tendrás interrupciones durante el web scraping. 

Absténgase de utilizar direcciones IP proxy predecibles

Debe evitar utilizar direcciones IP que sigan una secuencia determinada o un formato predecible, como pertenecer al mismo grupo. Esto se debe a que la mayoría de las herramientas anti-scraping pueden detectar fácilmente las peticiones enviadas desde este tipo de direcciones IP. Por ejemplo, debe abstenerse de utilizar la siguiente secuencia de direcciones IP rotativas, ya que levantará rápidamente la bandera roja.

103.243.132.11

103.243.132.12

103.243.132.13

103.243.132.14

Considere un servicio proxy premium

Los rotadores de IP proxy gratuitos son inseguros y lentos. Por lo tanto, utilizarlos no será adecuado si realiza proyectos de web scraping avanzados y a gran escala. Usando buenos proxies premium, puedes obtener un servicio de alta calidad y raspar miles de páginas web sin experimentar bloqueos o interrupciones. 

Para utilizar un servicio proxy premium, tendrás que pagar unos cuantos dólares y conseguir un proveedor que satisfaga tus necesidades de extracción de datos y garantice tu privacidad.

Apueste por proxies de élite

A continuación se indican tres categorías principales de proxies en Internet.

  • Proxies de élite
  • Proxies anónimos
  • Proxies transparentes

Los proxies de élite son la mejor opción a tener en cuenta entre estos proxies, ya que pueden evitar detecciones y eludir restricciones. Sólo puedes enviar la cabecera REMOTE_ADDR utilizando un proxy elite mientras mantienes las otras cabeceras vacías. De esta forma, puede conseguir una privacidad óptima con estos proxies.

Por otro lado, un proxy transparente revela los detalles de tu dirección IP y envía tu IP real a través de la cabecera HTTP_VIA y la cabecera HTTP_X_FORWARDED_FOR. El proxy anónimo no revela tu dirección IP real. Envía la IP del proxy o la deja vacía.

Combinar la rotación de IP con la rotación del agente de usuario

Puede utilizar la rotación de IP para rotar varias direcciones IP y evitar ser detectado. Sin embargo, algunas medidas anti-scraping pueden identificar este tipo de actividades y bloquear la recolección de datos. Por lo tanto, además de rotar las direcciones IP, también debes rotar los agentes de usuario para aumentar tus posibilidades de éxito. 

Preguntas frecuentes:

1. ¿Cómo usar proxies para rotar direcciones IP usando python?
Con la ayuda de las peticiones de la librería python, puedes rotar proxies con facilidad. En primer lugar, descargue la lista de proxies gratuitos del sitio web ProxyScrape, en segundo lugar, cree una función que pueda utilizar para llevar a cabo todo el proceso de rotación de IP; en tercer lugar, utilice la función de lectura para leer los proxies gratuitos descargados y, por último, ejecute el script utilizando el bucle for para obtener el proxy que está disponible para una sesión.
2. ¿Existe un rotador de proxy disponible en línea?
Sí, hay rotadores de proxy disponibles online. En lugar de rotar manualmente los proxies de su centro de datos, puede utilizar estos rotadores de proxy para hacer el trabajo pesado. Pero estos son servicios de pago; si quieres un rotador de proxy gratuito, entonces construir un rotador con la ayuda de python es la mejor oportunidad.
3. ¿Cómo ayudan los proxies en el web scraping?
Los proxies ayudan a enmascarar su dirección IP original y utilizan su dirección IP para enviar varias peticiones al servidor de destino para obtener la información necesaria. Para el web scraping, necesita enviar muchas peticiones rápidamente, lo que el servidor de destino puede ver como un comportamiento anormal y bloquear su dirección IP. Proxy le ayuda a evitar estos escenarios.

Conclusión

Es sencillo crear un rotador de proxies en Python. Puedes generar proxies aleatorios y luego construir la lógica para raspar los datos de los sitios web. Aparte de los proxies de centro de datos y residenciales, las otras categorías son proxies de élite, anónimos y transparentes. Los proxies de élite son la mejor opción porque son difíciles de detectar por el sitio web objetivo. Puede utilizar proxies anónimos si sólo desea mantener su privacidad en Internet. Por último, puedes utilizar proxies transparentes, pero son los que ofrecen menos posibilidades de éxito. Este artículo espera dar información en profundidad y dar ejemplos de cómo utilizar proxies para rotar direcciones IP en python con sencillos pasos de codificación