
Un enfoque práctico para meter IPs proxy en los bolsillos de los pantalones de Python
El viejo conductor del crawler sabe que la librería Requests es como la llave de la excavadora, pero sin el soporte de IP proxy, será atrapado por la seguridad de la obra (mecanismo anti-crawling) en un minuto. Hoy vamos a hablar de como meter la IP proxy de ipipgo en los bolsillos de los pantalones de Python.
solicitudes de importación
La forma correcta de abrir una IP proxy
proxies = {
"http": "http://user:password@gateway.ipipgo.com:9020",
"https": "http://user:password@gateway.ipipgo.com:9020"
}
response = requests.get("https://目标网站", proxies=proxies)
Esté atento a este espacio.Nombre de usuario y contraseñaTienes que cambiar la información de autenticación que obtuviste de ipipgo, y no copies el número de puerto, ya que cada paquete da un canal diferente. Yo caí en esto la última vez, copiando el puerto al documento y acabé a ciegas media hora.
Enrollando los calcetines5 proxy
Hay algunos escenarios especiales en los que tienes que usar el protocolo socks5, y esta vez tienes que instalar un pequeño motor para Requests. Primero, instala las librerías de dependencia:
pip install peticiones[calcetines]
Las poses de configuración son ligeramente diferentes:
proxies = {
'http': 'socks5://user:password@gateway.ipipgo.com:9021',
https: socks5://user:password@gateway.ipipgo.com:9021
}
Aquí hay un escollo, el puerto de calcetines de ipipgo y el puerto http están separados, no te confundas. Alguna vez he usado 9020 y 9021 al revés y el programa se atascaba como un tractor.
Tácticas de guerrilla con IP dinámicas
Si utiliza un proxy residencial dinámico, recuerde añadir unconmutación estocásticadel órgano:
importar aleatorio
def get_random_proxy():
lista_proxy = [
"http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020
"http://user:password@gateway3.ipipgo.com:9020"
]
return {'http': random.choice(proxy_list), 'https': random.choice(proxy_list)}
response = requests.get(url, proxies=get_random_proxy())
Para que cada solicitud de cambio de armadura, sistema anti-escalada no te reconocerá. Pero prestar atención a ipipgo paquete dinámico se basa en la facturación del tráfico, no se deslice y escribir un bucle muerto para utilizar el paquete más.
Botiquín de primeros auxilios QA
P: ¿Qué debo hacer si no puedo conectarme al agente?
R: primero compruebe el conjunto de tres piezas: ① contraseña de la cuenta no hay error ② número de puerto en el protocolo correspondiente ③ red local se permite a la salida.
P: ¿Y a paso de tortuga?
R: Trate de cortar a la línea TK, o cambiar la IP residencial estática. a veces la selección del nodo regional no es correcta también se atascará, como escalar el sitio asiático no elija el nodo europeo.
P: ¿Qué ocurre si necesito ejecutar varios rastreadores al mismo tiempo?
R: En el paquete estático exclusivo de ipipgo, a cada rastreador se le asigna una IP independiente para evitar peleas de IPs.
guía de selección de paquetes ipipgo
| Tipo de envase | Escenarios aplicables | precios |
|---|---|---|
| Residencial dinámico (estándar) | Recogida diaria de datos | 7,67 ¤/GB/mes |
| Residencial dinámico (empresa) | Requisitos de las visitas de alta frecuencia | 9,47 RMB/GB/mes |
| Viviendas estáticas | Operaciones fijas a largo plazo | 35/IP/mes |
Se aconseja a los novatos que practiquen primero con la Edición Estándar Dinámica, y luego pasen a la Edición Enterprise cuando surja el negocio. SuExtracción de APISí que es útil, escribí un script que renueva automáticamente las IPs y funciona bastante bien con crontab.
La última frase persistente, se encontró con escenarios complejos directamente al servicio al cliente para 1v1 programa, que su propio pliegue ciego para ahorrar tiempo. La última vez que hay una colección transfronteriza necesidades, dieron la línea transfronteriza directamente ahorrar costes de tráfico 30%.

