
Formation pratique à l'utilisation de BeautifulSoup pour l'exploration des sites web.
Récemment, il y a toujours un vieux fer à repasser qui m'a demandé, en utilisant Python pour s'engager dans le crawling web toujours être bloqué IP comment faire avec ? Aujourd'hui, nous allons nous pencher sur cette question. Commençons par un cas réel : mon disciple voulait connaître le prix d'un certain site web le mois dernier, et 200 IP ont été bloquées. Cette fois-ci, nous devons offrir notreméthode de l'IP proxyLes services à domicile d'ipipgo, qui ont été testés pour l'acquisition de données à haute intensité, sont particulièrement adaptés à ce type d'utilisation.
Pourquoi ai-je besoin d'une IP proxy ?
Pour donner un marronnier, le site est comme un gardien de la communauté, vous portez les mêmes vêtements à l'entrée et à la sortie tous les jours, trois jours pour être reconnu. Proxy IP estdrag queenSi vous voulez utiliser un agent différent pour chaque demande, vous devez changer votre "armure". Mais attention, n'utilisez pas ces proxies gratuits, neuf sur dix sont des pires. Comme ipipgo, ce fournisseur de services professionnels, le pool d'IP est vaste et stable, il n'est pas facile de le renverser.
import requests
from bs4 import BeautifulSoup
proxies = {
'http' : 'http://username:password@proxy.ipipgo.com:9020',
'https' : 'https://username:password@proxy.ipipgo.com:9020'
}
response = requests.get('https://目标网站.com', proxies=proxies)
soup = BeautifulSoup(response.text, 'html.parser')
suivi de votre code d'analyse...
Ne négligez pas vos préparations environnementales
La question du chargement des bibliothèques est parfois assez métaphysique, et nous recommandons d'utiliser le Tsinghua Mirror Source :
pip install beautifulsoup4 requests -i https://pypi.tuna.tsinghua.edu.cn/simple
Faites attention à la compatibilité des versions, Python 3.8 ou plus est recommandé. Si vous rencontrez des erreurs SSL, n'oubliez pas de mettre à jour votre certificat :
pip install --upgrade certifi
Quatre étapes vers le combat réel
1) Tout d'abord, dissimulez le fichier d'en-tête, ne laissez pas le site web vous identifier comme un reptile.
headers = {
User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) comme un navigateur décent',
'Accept-Language' : 'zh-CN,zh;q=0.9'
}
2. les paramètres du proxy doivent être prudents, il est recommandé d'utiliser la session pour conserver la session :
session = requests.Session()
session.proxies.update(proxies)
3) L'analyse est plus sûre avec les sélecteurs CSS, par exemple pour trouver le prix d'un produit :
price_tags = soup.select('div.price-wrapper > span.current-price')
4. ne pas être paresseux dans la gestion des exceptions, en particulier les fluctuations du réseau :
try:
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"撞了: {err}")
这里可以触发ipipgo的自动切换IP功能
Déminage des nids-de-poule courants
| symptomatique | antidote |
|---|---|
| Renvoie une erreur 403 | Vérification de l'agent utilisateur et des cookies |
| Délai de connexion | Augmenter le paramètre de délai d'attente |
| incompatibilité des données | Confirmation des modifications apportées à la structure de la page |
Temps consacré à l'assurance qualité
Q : Dois-je changer souvent d'adresse IP avec ipipgo ?
R : Si son pool d'adresses IP est suffisamment important, la valeur par défaut sera automatiquement modifiée, sauf en cas d'acquisition particulièrement fréquente, il n'est généralement pas nécessaire de la modifier manuellement.
Q : Comment la vitesse de défilement est-elle contrôlée ?
R : Suggérer d'ajouter un délai aléatoire :
Importation du temps
import random
time.sleep(random.uniform(1, 3)) Random sleep 1-3 seconds
Q : Que dois-je faire si je rencontre un CAPTCHA ?
R : Cette situation suggère : 1. de réduire la fréquence des demandes 2. d'utiliser la réserve importante d'agents d'ipipgo 3. d'utiliser la plateforme de codage (mais le coût augmente)
Un dernier mot.
L'IP Proxy n'est pas une panacée, la clé de la réussite est la suivanteFaire semblant d'être une personne réelle.L'agent résidentiel dynamique de la famille ipipgo est particulièrement adapté au besoin de collecte à long terme de la scène, le pro-test continu pendant une semaine n'a pas été bloqué. Rappelez-vous, la capture de page web pour parler des arts martiaux, ne pas faire raccrocher les serveurs des gens.

