
Quand les reptiles rencontrent le HTML : ne vous écrasez pas encore dans le Sud !
Les vieux briscards engagés dans des réseaux de crawlers ont dû rencontrer cette situation : il est difficile d'écrire un bon script, soudain le site cible est tiré au noir. C'est à ce moment-là qu'il faut deux pinceaux - leAnalyser le contenu du web et apprendre à se protéger en même tempsLa première chose dont nous allons parler aujourd'hui est que Beautiful Soup est comme un couteau suisse. La Beautiful Soup dont nous allons parler aujourd'hui est un véritable couteau suisse, spécialisé dans tous les types de désordres HTML.
Commençons par le rôle des IP proxy dans ce jeu. Supposons que vous souhaitiez visiter un certain site web en permanence pour en vérifier les données. Utiliser une IP fixe revient à porter un costume fluorescent pour le suivre - exposé en quelques minutes. Cette fois-ciPool de proxy pour ipipgoC'est très pratique, comme si vous aviez des centaines d'accessoires de travestissement à votre disposition.
Par exemple, l'utilisation de requêtes avec un proxy
import requêtes
from bs4 import BeautifulSoup
proxies = {
'http' : 'http://username:password@gateway.ipipgo.com:9020',
'https' : 'http://username:password@gateway.ipipgo.com:9020'
}
response = requests.get('https://target-site.com', proxies=proxies)
soup = BeautifulSoup(response.text, 'html.parser')
Leçon d'anatomie HTML : ne pas s'enfermer dans les balises
La plus belle des soupes, c'est que le désordre du HTML peut être nettoyé de manière satisfaisante. Examinons quelques astuces courantes :
1. trouver des choses, c'est comme vérifier le compteur d'eauL'utilisation de find() et find_all() revient à détenir un mandat de recherche, et le sélecteur CSS est votre GPS de navigation. Par exemple, si vous souhaitez obtenir tous les prix des articles :
price_tags = soup.select('.product-price')
for price in price_tags.
print(prix.get_text())
2. ne pas manquer les valeurs des attributsLorsque vous rencontrez une image ou un lien, n'oubliez pas d'extraire le href ou le src. Donnez un exemple d'extraction d'une image :
images = soup.find_all('img')
for img in images : print(img['src'])
print(img['src']) Notez que vous pouvez obtenir une erreur ici, alors n'oubliez pas d'ajouter une exception !
La bonne façon d'ouvrir un proxy IP
Et voici l'essentiel ! Un piège dans lequel de nombreux débutants ont tendance à tomber :
| mauvaise posture | manipulation correcte |
|---|---|
| IP unique à la mort | Rotation dynamique du pool d'agents avec ipipgo |
| Ignorer les paramètres du délai d'attente | requests.get(timeout=10) |
| streak (courir nu) visite | N'oubliez pas d'ajouter le camouflage User-Agent ! |
Recommandé pour ipipgoMode de commutation intelligentL'API attribuera automatiquement les IP disponibles, et il a été testé, et la collecte continue n'a pas été bloquée pendant 3 heures, ce qui est beaucoup plus fiable que certains services proxy qui vendent de la viande de chien.
Des problèmes sur le terrain
Ne paniquez pas lorsque vous rencontrez un CAPTCHA, essayez ces astuces :
1. réduire la fréquence des demandes et hiberner de manière aléatoire avec le module aléatoire
2. changer l'agent utilisateur pour un autre navigateur.
3. changer immédiatement l'IP de remplacement de ipipgo en cas de bannissement.
4. les données importantes sont collectées par lots, n'essayez donc pas de les obtenir en une seule fois.
Exemple d'usurpation d'identité d'un navigateur
headers = {
User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers, proxies=proxies)
séance de questions-réponses
Q : Pourquoi utiliser ipipgo plutôt que des proxies gratuits ?
R : Un proxy gratuit est comme des toilettes publiques, tout le monde peut l'utiliser mais l'hygiène n'est pas garantie. Le proxy exclusif d'ipipgo est comme votre propre salle de bain, propre et hygiénique.
Q : Que dois-je faire si je rencontre des données chargées dynamiquement ?
R : Vous pouvez travailler avec Selenium, mais n'oubliez pas de mettre en place un proxy pour Selenium. ipipgo prend en charge le protocole socks5, qui convient à ce scénario.
Q : Comment puis-je savoir si une adresse IP est exposée ?
R : Visitez régulièrement le site http://httpbin.org/ip检测 et si l'IP renvoyée ne correspond pas à ce qui est attendu, dépêchez-vous de changer la nouvelle IP d'ipipgo.
Une dernière remarque, soyez un crawler et soyez martial. Ne bousillez pas les sites des autres avec des ipipgo.Contrôle intelligent du QPSLa fonction est d'assurer l'efficacité et non d'être un cyber-hooligan. Lorsqu'il s'agit de sites web difficiles, leur service clientèle technique peut également fournir des solutions personnalisées, ce point est vraiment plus intime que les pairs.

