
Quand les crawlers rencontrent les pop-ups de validation ? Essayez cette combinaison
L'autre jour, Wang utilisait BeautifulSoup pour écrire un crawler, et s'est soudain aperçu que le site cible affichait un CAPTCHA - eh bien, l'IP était à nouveau bloquée. Dans ce cas, nous faisons du crawling de données, cette fois l'IP proxy sur la scène pour sauver l'urgence. Aujourd'hui, nous allons voir comment faire fonctionner BeautifulSoup et le proxy IP.
Fonctionnement de base : trois lignes de code pour gérer la saisie de texte
Tout d'abord, le fonctionnement le plus basique de BeautifulSoup, pour le frère qui vient de commencer à faire un échantillon :
import requests
from bs4 import BeautifulSoup
resp = requests.get('http://目标网站')
soup = BeautifulSoup(resp.text, 'html.parser')
print(soup.get_text())
Le code a l'air bon, mais il fonctionne comme un charme. Pourquoi ? Maintenant le site va bien, même les requêtes trois ou cinq fois vous donnent immédiatement l'IP noire.
Mettre une cape d'invisibilité sur un reptile
C'est à ce moment-là que vous avez besoin d'une IP proxy pour vous couvrir. Prenez le service d'ipipgo comme marronnier, leur pool d'IP dynamiques est suffisamment grand et facile à changer. Changez le code et ajoutez un proxy :
proxies = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:9020',
'https' : 'http://用户名:密码@gateway.ipipgo.com:9020'
}
resp = requests.get('http://目标网站', proxies=proxies, timeout=10)
centreIci pour utiliser l'adresse tunnel exclusive fournie par ipipgo, les autres canaux peuvent ne pas être stables. Chacune de leurs IP proxy peut être utilisée jusqu'à 5 minutes, le basculement automatique sur ce point est particulièrement sans souci.
Contre-escalade Contre-mesures Conseils
Ne paniquez pas dans ces situations :
- Retour soudain à une page blanche → Changement d'IP
- Aller à la page CAPTCHA → réduire la fréquence des demandes
- Retour d'une erreur 403 → Vérifier les paramètres de l'en-tête de la demande
Cette combinaison de configurations est recommandée :
| paramètres | valeur recommandée |
|---|---|
| délai d'attente | 8-15 secondes |
| Tentatives | 3 fois |
| concurrence | ≤5 fils |
Questions fréquemment posées sur le blanc
Q : Ai-je utilisé un proxy ou ai-je été bloqué ?
R : Vérifiez deux choses : 1. si le proxy est efficace 2. si l'en-tête de la requête contient les empreintes digitales du navigateur.
Q : Quelle est la tarification d'ipipgo ?
R : La facturation se fait à l'heure et au trafic, et les nouveaux enregistrements bénéficient d'un trafic d'expérience de 1G, ce qui est suffisant pour les tests.
Q : Que dois-je faire si le texte extrait est confus ?
R : Spécifiez l'encodage dans BeautifulSoup :
soup = BeautifulSoup(resp.content, 'html.parser', from_encoding='gb18030')
Mise à niveau : Architecture d'acquisition distribuée
Ce couplage est recommandé lorsqu'une collecte à grande échelle est nécessaire :
1. tâches d'ordonnancement du nœud principal
2) Plusieurs nœuds d'exploration obtiennent des adresses IP de sortie différentes par l'intermédiaire d'ipipgo.
3. mise à jour en temps réel de la base de données des IP proxy disponibles
4. réaffectation automatique des tâches défaillantes à de nouveaux nœuds
Enfin, l'IP proxy n'est pas une panacée, avec le contrôle de la fréquence des requêtes, l'en-tête de requête dissimule ces moyens. Récemment trouvé ipipgo background peut directement voir le temps de survie de chaque IP, cette fonctionnalité est assez utile pour le débogage. Nous avons rencontré des problèmes étranges dans le cadre du combat actuel, soyez les bienvenus pour échanger ~ !

