Cómo usar un proxy con el módulo Requests en Python

Guías, Guías, Proxies, Mar-16-20225 minutos de lectura

Cada ordenador recibe una dirección única de Protocolo de Internet (IP) que identifica al ordenador y su ubicación geográfica cuando está conectado a Internet. El ordenador envía una solicitud cada vez que necesita información de Internet. La solicitud se envía a un ordenador de destino que comprueba el tipo de información solicitada. El ordenador de destino

Cada ordenador recibe una dirección única de Protocolo de Internet (IP) que identifica al ordenador y su ubicación geográfica cuando está conectado a Internet. El ordenador envía una solicitud cada vez que necesita información de Internet. La solicitud se envía a un ordenador de destino que comprueba el tipo de información solicitada. El ordenador de destino devuelve la información si está autorizado a dársela a nuestra dirección IP. A veces, el ordenador quiere obtener la información de Internet sin ser identificado. Esa información suele estar bloqueada, pero podemos obtenerla utilizando un proxy que actúa como intermediario entre el cliente y la máquina servidor.

Cada servidor proxy tiene su dirección IP, de modo que cuando un usuario solicita a través de un proxy acceder a un sitio web, el sitio web envía los datos a la IP del servidor proxy que los reenvía al usuario.

  • Los proxies ocultan la identidad de los web scrapers y hacen que su tráfico parezca el de un usuario normal.
  • Los proxies proporcionan seguridad adicional a los sitios web y equilibran el tráfico de Internet.
  • Los proxies protegen los datos de los internautas o ayudan a acceder a sitios web bloqueados por el mecanismo de censura de un país.

Uso de un proxy con el módulo Requests en Python

Para utilizar proxies con las peticiones de Python, debe seguir los pasos que se indican a continuación.

Solicitudes de importación

Importa el paquete requests que es una simple librería HTTP. Puede enviar peticiones fácilmente a través de este paquete sin añadir manualmente cadenas de consulta a sus URLs. Puedes importar requests usando el siguiente comando.

solicitudes de importación

Crear un diccionario

Necesita crear un diccionario de proxies que defina las conexiones HTTP y HTTPS. Puedes dar a la variable del diccionario cualquier nombre como "proxies" que asigne un protocolo a la URL del proxy. Además, tienes que hacer que la variable URL se establezca en el sitio web del que tienes que hacer el scrape.

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

Aquí el diccionario define la URL del proxy para dos protocolos distintos, es decir, HTTP y HTTPS.

Crear una variable de respuesta

Tienes que crear una variable de respuesta que utilice cualquiera de los métodos de solicitud. Este método toma dos argumentos:

  • La URL que ha creado
  • El diccionario que definió
response = requests.get(url,proxies = proxies)
print(respuesta.json())

La salida es como:

También puede utilizar el módulo requests en Python para rotar las direcciones IP como se muestra a continuación.

Tiene que importar el módulo de peticiones utilizando el siguiente comando.

solicitudes de importación

Crear la función sending_request

Tienes que crear una función sending_request y preferir usar el proxy http ya que la mayoría de los proxies gratuitos no usan el protocolo https. Usamos try-except block porque la mayoría de los proxies gratuitos no funcionan.

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

Leer proxies_txt

Tienes que leer el archivo list_proxies.txt que contiene la lista de proxies libres y guardarlo en la variable llamada proxies.

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

Crear sesión

Tienes que crear una sesión desde el módulo de peticiones y seguir los siguientes pasos.

  • Bucle a través del proxy
  • Pasar el proxy y la sesión a la función sending_request
con requests.Session() como session:
   for proxy in proxies:
        sending_request(session, proxy)

Obtendrá la lista de proxies como se muestra a continuación.

Estos son algunos proxies, y la lista sigue con más proxies, pero todos ellos no funcionan.

Necesidad de apoderados

Todas las empresas necesitan conocer las cinco razones corporativas vitales para utilizar proxies que se mencionan a continuación.

Realización anónima de tareas delicadas

Los proxies son bien conocidos por su capacidad para anonimizar el tráfico web. Pero la mayoría de la gente no comprende su importancia en el sector empresarial. Los servidores proxy permiten a los responsables de seguridad y a los periodistas protegerse a sí mismos, a las empresas, a las fuentes, a los clientes y a los socios.

