
Une formation pratique sur le choix d'un outil de crawler : Selenium et Scrapy, quel est le meilleur outil ?
Crawler vieux fer les gens posent le plus souvent la question est : avec Selenium ou Scrapy, ces deux marchandises regardent les données peuvent être saisies, mais l'utilisation de la différence peut être un grand go. Aujourd'hui, nous allons briser les miettes pour dire, en particulier comment utiliser avec le proxy IP pour ne pas renverser la voiture.
I. Les scénarios applicables sont très différents
Commençons par la conclusion :Selenium pour les personnes réelles, Scrapy pour la vitesse et la quantité.La première chose à faire est d'utiliser Selenium pour simuler le fonctionnement d'une personne réelle. Par exemple, si vous souhaitez obtenir l'évaluation d'un produit, vous devez vous connecter et tourner la page, puis utiliser Selenium pour simuler parfaitement l'opération d'une personne réelle. En revanche, si vous voulez consulter les pages jaunes d'une entreprise en masse, Scrapy peut obtenir des dizaines de pages par seconde.
Voici un piège à éviter : il est particulièrement facile de se faire bloquer par une adresse IP lorsqu'on utilise Selenium, car les caractéristiques du navigateur sont tellement évidentes. Il est temps de s'appuyer sur l'outilProxy résidentiel dynamique pour ipipgoSi vous voulez changer votre adresse IP automatiquement à chaque visite, vous pouvez réduire la probabilité de blocage de 90%.
Posture d'utilisation de l'IP proxy
| fig. modèle | Difficultés de configuration des agents | Programme recommandé |
|---|---|---|
| Sélénium (informatique) | Moyen (pour modifier la configuration du navigateur) | Changement automatique d'API pour ipipgo |
| Ferraille | Simple (modification du fichier de configuration) | Agent tunnelier pour ipipgo |
L'ajout de proxies dans Scrapy est très simple, deux lignes dans settings.py :
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware' : 543,
}
HTTP_PROXY = "http://用户名:密码@gateway.ipipgo.com:9020"
Et Selenium doit être manipulé de cette manière (en utilisant Chrome comme exemple) :
from selenium import webdriver
proxy = "gateway.ipipgo.com:9020"
options.add_argument(f'--proxy-server=http://{proxy}')
III. le guide pour éviter les pièges du combat réel
J'ai récemment perdu la tête alors que j'aidais un client à explorer un certain site d'informations commerciales. En utilisant Scrapy pour faire une requête directe, tout ce qui était retourné était une page CAPTCHA. Plus tard, j'ai changé pour Selenium + ipipgo's.Proxy de prise d'empreinte du navigateurLe problème a été parfaitement résolu. Voici un conseil : n'oubliez pas de définir un temps d'attente aléatoire, ne laissez pas le site découvrir qu'il s'agit d'un robot.
Si vous êtes confronté à la validation des glissières, ne vous acharnez pas sur le fer à repasser. Essayez la solution d'ipipgoProxy de session fixeLe taux de réussite peut être beaucoup plus élevé si l'on conserve la même adresse IP pour effectuer l'ensemble des opérations.
IV. réponses aux questions fréquemment posées
Q : Que dois-je faire si mon adresse IP est toujours bloquée ?
R : Trois astuces : 1) Réduire la fréquence des requêtes 2) Utiliser le proxy rotatif d'ipipgo 3) Changer aléatoirement l'User-Agent
Q : Comment puis-je accéder à un site web qui nécessite une connexion ?
R : Utilisez d'abord Selenium pour simuler une connexion afin d'obtenir des cookies, puis utilisez Scrapy pour effectuer des opérations par lots. N'oubliez pas de l'associer à l'outil ipipgoIP proxy de longue duréeLe statut de connexion n'est donc pas interrompu.
V. Recommandations pour la sélection finale
Donner une formule universelle :
Volume de données <1000/jour ➜ Selenium+ipipgo Agent résidentiel
Volume de données >1000/jour ➜ Scrapy+ipipgo Data Centre Proxy
Enfin, je voudrais vous rappeler : n'essayez pas d'utiliser un proxy gratuit, la dernière fois qu'un client a été bloqué sur un segment IP, le site noircit directement le segment C entier. Avec le proxy exclusif d'ipipgo bien que plus cher, mais le taux de réussite est garanti, le calcul est en fait plus rentable.

