1. ¿Qué es un servidor proxy?
Un poco del mundo de las redes
Un servidor proxy es, básicamente, tu agente secreto personal en el ciberespacio. Imagínate que decides mantenerte en el anonimato en la red y necesitas un intermediario que transmita tus solicitudes al servidor y luego devuelva las respuestas ocultando tu verdadera dirección IP. Eso es exactamente lo que hace un servidor proxy: transmite tus solicitudes de forma anónima y te envía las respuestas.
Tipos de servidores proxy
Antes de sumergirnos en el código, sería bueno hacer un pequeño repaso de los tipos de servidores proxy. Hay diferentes tipos, cada uno con su propia aplicación y características:
- HTTP-proxy: Se usan para manejar solicitudes HTTP. Perfectos para navegar en la web.
- HTTPS-proxy: Manejan solicitudes HTTPS cifradas. Importantes para conexiones seguras.
- SOCKS-proxy: Más versátiles y pueden trabajar con cualquier tipo de tráfico. Una excelente elección cuando necesitas máxima flexibilidad.
2. Configuración de un servidor proxy en Python
Configurar un servidor proxy en Python es más fácil que convencer a un gato de no sentarse en el teclado.
Usaremos la biblioteca requests
, que permite configurar fácilmente los parámetros del proxy
para conexiones HTTP y HTTPS.
Instalación de la biblioteca requests
Si por alguna razón aún no tienes instalada la biblioteca requests
, ahora es un buen momento
para solucionarlo. Así es como se hace:
import requests
# Definimos los servidores proxy para solicitudes HTTP y HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Realizamos la solicitud a través del proxy
response = requests.get('http://example.com', proxies=proxies)
# Mostramos el resultado
print(response.text)
pip install requests
Ejemplo de uso de un servidor proxy
Ahora veremos cómo enviar solicitudes a través de un servidor proxy. Para ello usaremos las capacidades de
la biblioteca requests
.
import requests
# Definimos los servidores proxy para solicitudes HTTP y HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Realizamos la solicitud a través del proxy
response = requests.get('http://example.com', proxies=proxies)
# Mostramos el resultado
print(response.text)
Nota el formato de la cadena del proxy. Aquí tu tarea es reemplazar
your.proxy.server:port
con la URL y puerto del servidor proxy que estás utilizando. En internet
hay servidores proxy gratuitos y de pago. Si los servidores proxy gratuitos fueran participantes de "Miss
Universo", liderarían con una gran ventaja.
3. Ventajas del uso de servidores proxy
Evitar restricciones
Los servidores proxy nos permiten evitar las restricciones de frecuencia de solicitudes que imponen algunos sitios. Con la rotación de servidores proxy, puedes variar las direcciones IP y evitar bloqueos. Es como cambiar el disco en el reproductor: tu script no será molesto.
Mantener el anonimato
Usando un proxy, puedes mantener el anonimato de tus acciones. Esto es especialmente importante cuando quieres evitar restricciones por IP. Básicamente, te permite "disfrazarte" a ojos del servidor remoto.
4. Rotación de servidores proxy
Ahora imaginemos la rotación de servidores proxy. Es como girar la ruleta: nunca sabes dónde se detendrá. En nuestro caso, la rotación es necesaria para usar diferentes direcciones IP al hacer scraping y evitar sospechas de los servidores.
import random
# Lista de servidores proxy disponibles
proxy_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Realizamos la solicitud a través de un proxy seleccionado aleatoriamente
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Rotación compleja
Puedes mejorar tu script añadiendo lógica que compruebe la disponibilidad del proxy y los cambie en caso de que no estén disponibles. De esta manera, usarás un conjunto fiable de direcciones proxy.
GO TO FULL VERSION