
BeautifulSoup Web Crawl : Un guide pratique pour ne plus se faire bloquer son IP pour obtenir des données
Les confrères engagés dans le crawling comprennent que la moitié des données saisies sont soudainement bloquées par l'IP comment s'effondrer ! Aujourd'hui, nous allons utiliser la bibliothèque BeautifulSoup de Python, avec un proxy IP, pour vous apprendre à glaner des données web de manière stable et précise. Ne vous inquiétez pas, tous les tutoriels sont en langue vernaculaire, même si vous débutez, vous pourrez suivre l'opération.
Un petit rappel : BeautifulSoup n'est pas un outil pour faire de la soupe !
Installez d'abord la boîte à outils et exécutez les deux commandes suivantes :
pip install beautifulsoup4
pip install requests
Supposons que nous voulions analyser cette page HTML (enregistrée sous le nom de test.html) :
<div class="product-list">
<p>téléphones mobiles</p>
<p>écouteurs</p>
<a href="/fr/detail/1/">Voir les détails</a>
</div>
Le code d'analyse ressemble à ceci :
from bs4 import BeautifulSoup
import requests
# Lecture d'un fichier local
avec open('test.html', 'r', encoding='utf-8') as fp.
soup = BeautifulSoup(fp, 'lxml')
# Localisation d'une liste de produits
products = soup.select('.product-list p')
pour p dans produits.
print(p.text) # Sortie : téléphones portables, écouteurs
Vous voyez ?soup.select('.nom de la classe')Il sera capable de saisir des données par le biais d'un sélecteur CSS, ce qui représente beaucoup moins de travail que les expressions régulières !
Proxy IP : Crawler Life Saver (en anglais)
Pourquoi utiliser un proxy ? Prenons un marronnier : si vous brossez continuellement Jitterbug, la plateforme soupçonne-t-elle que vous êtes un robot ? Il en va de même pour les sites web, car la même IP récupérera les données et vous bloquera en quelques minutes !
L'IP Proxy fonctionne en trois étapes :
- Votre demande est envoyée à un serveur proxy (par exemple ipipgo).
- Le proxy utilise sa propre adresse IP pour récupérer les données des sites web cibles.
- J'obtiendrai les données et vous les transmettrai.
Points clés :Le site web cible voit l'adresse IP du proxy, et non votre adresse réelle ! C'est comme si vous indiquiez l'adresse d'un service de messagerie lors d'un achat en ligne, cela protège votre vie privée et empêche le suivi.
Troisièmement, le combat proprement dit : le crawler revêt la "cape d'invisibilité"
Scène :Analyse des prix des sites de commerce électronique et suivi des prix toutes les 5 minutes
Option 1 : Demandes + Proxy
import requests
from bs4 import BeautifulSoup
# Proxy de ipipgo (1G de trafic gratuit pour les nouveaux utilisateurs)
proxy = 'http://用户:密码@ipipgo dynamic proxy domain:port'
proxies = {
'http' : proxy,
'https' : proxy
}
response = requests.get('https://电商网站.com', proxies=proxies, timeout=15)
soup = BeautifulSoup(response.text, 'lxml')
price = soup.select_one('.product-price').text
print(f "Prix actuel : {prix}")
Attention :Le délai d'attente est fixé à 15 secondes pour éviter les brouillages, et les mandataires qui dépassent 20 secondes sont directement éliminés.
Option 2 : Navigateur simulé Selenium
Idéal pour les sites web à chargement dynamique :
from selenium import webdriver
from bs4 import BeautifulSoup
opt = webdriver.ChromeOptions()
opt.add_argument('--proxy-server=http://ipipgo动态代理域名:端口')
driver = webdriver.Chrome(options=opt)
driver.get('https://电商网站.com')
# Attendre la fin du chargement de la page avant de l'analyser
soup = BeautifulSoup(driver.page_source, 'lxml')
driver.quit()
Conseils :ipipgo prend en charge la technologie des ports dynamiques, il n'est pas nécessaire de modifier la configuration pour changer l'IP, ce qui convient particulièrement aux tâches de longue durée.
IV. guide pour éviter les pièges : ne marchez pas sur ces mines !
Fosse 1 : Agent libre = tirer une boîte aveugle ?
Le proxy gratuit en ligne peut utiliser moins de 10% ! soit le timeout, soit le blocage précoce. Pour faire des projets d'affaires, il est recommandé d'utiliser directement ipipgo ce genre de services professionnels, économiser le temps de débogage tôt de retour à la capitale.
Fosse 2 : La rotation de la propriété intellectuelle est-elle trop rigide ?
Ne soyez pas stupide en fonction d'un nombre fixe de fois pour changer l'IP ! L'opération haut de gamme est : en fonction de l'intensité de l'anti-escalade du site de l'ajustement dynamique. Citez une stratégie :
| État de la réponse du site web | mouvement |
|---|---|
| 200 normal | Poursuite de la période d'enquête actuelle |
| 403 Rejets | Basculer immédiatement vers la nouvelle IP |
| 3 temps morts consécutifs | Faire une pause d'une minute et réessayer |
Piste 3 : Ignorer robots.txt ?
Certains sites interdisent explicitement l'exploration des annuaires, par exemple :https://网站/robots.txt. Les captures dures pourraient manger la lettre d'un avocat !
V. Kit d'aide à l'assurance qualité : résoudre les problèmes de la 99%
Q : Que dois-je faire si mon IP proxy tombe soudainement en panne ?
R : Trois étapes : ① vérifier si le compte est en souffrance ; ② utiliser la route intelligente d'ipipgo pour commuter la ligne ; ③ contacter leur service clientèle (réponse des ingénieurs en 5 minutes).
Q : La vitesse d'accès est-elle aussi rapide que celle d'un escargot ?
R : La priorité est donnée aux nœuds qui sont proches de l'emplacement physique (par exemple, si le site web cible se trouve à Pékin, n'utilisez pas le proxy de Guangzhou). Si le site est toujours lent, contactez le service de dépannage technique d'ipipgo.
Q : Comment casser le CAPTCHA lorsque je le rencontre ?
A : deux options : ① réduire la fréquence des demandes, en simulant des intervalles de fonctionnement de personnes réelles ; ② accéder à la plateforme de codage pour l'identification automatique (attention aux risques juridiques).
Q : La saisie des données est-elle interrompue à moitié ?
R : Veillez à ajouter des tentatives d'exception lorsque vous écrivez un crawler ! Nous recommandons cette structure de code :
temps d'importation
retry = 0
while retry < 3: :
try : # Grab Code
# Code de saisie
break
except Exception : time.sleep(2 ** retry)
time.sleep(2 ** retry) # attente exponentielle de retry
retry += 1
Sixièmement, pourquoi choisir ipipgo ? un vieil utilisateur, une grande vérité
Raisons pour lesquelles on ne change pas de fournisseur de services après trois ans d'utilisation :
- Agents résidentiels dynamiquesLes données de l'IP sont conservées jusqu'à 24 heures, ce qui permet d'effectuer des tâches à long terme avec la même régularité qu'un chien !
- Des dizaines de millions de pools d'adresses IPLes IP sont bien meilleures que les IP dupliquées par les petits ateliers.
- Le prix est excellent.Le prix de 20% est inférieur à celui de ses homologues pour la même configuration, et les nouveaux utilisateurs obtiennent 1G de trafic pour rien !
- Routage intelligentSélection automatique de la ligne la plus rapide, mesurée plus rapidement que la commutation manuelle 40%
Ne vous contentez pas de regarder le prix unitaire bon marché ! Certains services IP à usage répété, attraper trois jours tous dans la liste noire. Il faut compter le temps de débogage et la perte de sang !
Conclusion : efficacité, mais aussi conformité
Rappelez-vous : il est parfaitement légal d'utiliser des proxys pour explorer des données publiques ! Mais ne touchez pas à ces trois lignes rouges : ① franchir les restrictions de connexion ② voler la vie privée des utilisateurs ③ paralyser les serveurs d'autrui.
L'acquisition de données est comme la conduite d'une voiture, le proxy IP est la ceinture de sécurité (pour vous sauver la vie), BeautifulSoup est le volant (pour contrôler la direction), et des services comme ipipgo sont le turbocompresseur (pour vous permettre d'aller un peu plus vite). Avec ce costume trois pièces, l'efficacité de l'acquisition de données décolle directement !

