
Te enseñamos a utilizar las páginas web de BeautifulSoup pickpocket
Recientemente, un pequeño amigo siempre me preguntó a usar Python para hacer rastreo web siempre se bloquea IP ¿cómo hacer? Hoy vamos a fastidiar sobre este asunto. En primer lugar, para participar en la recopilación de datos debe aprender dos trucos:Combinación de análisis sintáctico de HTML e IP proxyEs como cuando vas al mercado a comprar comida. Es como cuando vas al mercado a comprar comida, tienes que ser capaz de elegir los alimentos (análisis sintáctico), pero también de sortear a los dueños de los puestos (antibloqueo).
Funcionamiento básico de BeautifulSoup
Empieza cargando una herramienta mientras la tengas a mano:
pip install beautifulsoup4 peticiones
Ponga un ejemplo de captura del precio de una mercancía:
importar peticiones
from bs4 import BeautifulSoup
Recuerde utilizar los proxies ipipgo aquí
proxies = {
'http': 'http://username:password@gateway.ipipgo.com:9020',
https': 'http://username:password@gateway.ipipgo.com:9020'
}
resp = requests.get('https://example.com/products', proxies=proxies)
soup = BeautifulSoup(resp.text, 'lxml')
precios = soup.select('.etiqueta-precio')
para precio en precios: print(precio.texto.tira)
print(tira.texto.precio())
Cuidado con este pozo:Muchos sitios detectarán User-Agent, recuerde añadirlo en las cabeceras, de lo contrario el uso de proxies es inútil.
La forma correcta de abrir una IP proxy
¿Por qué usar el proxy de ipipgo? Basta con mirar esta tabla comparativa:
| toma | Agente general | proxy ipipgo |
|---|---|---|
| Sitio web de comercio electrónico | 10 minutos para sellar | Estable durante 8 horas + |
| redes sociales | CAPTCHA frecuente | Reducción de captcha 70% |
| adquisición de alta frecuencia | alta frecuencia de desconexión | Rotación inteligente de IP |
Aquí está el truco.Consejos para la rotación en PILa siguiente es una lista de algunas de las direcciones IP más populares del mundo: ipipgo, ipipgo, ipipgo, ipipgo, ipipgo.
Guía práctica para evitar el pozo
¿Se ha visto alguna vez en una de estas situaciones?
Ejemplo típico de notificación de errores
ConnectionError: HTTPSConnectionPool...
En este punto hay que comprobar tres cosas:
1. la dirección del proxy no está mal escrita (especialmente el número de puerto)
2. ¿Ha caducado la contraseña de la cuenta?
3. Si la autenticación SSL está activada en el sitio de destino
Aquí tienes un truco: en requests.get() añadeverificar=Falseresponder cantandotiempo de espera=10que resuelve el problema SSL de 80%.
La experiencia del viejo pájaro
Nombra algunos lugares fáciles para plantar la cabeza:
- No uses el html.parser por defecto, ¡cambia el lxml parser para que sea el doble de rápido!
- Encuentre datos cargados dinámicamente con Selenium + el agente móvil de ipipgo
- Limpieza regular de cookies, recomendada cada 50 peticiones
Preguntas frecuentes QA
P: ¿Qué debo hacer si siempre recibo un error 403?
A:Tres puntos de solución de problemas: 1) la cabecera de la petición no tiene User-Agent 2) la IP está etiquetada 3) la frecuencia de visitas es demasiado alta. Se recomienda usar el proxy residencial de ipipgo, el grado de disimulo es mayor.
P: ¿Qué debo hacer si los datos no están totalmente cargados?
R: El 80% encontró renderizado dinámico, con esta combinación: Selenium + headless browser + ipipgo's dynamic IP pool.
P: ¿Cómo puedo conseguir una buena oferta en los proxies de ipipgo?
R: Los nuevos usuarios obtienen primero una prueba de 3 días, colección de lotes eligen el paquete Enterprise Edition, recuerde usar el código promocional BS2023 para obtener un 10% de descuento.
Te diré lo que pienso.
Participar en la recopilación de datos es como la guerra de guerrillas, no espere que un conjunto de configuraciones para ir por todo el mundo. Diferentes sitios para utilizar diferentes estrategias, la clave es probar más ajustes. Recientemente encontrado ipipgoEnrutamiento inteligenteLa función es bastante fragante, puede coincidir automáticamente con el nodo más rápido, la eficiencia de recolección se duplica directamente.
Un último recordatorio: ¡no utilice chino en los encabezados! No utilice chino. ¡No utilice chino! (Importante decirlo tres veces) Algunos sitios lo detectan, con un código de porcentaje que hay que tratar antes de enviar.

