Te enseñamos a usar BS4 para obtener datos sin bloquear el número
Qué es lo que más temes cuando haces crawling, ¡la IP bloqueada está definitivamente entre los tres primeros! Hoy vamos a fastidiar cómo utilizar Beautifulsoup4 (más tarde conocido como BS4) para capturar datos con elipipgoNo hagas tonterías y ve al grano.
No pise baches preparando el entorno
Instale primero estas bibliotecas esenciales:
pip install beautifulsoup4 solicita fake-useragent
Tenga cuidado de no utilizar una versión de peticiones demasiado antigua, se recomienda utilizar la 2.28 o superior. Si encuentra errores de instalación, intente añadir la fuente Tsinghua mirror:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple nombre del paquete
Curso intensivo de uso básico de BS4
Ponga un ejemplo de captura de precios de comercio electrónico:
from bs4 import BeautifulSoup
importar peticiones
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36'}
url = 'http://example.com/product'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
precio = soup.select_one('.producto-precio').text.strip()
Aquí hay tres puntos clave:
- Máscara de usuario-agenteHay que hacerlo. Directo a los huesos se bloqueará.
- Se recomienda utilizar el parser lxml, que es tres veces más rápido que html.parser
- select_one es mejor que find y soporta la sintaxis de los selectores CSS.
Proxy IP de acceso al mundo real
La aversión a la IP única se acaba tarde o temprano, aquí te enseñamos a tomarlaipipgodel conjunto de agentes:
proxies = {
'http': 'http://用户名:密码@gateway.ipipgo.com:9020',
https: http://用户名:密码@gateway.ipipgo.com:9020
}
try.
response = requests.get(url, headers=headers, proxies=proxies, timeout=8)
except requests.exceptions.ProxyError:
print("Excepción de proxy, cambiando automáticamente a una nueva IP...")
Aquí puedes acceder a la API de ipipgo para cambiar la IP automáticamente.
Nota al utilizar el proxy exclusivo de ipipgo:
parámetros | valor de ejemplo |
---|---|
dirección del servidor | pasarela.ipipgo.com |
Gama de puertos | 9020-9030 |
Método de autenticación | Nombre de usuario + Contraseña |
Una guía para evitar las trampas de los proyectos reales
Estas lecciones las aprendí recientemente mientras ayudaba a un cliente a captar un determinado sitio de comparación de precios:
- Duerme aleatoriamente 1-3 segundos por petición, no uses un intervalo fijo.
- Cambie inmediatamente a un nuevo nodo en ipipgo cuando encuentre un captcha.
- Los datos importantes se comprueban dos veces con xpath para evitar cambios en la estructura de la página.
Preguntas frecuentes QA
P: ¿Qué debo hacer si la IP del proxy deja de estar disponible de repente?
A:Compruebe el tipo de error en el "connection log" de ipipgo background, si es error 407, significa que la información de autenticación es errónea, y si es 403, se recomienda cambiar el nodo del centro de datos.
P: ¿Cómo puedo optimizar el rastreo lento?
R: Ponga las múltiples IPs proxy de ipipgo en la cola y use librerías de peticiones asíncronas (como aiohttp) para procesarlas concurrentemente, lo que se mide que acelera de 5 a 8 veces.
P: ¿Qué debo hacer si me encuentro con la protección de Cloudflare?
R: Esta situación necesita: 1. reemplazar el proxy de alta alijo 2. añadir el encabezado de huella digital del navegador 3. ir ipipgo de la piscina IP residencial en el extranjero. Tres golpes básicamente puede romper.
Por último dar un consejo: no trate de barato con agentes libres, ligera pérdida de datos, pesada marca anti-escalada. Aunque cuesta dinero usar el proxy de nivel empresarial de ipipgo, es mejor que los otros.Alto índice de éxito de las solicitudesyLos grupos de IP se actualizan rápidamenteEs especialmente adecuado para los escenarios que necesitan captar datos de forma constante durante mucho tiempo. Los nuevos usuarios recuerdan obtener 3G de tráfico de experiencia, suficiente para las pruebas.