
Manos a la obra con Beautiful Soup para robar datos
Recientemente, una gran cantidad de pequeños socios me preguntó, con Python sitio carterista es siempre anti-escalada para hacer el colapso de la mente ¿cómo hacer? Hoy vamos a fastidiar cómo utilizar Hermosa Sopa esta herramienta con proxy IP, por lo que recoger datos este asunto se convierte en fácil y fiable.
¿Por qué utilizar una IP proxy para recoger datos?
Por ejemplo, si usted se pone en cuclillas en un café Internet y jugar toda la noche, y el jefe ve que usted está jugando demasiado alto y saca el cable de Internet directamente, entonces usted puede seguir drogándose si cambia de asiento. Proxy IP es la razón, cuando el sitio encontró que usted solicita con demasiada frecuencia, cambiar la dirección IP puede seguir trabajando.
Te lo recomendamos.ipipgoServicios de agencia especializados en resolver estos problemas:
1. IP pool masivo en cualquier momento para cambiar
2. La tasa de éxito de las peticiones es estable en 99%+.
3. Soporte de protocolo HTTP/HTTPS/SOCKS5
Especialmente para hacer el seguimiento de precios de comercio electrónico tales proyectos que requieren la captura a largo plazo, el uso de sus agentes puede ahorrar un montón de dolores de cabeza.
Configuración del entorno del agente
Equipa primero el conjunto de herramientas esenciales:
pip install beautifulsoup4 peticiones
Aquí hay que tener en cuenta un pequeño escollo: muchos tutoriales no enseñan cómo configurar el tiempo de espera, así que tendremos que escribirlo de esta manera:
importar peticiones
from bs4 import BeautifulSoup
proxies = {
'http': 'http://username:password@gateway.ipipgo.com:9020',
https: http://username:password@gateway.ipipgo.com:9020
}
try.
response = requests.get('URL de destino', proxies=proxies, timeout=10)
soup = BeautifulSoup(response.text, 'html.parser')
except requests.exceptions.ProxyError as e:
print("El proxy está dando vueltas, ¡comprueba la configuración ahora!")
Se utiliza aquíipipgoEl formato de autenticación, recuerde sustituir la contraseña de su cuenta. Se recomienda que el tiempo de espera no sea inferior a 8 segundos para dar tiempo al servidor a reaccionar.
Consejos para el análisis de HTML
No se asuste cuando se encuentre con contenido cargado dinámicamente, pruebe estos consejos de posicionamiento:
Buscar divs cuya clase contenga "precio".
soup.select('div[class=precio]')
Coge la tercera fila de la segunda tabla
soup.find_all('tabla')[1].find_all('tr')[2]
Extraer las palabras clave de las etiquetas meta
soup.find('meta', {'name':'keywords'})['content']
Si se encuentra en una situación en la que la estructura de la página cambia con frecuencia, se recomienda utilizar la funciónipipgoLa función de rotación de IP se combina con un mecanismo de reintento:
probar.
Aquí la IP se cambiará automáticamente
response = requests.get(url, proxies=proxies)
except: response = requests.get(url, proxies=proxies)
excepto: continue
continuar
Preguntas frecuentes QA
P: ¿Qué debo hacer si de repente la IP proxy no funciona bien?
R: Compruebe primero si la cuenta ha caducado y, a continuación, utilice la funciónipipgoLas herramientas de detección de IP en segundo plano, a veces el sitio web de destino bloquea temporalmente ciertos segmentos de IP.
P: ¿Cómo puedo estar seguro de que el poder está en vigor?
R: Pon una prueba en el código:
print(requests.get('http://httpbin.org/ip', proxies=proxies).json())
Es bueno ver que la IP devuelta no es la dirección local.
P: ¿Qué puedo hacer si encuentro un error de certificado SSL?
R: Añada el parámetro verify=False a la solicitud de peticiones, o póngase en contacto con elipipgoEl servicio de atención al cliente cambió a su certificado SSL.
Una versión mejorada del truco.
Recuerda añadir estas configuraciones si quieres que funcione de forma constante las 24 horas del día:
Espera aleatoria 1-3 segundos
importar random
time.sleep(random.uniform(1,3))
Disfrazar la identidad del navegador
cabeceras = {
User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36...'
}
ajusteipipgoEl paquete de facturación basado en volumen, hacer rastreo distribuido puede ahorrar mucha plata. Su API también puede obtener una lista de IPs disponibles en tiempo real, que es especialmente adecuado para escenarios que requieren alta concurrencia.
Por último, aunque el uso de proxy IP, pero no espigar los datos del sitio web a la muerte. Controlar la frecuencia de las solicitudes, y ser un ingeniero de rastreo ética, por lo que nuestro negocio rastreador puede ser duradera ~.