También puede utilizar proxies para proteger el desarrollo y la investigación en curso y otras actividades de la empresa. Supongamos que su empresa utiliza un proxy y un espía potencial para rastrear el tráfico web para determinar lo que su negocio está desarrollando. En ese caso, no podrá rastrear fácilmente a sus empleados.

Mejora de la seguridad empresarial e institucional

Usted sabe que las violaciones de datos son costosas tanto en términos de imagen pública como de pérdidas monetarias. Por eso, las empresas se preocupan por los hackers. Pero los proxies pueden ayudarle, ya que reducen las posibilidades de violación de datos. Añaden una capa adicional de seguridad entre sus servidores y el tráfico exterior. Los servidores proxy también actúan como un amortiguador, ya que se enfrentan a Internet y retransmiten las solicitudes de los ordenadores fuera de la red.

Si los hackers tienen acceso a sus servidores proxy, seguirán teniendo problemas para llegar al servidor que ejecuta el software web donde se almacenan los datos.

Control del uso de Internet por los empleados

Usted sabe que las violaciones de datos son costosas tanto en términos de imagen pública como de pérdidas monetarias. Por eso, las empresas se preocupan por los hackers. Pero los proxies pueden ayudarle, ya que reducen las posibilidades de violación de datos. Añaden una capa adicional de seguridad entre sus servidores y el tráfico exterior. Los servidores proxy también actúan como un amortiguador, ya que se enfrentan a Internet y retransmiten las solicitudes de los ordenadores fuera de la red.

Si los hackers tienen acceso a sus servidores proxy, seguirán teniendo problemas para llegar al servidor que ejecuta el software web donde se almacenan los datos.

Ahorro de ancho de banda y mayor velocidad

Algunas personas asumen que los servidores proxy ralentizan la velocidad de Internet debido a la gran cantidad de trabajo que realizan en segundo plano. Pero no siempre es cierto. Los servidores proxy pueden utilizarse para ahorrar ancho de banda y aumentar la velocidad:

  • Almacenamiento en caché de páginas web y archivos a los que acceden varios usuarios
  • Comprimir el tráfico
  • Eliminar la publicidad de los sitios web

¿Qué proxies utilizar?

Es posible que piense que existe un único tipo de delegación que ofrece todas las ventajas a las empresas, como:

  • Prevención de filtraciones de datos
  • Fijar precios competitivos
  • Recopilación de datos valiosos en las redes sociales
  • Creación de una estrategia SEO eficaz

En realidad, hay muchos tipos de proxies disponibles, y el que se utilice dependerá de sus requisitos o caso de uso.

A continuación se indican los tipos más comunes de proxies.

Proxies de centros de datos

Los proxies de los centros de datos son los más utilizados por las empresas de todo el mundo. Los centros de datos producen y gestionan estos proxies. Puede utilizar estos proxies si tiene que mejorar la seguridad de su sistema, ya que son baratos y fáciles de adquirir. Pero algunos sitios web prohíben su uso ya que los asocian con actividades de tipo bot.

Apoderados Residenciales

Los proxies residenciales están asociados a residencias físicas y utilizan las direcciones IP de personas reales proporcionadas por los proveedores de servicios de Internet (ISP). Cuando los utilizas para conectarte a un sitio web, pareces un usuario corriente. Así, es menos probable que te detecten y te bloqueen. Con los proxies residenciales se puede rastrear una gran cantidad de datos web y conseguir un mayor anonimato y seguridad.

Conclusión

Hasta ahora, hemos visto que un proxy actúa como un relé entre el cliente y el servidor. Cada vez que usted solicita información, su ordenador envía esta solicitud al proxy, que a su vez envía la información al ordenador de destino utilizando una dirección IP diferente. De este modo, su dirección IP permanece confidencial. Además, puedes usar proxies con el módulo requests en Python y realizar varias acciones dependiendo de tu necesidad. Si necesitas una IP estática con la velocidad de los proxies de centros de datos y el alto anonimato de los proxies residenciales, entonces los proxies estáticos son el camino a seguir ya que la dirección IP permanece sin cambios con cada nueva petición. Por el contrario, los proxies rotatorios proporcionan ventajas en pruebas y scraping.