
Une approche pratique de l'insertion d'adresses IP de proxy dans les poches de pantalon Python
Les vieux conducteurs de Crawler le savent, la bibliothèque Requests est comme la clé pour ouvrir l'excavateur, mais sans le support de l'IP proxy, les minutes par la sécurité du site (mécanisme anti-crawling) sont prises. Aujourd'hui, nous allons parler de la façon de mettre l'IP proxy d'ipipgo dans les poches de pantalon Python.
demandes d'importation
La bonne façon d'ouvrir un proxy IP
proxies = {
"http" : "http://user:password@gateway.ipipgo.com:9020",
"https" : "http://user:password@gateway.ipipgo.com:9020"
}
response = requests.get("https://目标网站", proxies=proxies)
A suivre.Nom d'utilisateur et mot de passeVous devez modifier les informations d'authentification que vous avez obtenues d'ipipgo, et ne pas copier le numéro de port, car chaque paquet donne un canal différent. C'est ce qui m'est arrivé la dernière fois, en copiant le port dans le document, et je me suis retrouvé aveugle pendant une demi-heure.
L'enroulement des chaussettes5 proxy
Il existe des scénarios particuliers où vous devez utiliser le protocole socks5, et cette fois vous devez installer un petit moteur pour Requests. Tout d'abord, installez les bibliothèques dépendantes :
pip install requests[socks]
Les poses de configuration sont légèrement différentes :
proxies = {
'http' : 'socks5://user:password@gateway.ipipgo.com:9021',
'https' : 'socks5://user:password@gateway.ipipgo.com:9021'
}
Voici un piège, le port socks d'ipipgo et le port http sont distincts, ne vous y trompez pas. J'ai déjà utilisé 9020 et 9021 dans l'autre sens et le programme s'est bloqué comme un tracteur.
Tactiques de guérilla avec des adresses IP dynamiques
Si vous utilisez un proxy résidentiel dynamique, n'oubliez pas d'ajouter un fichiercommutation stochastiquede l'organe :
import random
def get_random_proxy() :
proxy_list = [
"http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020", "http://user:password@gateway2.ipipgo.com:9020
"http://user:password@gateway3.ipipgo.com:9020"
]
return {'http' : random.choice(proxy_list), 'https' : random.choice(proxy_list)}
response = requests.get(url, proxies=get_random_proxy())
Ainsi, à chaque demande de changement d'armure, le système anti-escalade ne vous reconnaîtra pas. Mais attention, le paquet dynamique d'ipipgo est basé sur le flux de facturation, il ne faut pas déraper et écrire une boucle morte pour utiliser le paquet par-dessus.
Kit de premiers secours QA
Q : Que dois-je faire si je ne peux pas me connecter à l'agent ?
R : vérifiez d'abord la suite de trois pièces : ① le mot de passe du compte n'est pas erroné ② le numéro de port sur le protocole correspondant ③ le réseau local est autorisé à sortir.
Q : Qu'en est-il d'un rythme d'escargot ?
R : Essayez de couper la ligne TK, ou changez l'IP résidentielle statique. Parfois, le nœud régional n'est pas sélectionné correctement, ce qui peut entraîner un blocage, par exemple si vous escaladez le site asiatique et que vous ne choisissez pas le nœud européen.
Q : Que se passe-t-il si j'ai besoin de faire fonctionner plusieurs robots en même temps ?
R : Sur le package statique exclusif d'ipipgo, chaque crawler se voit attribuer une IP indépendante afin d'éviter les batailles de pools d'IP.
guide de sélection des paquets de l'ipipgo
| Type d'emballage | Scénarios applicables | prix |
|---|---|---|
| Dynamique résidentielle (standard) | Collecte quotidienne de données | 7,67/GB/mois |
| Dynamic Residential (Entreprise) | Exigences en matière de visites fréquentes | 9,47 RMB/GB/mois |
| Maisons statiques | Opérations fixes à long terme | 35/IP/mois |
Il est conseillé aux débutants de s'entraîner d'abord avec la Dynamic Standard Edition, puis de passer à l'Enterprise Edition en cas de besoin. LeurExtraction de l'APICela peut être utile, j'ai écrit un script qui renouvelle automatiquement les IP et cela fonctionne très bien avec crontab.
La dernière phrase qui dérange, c'est qu'en cas de scénarios complexes, ils s'adressent directement au service clientèle dans le cadre d'un programme 1v1, plutôt que d'utiliser leur propre système de pliage pour gagner du temps. La dernière fois qu'il y a eu un besoin de collecte transfrontalière, ils ont donné la ligne transfrontalière directement pour économiser les coûts de trafic 30%.

