
Apprenez à accrocher l'IP proxy au crawler !
Lorsque nous faisons de la capture de données, le casse-tête le plus fréquent est d'être l'IP bloquée du site cible, cette fois vous devez donner au crawler un "gilet" - c'est-à-dire l'IP proxy. Aujourd'hui nous prenons le crawler Python le plus commun comme exemple, nous vous apprenons comment donner au programme un gilet.
Étape 1 : Obtenir une IP proxy fiable
recommandéipipgoL'IP résidentielle dynamique de la famille est assez rentable, à plus de 7 dollars pour 1 Go de trafic. Leur pool d'IP résidentielles est large, plus de 200 pays dans le monde sont porteurs de ressources, la probabilité d'être bloqué est beaucoup plus faible. Je vais me concentrer sur la manière d'obtenir une IP :
demandes d'importation
Obtenir le proxy à partir de l'API d'ipipgo
api_url = "https://api.ipipgo.com/getproxy"
params = {
"type" : "dynamic",
"count" : 5,
"protocol" : "http"
}
response = requests.get(api_url, params=params)
proxies = response.json()['data']
Ce code peut prendre 5 IP résidentielles dynamiques à la fois, notez que lorsque vous l'utilisez, vous devez le remplacer par votre propre clé API. Leur client personnel peut également exporter la liste de proxy directement, ce qui est plus convivial pour les débutants.
Étape 2 : connexion d'un proxy à la bibliothèque de requêtes
En supposant qu'une adresse IP de proxy ait été obtenue, la manière la plus courante de la configurer est la suivante :
session = requests.Session()
proxy = "http://用户名:密码@ip address:port"
try.
response = session.get('destination URL', proxies={'http' : proxy}, timeout=10)
print(response.text)
except Exception as e.
print(f "Cette IP ne fonctionne pas bien, passez à la suivante : {str(e)}")
Notez que vous devez remplir iciNom d'utilisateur et mot de passe(ipipgo peut être généré en arrière-plan), n'utilisez pas directement l'IP nue. En cas de dépassement de délai ou d'erreur 403, changez rapidement d'IP, ne mourez pas.
Conseils sur la rotation des adresses IP des mandataires
L'utilisation d'une seule IP est facile à trouver, vous devez apprendre à jouer à la guérilla. Voici un schéma de rotation simple :
from itertools import cycle
proxy_pool = cycle(proxies) Insérez la liste des proxies que vous avez obtenus.
for page in range(1, 100) : current_proxy = next(proxy_pool)
current_proxy = next(proxy_pool)
essayer.
res = requests.get(url, proxies={'http' : current_proxy})
Traitement des données...
except.
print(f "Skip failed proxy : {current_proxy}")
Il est recommandé de changer activement d'adresse IP toutes les 3 à 5 requêtes réussies, plutôt que d'attendre qu'elles soient bloquées.
Scène de renversement courante AQ
Q : Pourquoi reste-t-il bloqué même après avoir raccroché le proxy ?
R : Deux possibilités : 1. le site cible a détecté une anomalie dans l'en-tête HTTP 2. la qualité de l'IP du proxy n'est pas bonne. Il est recommandé d'ajouter un User-Agent aléatoire dans le code, et en même temps de changer l'adresse IP d'ipipgo pour l'adresse suivanteIP résidentielle statique(Plus cher mais plus stable)
Q : L'adresse IP du proxy indique un succès mais ne peut pas recevoir de données ?
R : 80 % des cas sont dus au fait que le serveur proxy n'a pas ouvert la liste blanche. Allez à l'arrière-plan d'ipipgo pour ajouter l'IP locale à la liste blanche, ou utilisez l'adresse IP de votre famille.Mode direct du clientCelle-ci est la moins problématique.
Q : Dois-je changer d'agent pour les différents sites ?
R : Si les sites web nationaux sont dotés d'une adresse IP locale, il est recommandé aux sites web étrangers d'utiliser l'adresse IP d'ipipgo.ligne spécialisée transfrontalièreJe ne suis pas sûr de pouvoir le faire. Si vous utilisez Google crawler, n'oubliez pas de choisir leur offre dédiée TK.
Guide de sélection des paquets
Choisissez un forfait en fonction des besoins de votre entreprise (les prix sont susceptibles d'être modifiés et sont basés sur le site web officiel) :
| Type d'entreprise | Paquets recommandés | coût journalier moyen |
|---|---|---|
| l'acquisition de données | Dynamique résidentielle (standard) | Environ 0,25 $/GB |
| Enregistrement du compte | Maisons statiques | Environ 1,16 $/IP |
| Crawlers d'outre-mer | ligne spécialisée transfrontalière | Contacter le service clientèle pour un devis |
Enfin, utilisez une adresse IP proxy pour vous conformer à l'accord sur les robots du site web. Si vous êtes confronté à des stratégies anti-escalade complexes, vous pouvez directement demander à l'assistance technique d'ipipgo de personnaliser le programme ; elle peut établir différentes combinaisons d'adresses IP en fonction de l'activité spécifique, ce qui est bien mieux que son propre système de pliage à l'aveugle.

