
Te enseña a utilizar una IP proxy para captar datos de páginas web
Recientemente, un montón de amigos le preguntó Lao Zhang, utilizando Python para analizar la página web siempre se encontró con el error 403 ¿cómo lidiar con? Esto es como ir al mercado a comprar comida, vas al mismo puesto todos los días, el dueño del puesto debe reconocerte. Lo mismo ocurre con los servidores web, que simplemente te desconectarán si descubren que los visitas con frecuencia. Esta vez necesitamos nuestroProxy IP ProdigyVino a ayudar.
¿Por qué hay que meter en cintura a los reptiles?
Tome un caso real: Xiao Wang para atrapar a un sitio web del tiempo de datos, acaba de capturar 200 páginas en la IP bloqueada, y luego se utiliza ipipgo proxy dinámico residencial, cada solicitud de una región diferente de la dirección IP, el servidor no puede distinguir entre la gente real visita o rastreador, los datos sin problemas a la mano.
importar peticiones
from bs4 import BeautifulSoup
proxies = {
'http': 'http://user:pass@gateway.ipipgo.com:9020',
https: http://user:pass@gateway.ipipgo.com:9020
}
response = requests.get('https://目标网站.com', proxies=proxies)
soup = BeautifulSoup(response.text, 'html.parser')
Aquí está tu código de análisis...
¿Qué hay que tener en cuenta a la hora de elegir una IP proxy?
Los proveedores de servicios de agentes del mercado son muy variados, pero Lao Zhang recomienda que ipipgo se centre principalmente en tres puntos:
1. IP residencial real: A diferencia de las IP de las salas de servidores, que son fácilmente identificables
2. Rotación automática: no se preocupe por los cambios automáticos de IP por solicitud
3. Soporte de protocoloSoporte simultáneo para HTTP/HTTPS/SOCKS5
Guía práctica para evitar el pozo
Un error común que cometen los novatos es configurar el proxy incorrectamente, aquí hay una plantilla universal:
importar peticiones
from itertools import ciclo
Grupo de proxy de ipipgo
lista_proxy = [
"pasarela.ipipgo.com:8001",
"gateway.ipipgo.com:8002",
"pasarela.ipipgo.com:8003"
]
proxy_pool = cycle(proxy_list)
para página en rango(1, 100): proxy_actual = siguiente(proxy_pool)
proxy_actual = siguiente(proxy_pool)
proxy_actual = siguiente(proxy_pool)
response = requests.get(
url=f "https://目标网站.com/page/{page}", proxies={"http": f "https://目标网站.com/page/{proxy_actual}", }
proxies={"http": f "http://{proxy_actual}"}, timeout=5, proxy_actual = next(proxy_pool)
tiempo de espera=5
)
Analizando el código...
excepto.
print(f"{proxy_actual} falló, cambiando automáticamente al siguiente.")
Preguntas frecuentes QA
P: ¿Qué debo hacer si utilizo un proxy y sigo bloqueado?
R: Comprueba dos cosas: 1. si se establece la cabecera de la petición User-Agent 2. si la frecuencia de acceso es demasiado alta, se recomienda que el código añada time.sleep(2)
P: ¿Cuál es la mejor manera de conseguir una buena oferta en proxies ipipgo?
R: Para rastreadores, elija el paquete de IP Residencial Dinámica, los nuevos usuarios tienen un periodo de prueba de 3 días. Los usuarios empresariales recuerden elegir el paquete de IP exclusivas, ¡para evitar colisiones con otros!
P: ¿Un sitio web HTTPS no puede captar datos?
R: En la solicitud de peticiones para configurar tanto http y https dirección proxy, muchas personas sólo una
Actualizar Consejos de juego
Puede utilizarlo con Selenium cuando se encuentre con sitios web con un fuerte anti-escalado:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--proxy-servidor=http://gateway.ipipgo.com:9020')
driver = webdriver.Chrome(options=opciones)
driver.get("https://目标网站.com")
Aquí usamos BeautifulSoup para parsear driver.page_source
La última frase persistente, elegir el proxy IP es como buscar el objeto, usted tiene que encontrar un confiable. ipipgo utilizado durante medio año, la estabilidad de más del 90%. Especialmente su función de enrutamiento inteligente, puede coincidir automáticamente el nodo más rápido, que la conmutación manual mucho más problemas. ¡Recuerde que no debe utilizar agentes libres, la luz de fuga de datos, robo de cuenta pesada, la pérdida no vale la pena!

