
Apprentissage pratique de l'utilisation de Selenium + proxy IP pour capturer des pages web dynamiques
Les personnes qui s'occupent de l'exploration du web savent que de plus en plus de sites commencent à utiliser JavaScript pour charger le contenu de manière dynamique. Il y a quelques jours, j'ai aidé un ami à récupérer les données de prix d'une plateforme de commerce électronique, avec des requêtes ordinaires la bibliothèque ne peut tout simplement pas obtenir les données complètes, cette fois je me suis souvenu de sortir de Selenium ce tueur.
Pourquoi les pages web dynamiques sont-elles difficiles à utiliser ?
Aujourd'hui, de nombreux sites ressemblent à des poupées russes gigognes, la requête initiale ne donne qu'une page coquille vide, le contenu réel devant attendre la fin de l'exécution JS pour être chargé. Pour donner un exemple, les informations sur le prix d'une certaine page détaillée de marchandises doivent attendre 3 secondes avant d'être chargées par l'interface, cette fois le crawler traditionnel est stupide.
C'est le moment d'utiliser un outil de navigation qui peut simuler le fonctionnement d'une personne réelle, comme Selenium, mais le problème est que de nombreux sites sont particulièrement sensibles à l'accès automatisé, à l'exploitation fréquente des minutes de blocage d'IP.
Comment les IP mandataires sauvent-ils des vies ?
C'est là qu'il intervient.IP proxyCette arme magique. Le principe est très simple : chaque requête pour une adresse IP différente, de sorte que le site pense qu'il s'agit d'un utilisateur différent à visiter. Mais attention au choix du type de proxy :
| Type d'agent | Degré d'anonymat | Scénarios applicables |
|---|---|---|
| Agent transparent | le plus bas | Il est pratiquement inutile. |
| Agent anonyme | modéré | anti-scellement général |
| Agents à forte valeur ajoutée | suprême | option recommandée |
C'est indispensable.Proxy dédié à High Stash d'ipipgoLeur pool d'IP est mis à jour rapidement, et je l'ai testé pendant 24 heures de collecte continue sans déclencher de bannissement. En particulier, leur fonction d'authentification dynamique, plutôt que la méthode traditionnelle du nom d'utilisateur et du mot de passe, est trop pratique.
Selenium Configuration Proxy Practice
Prenons l'exemple de Chrome, le code clé s'écrit comme suit (n'oubliez pas d'installer d'abord chromedriver) :
from selenium import webdriver
proxy = "http://user:pass@gateway.ipipgo.com:9020" adresse proxy fournie par ipipgo
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
Empêche d'être reconnu comme un outil d'automatisation
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://目标网站.com")
A noter quelques arrêts au stand :
1. dans l'adresse du proxynuméro de portNe vous trompez pas, les ports peuvent être différents d'un paquet à l'autre.
2) Il est proposé d'ajouterDésactivation des fonctions d'automatisationspécifications
3. il est préférable de rendre aléatoire le temps entre les opérations plutôt que de le faire ressembler à un robot.
Foire aux questions QA
Q : J'ai manifestement utilisé une adresse IP proxy, mais j'ai quand même été bloqué.
R : Vérifiez si vous utilisez une grande quantité de proxies, les proxies transparents laissent filtrer l'IP réelle. Nous vous recommandons d'utiliser les proxies de niveau entreprise d'ipipgo, avec une fonction de rotation automatique de l'IP.
Q : Que dois-je faire si Selenium démarre particulièrement lentement ?
R : Essayez le mode sans tête avec ces deux lignes :
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
Q:Comment résoudre le problème des sites web qui demandent un CAPTCHA ?
A : Un contrôle raisonnable de la fréquence de collecte, la qualité ipipgo IP est bonne si le code de vérification n'est pas déclenché. Les personnes réellement rencontrées peuvent accéder à la plateforme de codage, mais le coût augmente.
Conseils d'entretien
Si vous réalisez un projet de collecte à long terme, il est recommandé d'obtenir uneMécanisme de contrôle de l'état de santé de l'IP. Ma méthode est de visiter https://ip.ipipgo.com/checkip toutes les demi-heures et d'alerter immédiatement s'il renvoie autre chose qu'une adresse IP de proxy.
Enfin, n'écrivez pas d'adresse proxy morte dans votre code ! L'API d'ipipgo permet d'obtenir les derniers proxy en temps réel sur la base d'un volume, de sorte que même si une certaine IP est bloquée, elle peut être changée automatiquement.
J'ai récemment découvert que certains sites web détectent les empreintes digitales des navigateurs, qui peuvent être modifiées de manière aléatoire à chaque démarrageUser-AgentL'effet de camouflage est directement tiré plein de, et puis avec ipipgo proxy mobile IP. La plupart du temps, il y a des questions spécifiques qui sont les bienvenues pour taquiner ~ !

