
Une prise de vue réelle pour vous apprendre à utiliser Selenium pour capturer des pages web dynamiques.
Les frères engagés dans le crawling web comprennent, maintenant plein de chargement dynamique du site. Vous voulez juste utiliser un crawler normal pour obtenir les données, les résultats du contenu de la page sont tous générés par JS, cette fois nous devrions sacrifier notre outil d'automatisation - Selenium. mais seulement utiliser l'automatisation du navigateur n'est pas suffisant, vous devez correspondre avec l'outil d'automatisation.IP proxyC'est une bouée de sauvetage, sinon votre IP sera bloquée par le site web en quelques minutes.
Les trois principaux maux de tête des pages web dynamiques
Voici un tableau qui vous permettra de comparer les crawlers normaux à Selenium :
| Type de problème | chenillard ordinaire | Programme sur le sélénium |
|---|---|---|
| Chargement asynchrone du contenu | Directement dans la rue. | résolution parfaite |
| Login CAPTCHA | lit. avoir les mains liées et ne pouvoir rien y faire | intervention humaine |
| mécanisme anti-escalade | Immédiatement bloqué | Coopérer avec l'agent qui peut transporter |
La bonne façon d'ouvrir un proxy IP
C'est là que le bât blesse ! Utiliser Selenium sans proxy revient à courir nu sur le champ de bataille. Nous recommandons ici notre propreService proxy ipipgoLe secret de leur famille est un pool d'IP dynamique, particulièrement adapté aux scénarios de commutation fréquents. La configuration est également simple, pour citer un marronnier :
from selenium import webdriver
proxy = "123.123.123.123:8888" adresse proxy fournie par ipipgo
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server=http://{proxy}')
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://目标网站.com")
Notez l'utilisation deprotocole httpNe soyez pas stupide et utilisez socks5 comme proxy, et si vous rencontrez des problèmes avec vos informations d'identification, n'oubliez pas d'ajouter l'option--ignore-certificate-errorsParamètres.
Conseils pratiques anti-blocage
Il ne suffit pas de faire appel à un agent, il faut être stratégique. Ici, on apprend aux gars trois trucs :
- Sélection aléatoire de l'IP à chaque démarrage du navigateur (ipipgo supporte l'API pour l'obtenir dynamiquement)
- Fixez des temps d'attente variables pour les intervalles d'opération, ne soyez pas à l'heure comme un robot !
- Pour une utilisation en mode headless, n'oubliez pas de modifier la propriété webdriver
Donnez un exemple de code avancé :
import random
import time
from ipipgo_client import get_proxy En supposant qu'il s'agit du SDK pour ipipgo.
def smart_crawler() : proxy = get_proxy()
proxy = get_proxy() Récupère automatiquement le dernier proxy.
options = webdriver.ChromeOptions()
options.add_argument(f'--proxy-server={proxy}')
options.add_argument('--headless=new')
driver = webdriver.Chrome(options=options)
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get : () => undefined})")
Faire glisser la page de manière aléatoire
scroll_times = random.randint(2,5)
for _ in range(scroll_times) : driver.execute_script()
driver.execute_script("window.scrollBy(0, 500)")
driver.execute_script("window.scrollBy(0, 500)") time.sleep(random.uniform(0.5, 2.5))
Foire aux questions QA
Q : Que dois-je faire si le proxy ne fonctionne pas lorsque je l'utilise ?
R : Il est recommandé d'utiliser la solution de proxy résidentiel dynamique d'ipipgo, dont la réserve d'adresses IP est suffisamment importante et dont le mécanisme de commutation automatique est fiable.
Q : Que dois-je faire si Selenium est toujours reconnu par les sites web ?
R : Essayez de modifier les paramètres d'empreinte du navigateur, par exemple en désactivant l'attribut WebDriver ou en utilisant l'IP mobile d'ipipgo avec l'en-tête UA du téléphone.
Q : Comment puis-je interrompre la vitesse de collecte trop lente ?
R : Avec le proxy à grande vitesse exclusif d'ipipgo, couplé au fonctionnement parallèle multi-instances de Selenium, la vitesse peut être doublée !
Guide pour éviter la fosse
Enfin, un petit rappel pour les débutants : n'essayez pas de faire des économies avec des agents gratuits, neuf sur dix ne sont pas fiables. En particulier pour la collecte automatisée, un service proxy stable et fiable est comme l'essence de la voiture, avec ipipgo de tels fournisseurs de services professionnels, bien que dépenser un peu d'argent, mais économiser du temps et de l'énergie est absolument rentable. En outre, n'oubliez pas de mettre en place un mécanisme de réessai en cas de dépassement du délai, afin de changer immédiatement d'adresse IP, ce qui est la pratique de l'ancien conducteur.

