En pocas palabras, los proxies son servidores que sirven de capa externa de conexión a los servicios de red. Sirven de intermediarios entre un ordenador y el sitio del que un usuario quiere extraer información. La solicitud del usuario, en lugar de enviarse directamente al sitio en cuestión, se dirige primero al proxy, que a su vez la envía al servidor final. Por lo tanto, la dirección IP del servidor proxy es la que guarda el sitio en lugar de la del usuario.
Entonces, ¿por qué utilizar un proxy?
Por ejemplo, si es necesario recopilar información de un sitio sin temor a restricciones o bloqueos. Un proxy ayuda a enmascarar la dirección IP del usuario real cambiando su verdadera identidad digital.
Se puede utilizar un proxy de un país concreto en el que no haya restricciones. Esto se debe a que, en determinados países, el acceso a algunos programas y sitios web está limitado o bloqueado.
Si se envía un gran número de solicitudes a un sitio concreto, lo más probable es que se cargue el sistema. En consecuencia, existe un gran riesgo de que se bloquee. Utilizar varios proxies al mismo tiempo permite a los usuarios distribuir uniformemente las peticiones al sitio concreto, evitando así el bloqueo.
Requests es la librería para enviar peticiones HTTP usando Python. Facilita el envío de peticiones GET y POST. Usando Python Requests sin proxy se pueden enviar peticiones HTTP, pero no proporciona anonimato ni evita restricciones.
Para instalar requests, simplemente introduzca el siguiente comando en el terminal:
pip install requests
Para verificar que la biblioteca requerida está correctamente configurada, es necesario abrir el entorno de desarrollo de Python y ejecutar el comando:
import requests
print(requests.__version__)
Si todo se ha hecho correctamente, el script devolverá el número de versión.
Una vez instalada la librería requests, podemos empezar a ejecutar peticiones HTTP. Sin embargo, para incorporar un proxy, es necesario realizar ciertas configuraciones en Python.
Examinemos los pasos a seguir para configurar correctamente un proxy para peticiones en Python. Consideraremos las Python Requests con configuraciones de proxies SOCKS por separado.
Usar Python para configurar un proxy es muy fácil para los usuarios que utilicen la librería requests. Requiere que la dirección del servidor proxy se pase en un diccionario y luego se utilice al hacer peticiones HTTP.
proxies = {
"http": "http://your-proxy-ip:port",
"https": "http://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Cuando se utiliza Python Requests, la autenticación proxy es fácil de configurar. Echemos un vistazo más de cerca a los detalles.
proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Los dos nuevos campos que hay que rellenar son:
Para los usuarios que requieren un mayor nivel de anonimato, o si trabajas con sitios muy restringidos, los proxies HTTP estándar pueden no funcionar. En este caso, los proxies SOCKS pueden ser mejores.
Para habilitar la compatibilidad con el proxy SOCKS, es necesario instalar una biblioteca adicional mediante el comando que se indica a continuación:
pip install requests[socks]
Una vez instalado, Python Requests permite configurar un proxy SOCKS que puede utilizarse como se muestra en el siguiente ejemplo.
import requests
proxies = {
"http": "socks5h://your-proxy-ip:port",
"https": "socks5h://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Si el servidor proxy necesita autenticación, inclúyala como se muestra a continuación.
proxies = {
"http": "socks5h://username:password@your-proxy-ip:port",
"https": "socks5h://username:password@your-proxy-ip:port",
}
When making many requests through a single proxy, instead of adding it to each request, it becomes much more efficient to use Python Requests sessions with proxy.
Este método de utilizar proxies ayuda a conservar la configuración en todas las sesiones. También simplifica el código, mejora el rendimiento y, lo que es más importante, facilita enormemente la implementación.
Es muy fácil crear una sesión, basta con escribir requests.Session().
Considere el siguiente ejemplo:
import requests
# Crear una sesión
session = requests.Session()
session.proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
# Solicitud a través de la sesión
response = session.get("http://example.com")
Todas las Python Requests dentro de esta sesión utilizarán el proxy establecido por defecto sin ninguna configuración adicional.
Cuando estás interactuando activamente con un sitio web, ya sea con fines de scraping o de automatización, utilizar el mismo proxy una y otra vez puede bloquear tu cuenta. Esto se puede controlar rotando los proxies si tienes varios servidores proxy diferentes.
El siguiente ejemplo muestra la implementación de un bucle que rota los proxies para cada interacción con la página web:
import requests
import random
proxies_list = [
"http://username:password@your-proxy-ip[1]:port",
"http://username:password@your-proxy-ip[2]:port",
"http://username:password@your-proxy-ip[3]:port",
]
session = requests.Session()
for _ in range(5):
proxy = random.choice(proxies_list) # Elegir un proxy al azar
session.proxies = {"http": proxy, "https": proxy}
response = session.get("http://example.com")
print(f"Used proxy: {proxy}")
print(response.status_code)
En resumen, he aquí algunas sugerencias que pueden ayudarle a gestionar mejor los proxies:
En este artículo, hemos tocado qué son los servidores proxy, cómo usar proxy en Python Requests correctamente, y gestionar proxies a través de sesiones para simplificar el código. El ejemplo también muestra el uso de proxies SOCKS y normales, cómo se maneja la autenticación y la gestión de proxies.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Comentarios: 0