
Ce que vous ne comprenez pas tant que vous n'avez pas été retiré d'un site web
Lorsque j'ai appris les reptiles pour la première fois, j'ai toujours pensé que tout irait bien si le code fonctionnait. Jusqu'à ce qu'un jour, je reçoive continuellement des erreurs 403 et que je regarde fixement l'écran."Vos visites sont trop fréquentes.Ce n'est que lorsque je me suis rendu compte que le mécanisme anti-escalade du site web était plus sensible que je ne le pensais que je me suis rendu compte que le mécanisme anti-escalade du site web était plus sensible que je ne le pensais. À l'heure actuelle, il ne suffit plus de changer d'User-Agent, il faut trouver une solution plus professionnelle.
Les paramètres du délai d'attente sont un mystère
De nombreux débutants ont tendance à ignorer le paramètre timeout, ce qui a pour conséquence de bloquer leurs programmes. Par exemple, la manière la plus sûre d'utiliser la bibliothèque de requêtes est de l'écrire de cette manière :
response = requests.get(url, timeout=(3.05, 27))
Voici3,05 secondesest un délai de connexion.27 secondes.Il s'agit d'un délai de lecture. N'utilisez pas d'entiers, un point décimal évitera les conflits avec les paramètres de temps de certains serveurs. Si vous n'obtenez pas de réponse après le délai fixé, déconnectez-vous et passez à la tâche suivante, ne vous accrochez pas au même arbre.
La bonne façon d'ouvrir un proxy IP
Les demandes de FH isolées sont comme l'utilisation de la même clé pour ouvrir une serrure, tôt ou tard le serrurier s'en apercevra. C'est alors qu'il est temps deipipgoLe service de proxy dynamique permet à chaque demande de passer à un "manteau" différent. Leur pool d'adresses IP est mis à jour assez fréquemment et il peut changer automatiquement plus de 200 nœuds actifs par heure.
proxies = {
'http' : 'http://user:pass@gateway.ipipgo.com:9020',
'https' : 'http://user:pass@gateway.ipipgo.com:9020'
}
response = requests.get(url, proxies=proxies, timeout=10)
Triple hache pour le réglage des performances
| faire preuve de tact | Recommandations de paramètres | effet |
|---|---|---|
| Contrôle simultané | Nombre de fils ≤ 50 | Éviter de déclencher le contrôle du vent |
| Échelle des heures supplémentaires | 3-10-30 secondes | Traitement hiérarchique des exceptions |
| Rotation de la période d'enquête | 5 demandes/IP | Durée de vie prolongée de l'agent |
Enregistrement des pièges réels
Il fut un temps où je crawlais les données publiques des gouvernements et où je fixais un délai d'attente de 3 secondes. En conséquence, certaines pages comportant de nombreux champs étaient toujours bloquées, et j'ai découvert plus tard qu'il s'agissait d'une erreur de la part de l'administration.Handshake SSLCela prend trop de temps. Réglez le délai de connexion à 5 secondes et maintenez le délai de lecture à 15 secondes, et le problème est résolu. Ce genre de détails ne figurera pas dans le document officiel, c'est une leçon apprise dans le sang et les larmes.
Kit de premiers secours QA
Q : Pourquoi le site est-il toujours bloqué après l'utilisation d'un proxy ?
R : Vérifiez la fréquence d'utilisation de l'IP. Il est recommandé qu'une seule IP ne soit pas sollicitée plus de 50 fois par heure. L'arrière-plan d'ipipgo peut être configuré pour modifier automatiquement la fréquence d'utilisation de l'IP.
Q : Quel est le réglage approprié du délai d'attente ?
A : premièrement, la vitesse de réponse moyenne du site, pendant le test avec une base de 10 secondes, la course officielle a été raccourcie à 70%.
Q : Que dois-je faire si mon IP proxy tombe soudainement en panne ?
R : Ajoutez un mécanisme de réessai au module de gestion des exceptions, comme suit :
essayer.
Code de requête normal
except (Timeout, ProxyError) : ipipgo.refresh_ip() Appelle l'API pour changer l'IP.
ipipgo.refresh_ip() appelle l'API pour changer l'IP.
logger.warning("Mécanisme de fusion déclenché")
Dites la vérité.
Le crawling est essentiellement une bataille d'esprit avec les opérateurs de sites web. La dernière fois que j'ai utilisé l'outil d'ipipgociblage géographiqueFonction : appeler spécifiquement l'adresse IP de la salle des serveurs de Shanghai pour attraper le forum local, le taux de réussite est directement doublé. Le personnel technique a également enseigné une astuce : le délai d'attente et la stratégie de commutation de proxy sont liés, les nœuds lents sont automatiquement dégradés, cet ensemble de combinaisons a permis de multiplier par plus de trois l'efficacité de la collecte.

