
Tout d'abord, pourquoi la résolution de la page web est toujours bloquée IP, vous avez peut-être manqué cette étape.
Les amis qui s'occupent de l'analyse syntaxique du web ont dû rencontrer une telle situation : le code est clairement écrit, mais le site cible bloque soudainement l'IP. À ce stade, ne vous empressez pas de douter de la vie, il est fort probable que les caractéristiques de votre demande aient été identifiées. Certains sites sont comme les portes de sécurité des supermarchés, voir le même client une demi-heure entrer et sortir vingt fois, pas la police seulement étrange.
Voici une astuce pour vous...Des "gilets" différents pour chaque demande. Tout comme l'agent secret pour effectuer la tâche de changer de vêtements, notre crawler a également besoin de changer souvent d'adresse IP. Cette fois, vous avez besoin d'un fournisseur de services IP proxy fiable, tel que ipipgo, qui jouit d'une bonne réputation dans le secteur, sa famille est spécialisée dans l'agent résidentiel dynamique, le pool IP dispose de dizaines de millions d'IP résidentielles réelles, chaque demande peut changer une nouvelle identité.
Deuxièmement, quatre bibliothèques d'analyse syntaxique Python ont fait l'objet d'une évaluation réelle.
Le choix des bons outils peut doubler l'efficacité, et j'ai personnellement testé les bibliothèques suivantes :
| nom de la bibliothèque | difficulté initiale | la résolution (des fichiers images) | empreinte mémoire |
|---|---|---|---|
| Demandes+BS4 | ⭐ | ⭐⭐⭐⭐⭐⭐⭐⭐ | Environ 200MB |
| lxml | ⭐⭐⭐⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Environ 80MB |
| PyQuery | ⭐⭐⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Environ 150MB |
En vedettelxmlAvec cette bibliothèque, la vitesse de parsing est comparable à celle de hanging. Mais attention, avec les éléments de positionnement xpath, pensez à vérifier que la structure de la page n'a pas changé, cette bibliothèque sur les exigences de format sont plus strictes.
Troisièmement, la bonne façon d'ouvrir l'IP proxy
Si l'on prend l'exemple du service d'ipipgo, l'ajout de proxies au code est en fait extrêmement simple. L'essentiel est de bien gérer les exceptions, car l'environnement réseau est très complexe :
Importation de requêtes
from lxml import html
proxies = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:端口', 'https' : 'http://用户名:密码@gateway.ipipgo.com:端口'
'https' : 'https://用户名:密码@gateway.ipipgo.com:端口'
}
try.
response = requests.get('destination URL', proxies=proxies, timeout=15)
tree = html.fromstring(response.content)
Ecrivez votre logique d'analyse ici...
except requests.exceptions.ProxyError : print("The
ProxyError : print("Exception de connexion au proxy. Suggérer de changer d'IP automatiquement.")
Notez que le nom d'utilisateur et le mot de passe ont été remplacés par leurs propres informations d'authentification obtenues dans l'arrière-plan d'ipipgo, sa famille soutient le mode de paiement par volume, avec combien de compte, particulièrement adapté aux projets de petite et moyenne taille.
Quatrièmement, pour éviter le guide de la fosse : les novices commettent souvent cinq erreurs
1. Mourir pour un IPJ'ai vu des gens réessayer même après que leur IP ait été bloquée, et ensuite ils ont été mis sur liste noire de façon permanente. La bonne façon de procéder est de changer de proxy immédiatement après avoir déclenché l'interdiction.
2. Oublier de définir un délai d'attenteCertains sites sont lents à répondre et le fait de ne pas fixer de délai d'attente risque de bloquer l'ensemble du processus.
3. User-Agent est trop faux: n'utilisez pas l'UA qui accompagne les requêtes, allez sur le web et trouvez une liste de véritables UA de navigateurs.
4. Ignorer l'authentification SSLBien que l'ajout de verify=False permette d'ignorer la validation du certificat, il augmente le risque de rupture.
5. Pas d'intervalle de demandeMême avec des proxies, la fréquence doit être contrôlée, les demandes trop intensives seront reconnues comme des attaques DDoS !
V. Le temps de l'AQ : Vous demandez, je réponds
Q : Les proxys gratuits fonctionnent-ils ?
R : Les tests à court terme peuvent être amusants, mais il est recommandé aux projets officiels d'utiliser un service payant comme ipipgo. Le plus gros problème des proxys gratuits est leur faible taux de disponibilité, qui se traduit souvent par des échecs de connexion, des lenteurs et des risques éventuels pour la sécurité.
Q : Dois-je changer mon IP pour chaque demande ?
R : Cela dépend de la force du contrôle des vents du site web cible. Les sites d'information ordinaires peuvent ne pas être nécessaires, mais il est recommandé de remplacer à chaque fois les sites de commerce électronique et de réseaux sociaux. L'API d'ipipgo prend en charge le remplacement automatique des adresses IP en fonction du nombre de demandes, ce qui est particulièrement adapté aux scénarios de collecte à haute fréquence.
Q : Que dois-je faire si je rencontre des données chargées dynamiquement ?
R : Vous pouvez l'utiliser avec Selenium ou Playwright, et n'oubliez pas de configurer le proxy pour le pilote du navigateur. Voici un conseil : utilisez l'IP mobile d'ipipgo pour mieux simuler l'environnement du navigateur mobile.
Enfin, l'analyse syntaxique du web n'est pas une question de savoir qui écrit le meilleur code, mais qui a la stratégie la plus proche de la réalité. L'utilisation d'un bon proxy IP, cette "cape d'invisibilité", couplée à une bibliothèque d'analyse syntaxique fiable, permet, à l'ère du big data, de creuser régulièrement dans la mine d'or. Les problèmes techniques sont les bienvenus dans les échanges de la communauté des développeurs d'ipipgo, leur service de réponse technique à la clientèle est plus rapide, plus fiable que certains des grands fabricants.

