
Lorsque le crawler rencontre le chargement de la tortue, comment sauvegarder l'IP du proxy ?
Les frères crawl ont dû vivre ces moments de folie : le code s'exécute, les résultats sont bloqués dans une certaine page qui n'est pas chargée. A cette époque, si le proxy IP n'est pas puissant, une minute peut faire fracasser le clavier. Aujourd'hui, nous ne faisons pas tout faux, directement sur les marchandises sèches pour dire comment utiliser Python + Selenium avec proxy IP pour jouer à l'attente intelligente.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
Configuration du proxy ipipgo (n'oubliez pas de changer pour votre propre compte)
proxy_ip = "123.123.123.123:8888"
proxy = Proxy({
'proxyType' : ProxyType.MANUAL,
'httpProxy' : proxy_ip,
'sslProxy' : proxy_ip
})
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://{}".format(proxy_ip))
Guide pratique des trois types d'attente
Ne sous-estimez pas ces trois frères, ne les utilisez pas à tort et à travers :
1. la faction qui attend la mort(time.sleep) : simple et brutal mais facile à renverser, convient à la détection de proxy. Par exemple, si le proxy d'ipipgo est en vigueur, attendez 3 secondes pour assurer la sécurité.
2. explicite et cetera(WebDriverWait) : Il est recommandé d'utiliser une rotation d'IP proxy, et de couper l'IP directement après plus de 10 secondes.
3. implicite et al.(implicitly_wait) : les novices sont enclins à marcher sur les nids de poule, à utiliser avec prudence lorsque le réseau est instable !
| Type d'attente | Scénarios applicables | Durée recommandée |
|---|---|---|
| attente obligatoire | Proxy IP Connexion initiale | 3-5 secondes |
| attente explicite | Chargement de l'élément clé | En 15 secondes. |
Smart Waiting Black Technology
Avez-vous déjà essayé d'ajuster automatiquement le temps d'attente lorsque vous changez d'IP proxy ? Par exemple, lorsque vous utilisez le proxy résidentiel dynamique d'ipipgo, vous pouvez jouer avec cela :
def smart_wait(driver, element_id).
try.
Attente initiale de 8 secondes
WebDriverWait(driver, 8).until(
EC.presence_of_element_located((By.ID, element_id))
)
sauf.
Délai d'attente pour changer automatiquement l'IP d'ipipgo
driver.proxy = get_new_ipgo_proxy()
Prolonger l'attente à 15 secondes
WebDriverWait(driver, 15).until(
EC.presence_of_element_located((By.ID, element_id))
)
Scène de renversement courante AQ
Q : Que dois-je faire si j'utilise une adresse IP proxy qui se charge plus lentement ?
R : Quatre-vingt pour cent de la qualité de l'IP n'est pas bonne, il est recommandé de changer de proxy exclusif ipipgo. Avant qu'un ami ne se rende sur un site de commerce électronique pour saisir des données, après avoir changé l'IP d'ipipgo, la vitesse de chargement a été trois fois plus rapide !
Q : Comment puis-je savoir s'il s'agit d'un problème lié à la récupération du site ou à l'adresse IP du proxy ?
R : Désactivez d'abord le proxy pour le faire fonctionner une fois, si le problème d'IP est normal. N'oubliez pas d'utiliser l'IP de facturation au volume d'ipipgo, après le test et l'achat en gros sans gaspillage !
Q : Que puis-je faire si la page reste bloquée au milieu du chargement ?
R : Essayez une combinaison ! Attente explicite + commutation automatique de l'IP du proxy, ajoutez un try-except dans le code, le timeout changera la nouvelle IP d'ipipgo et réessayera !
Une double assurance pour le code
Enfin, j'aimerais vous apprendre une astuce pour utiliser la détection d'IP proxy et la politique d'attente comme un tout :
def safe_get(url) : max_retry = 3
max_retry = 3
for _ in range(max_retry): : _ in range(max_retry).
try : driver.get(url).
driver.get(url)
Attente du contenu principal
WebDriverWait(driver, 15).until(
EC.presence_of_element_located((By.TAG_NAME, 'main'))
)
return True
sauf.
Changer automatiquement l'IP d'ipipgo
rotate_ipipgo_proxy()
raise Exception("Échec du chargement 3 fois de suite, vérifier la configuration du proxy")
Rappelez-vous qu'un bon cheval avec une bonne selle et une IP proxy stable est la racine de l'attente intelligente. Lorsque vous utilisez le service de proxy d'ipipgo, il est recommandé d'activer la fonctionContrôles de santé automatisésGrâce à cette fonction, le système éliminera automatiquement les IP instables, ce qui rendra votre stratégie d'attente vraiment efficace. Ne vous torturez plus avec ces proxies gratuits, des IP proxy fiables peuvent améliorer la précision de votre stratégie d'attente d'au moins 60% !

