
Tout d'abord, pourquoi la page web est-elle toujours bloquée ? Il faut d'abord comprendre cette fosse
Les gens qui viennent de commencer à utiliser Python pour saisir des données, neuf sur dix ont rencontré l'erreur 403. Le mois dernier, un ami d'un site web de comparaison de prix a été bloqué par une plateforme de commerce électronique pendant trois jours consécutifs avec plus de 20 IP, et il était tellement anxieux qu'il s'est levé d'un bond. C'est franchement comme si vous alliez au supermarché pour essayer de manger, que vous attrapiez le même comptoir et que vous mangiez même plus d'une douzaine de fois, le garde de sécurité ne peut pas vous chasser ?
C'est alors qu'il est temps deIP proxypour être votre "gilet furtif". Par exemple, avec le service IP rotatif d'ipipgo, chaque requête pour un "gilet" différent, l'autre serveur pour voir est un visiteur différent. Les tests ont montré que l'utilisation raisonnable de l'IP proxy permet de réduire le taux d'interception du site cible à 5%.
Deuxièmement, la main pour vous apprendre avec le proxy IP (avec un guide pour éviter le gouffre)
Installez d'abord les deux bibliothèques :
pip install requests
pip install fake_useragent
Voici ce qu'il faut savoir ! Lorsque vous utilisez l'API d'ipipgo pour obtenir une IP proxy, n'oubliez pas deMécanisme de rappel des exceptions. Regardez ce code :
import requests
from fake_useragent import UserAgent
def get_proxy().
Remplir l'adresse API fournie par ipipgo ici.
resp = requests.get("https://ipipgo.com/api/getProxy")
return {'http' : f'http://{resp.text}', 'https' : f'https://{resp.text}'}
ua = UserAgent()
headers = {'User-Agent' : ua.random}
headers = {'User-Agent' : ua.random}
resp = requests.get('Target URL',
proxies=get_proxy(), headers=headers, ua.random} try : resp = requests.
headers=headers,
timeout=8)
except Exception as e.
print(f "La {retry}ème requête a échoué, nous réessayons...")
Il convient de noter trois points essentiels :
| paramètres | correspond à l'anglais -ity, -ism, -ization | valeur recommandée |
|---|---|---|
| délai d'attente | Empêcher les blocages | 5-8 secondes |
| intervalle de demande | simuler une personne réelle | Aléatoire 1-3 secondes |
| User-Agent | Camouflage de l'équipement | Généré aléatoirement à chaque fois |
Troisièmement, le cas réel : avec ipipgo crawl des données dynamiques
J'ai récemment été confronté à une escalade anti-crawl alors que j'aidais un client à extraire des données d'une plateforme de billetterie :
1. l'IP proxy ordinaire sera bloquée après 5 demandes consécutives.
2. nécessité de gérer le chargement dynamique des pages
3. déclenchement aléatoire du Captcha
Solution :
- Passer à ipipgo.IP de qualité supérieure à longue durée de vie(survit pendant 12 heures)
- Rendu dynamique avec Selenium
- Réglage du limiteur de fréquence de la demande
Structure finale du code :
from selenium.webdriver import ChromeOptions
options = ChromeOptions()
options.add_argument(f'--proxy-server={ipipgo_proxy}')
driver = webdriver.Chrome(options=options)
Attente intelligente pour le chargement
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'price')))
IV. la Foire aux questions (FAQ) (un must pour les débutants)
Q : Que puis-je faire pour remédier à la lenteur de la vitesse IP du proxy ?
R : Il est recommandé de donner la priorité aux projets de l'ipipgo.Ligne BGPLe délai peut être contrôlé dans les 200 ms. Ne soyez pas trop gourmand et n'utilisez pas un proxy gratuit, la vitesse est lente et instable.
Q : Que dois-je faire si je rencontre un CAPTCHA ?
R : Vous pouvez appeler l'API d'ipipgo pour changer d'adresse IP avec la plateforme de codage. Il s'agit de changer activement d'adresse IP avant de déclencher le CAPTCHA.
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Ajoutez un test au code :
print(requests.get('http://httpbin.org/ip', proxies=proxy).text)
V. Techniques d'entretien à long terme (La grande méthode d'économie d'esprit)
1. vérifier chaque semaine la qualité de la réserve d'adresses IP et nettoyer en temps utile les procurations non valides
2. mettre en place une stratégie de commutation intelligente : en fonction du temps de réponse du site web cible, changer automatiquement l'adresse IP.
3) L'utilisation d'ipipgo est recommandée pour les projets importants.Paquet IP exclusifÉviter la contamination de la propriété intellectuelle publique
4. mettre régulièrement à jour la bibliothèque User-Agent, ne pas laisser le site vous reconnaître comme un crawler
Enfin, une histoire vraie : l'année dernière, une plateforme de commerce électronique a bloqué plus de 200 adresses IP, alors que les clients du service d'IP dynamique d'ipipgo fonctionnaient tous normalement. S'engager dans cette question de la saisie des données, choisir le bon outil peut vraiment faire perdre beaucoup de cheveux.

