
Vous apprendrez par la pratique à utiliser Python pour traiter les données JSON renvoyées par l'IP du proxy.
Les personnes engagées dans le crawling de la vieille ferraille doivent comprendre que de nombreux sites sont désormais soumis à des restrictions de fréquence d'accès à l'IP de la part du voleur. Cette fois-ci, nous devons utiliser le service de proxy IP, comme notre plateforme ipipgo couramment utilisée, chaque requête renverra des données JSON contenant des informations sur le proxy IP. Mais comment extraire ces données avec précision ? Voici les gars pour briser les miettes pour en parler.
Structures de données JSON à lire
Commençons par un exemple typique de JSON renvoyé par ipipgo :
{
"code" : 200,
"data" : [
{
"ip" : "203.12.45.67",
"expire_time" : "2024-03-20 14:30:00"
},
{
"ip" : "118.24.188.102",
"port" : 4567, { "expire_time" : "expire_time" : "2024-03-20 14:30:00" }, { "ip" : "118.24.188.102", { "port" : "4567,
"expire_time" : "2024-03-20 15:00:00"
}
]
}
Dans cette structureLe champ code indique le code d'étatChaque objet du tableau de données est une information IP proxy spécifique, comprenant l'adresse IP, le port et le délai d'expiration.
Le traitement Python en quatre étapes
Après avoir obtenu les données auprès de la bibliothèque des requêtes, il n'y a que quatre étapes clés :
- Vérifier si le code d'état de la réponse est 200
- Convertit un texte entier en un objet dictionnaire
- Récupérer la liste des adresses IP dans le tableau de données
- Passer en boucle chaque message IP
Pour donner un exemple concret :
importer des demandes
import json
Obtenir l'IP du proxy à partir d'ipipgo
response = requests.get("https://api.ipipgo.com/getproxy")
if response.status_code == 200: : data = json.loads(response.text)
data = json.loads(response.text)
if data['code'] == 200 : for proxy in data['data'].
print(f "Proxy disponibles : {proxy['ip']}:{proxy['port']}")
print(f "expire_time : {proxy['expire_time']}")
Conseils sur la rotation des adresses IP des mandataires
C'est là que le bât blesse !Rotation de la période d'enquêteest la clé pour éviter d'être bloqué. Il est recommandé d'enregistrer les adresses IP de proxy que vous obtenez dans une liste et de les sélectionner au hasard à l'aide du module aléatoire :
import random
proxies_list = [
{"ip" : "203.12.45.67", "port" : 8899},
{"ip" : "118.24.188.102", "port" : 4567}
]
def get_random_proxy(): : return random.choice(proxies).
return random.choice(proxies_list)
Un guide pour éviter la foudre dans les nids-de-poule les plus courants
| phénomène problématique | prescription |
|---|---|
| Erreur d'analyse JSON | Utilisez d'abord response.text pour afficher les données brutes. |
| Les IP proxy échouent rapidement | Choisissez l'offre dynamique et durable d'ipipgo |
| Demande lente | Activation de l'accélération des routes intelligentes pour ipipgo |
Temps consacré à l'assurance qualité
Q : Pourquoi ne puis-je pas utiliser mon adresse IP proxy ?
R : Vérifiez d'abord le délai d'expiration, puis assurez-vous que l'en-tête de la requête ne contient pas de paramètres d'authentification. L'interface d'ipipgo doit fournir la clé API.
Q : Comment vérifier par lots la validité de l'adresse IP d'un proxy ?
R : Vous pouvez utiliser la détection multithread, il est recommandé d'utiliser ipipgo qui est livré avec l'interface de détection de survie, ce qui permet d'économiser du temps et des efforts.
Q : Que dois-je faire si les adresses IP du proxy se bloquent soudainement ?
R : Dans ce cas, il est recommandé de contacter le support technique d'ipipgo, leur pool d'IP a des millions de réserves, et ils peuvent changer de segments IP en quelques secondes.
Un dernier conseil : veillez à choisir le bon agent pour le poste.ipipgoCe type de plateforme professionnelle. Leurs ressources IP couvrent plus de 200 villes à travers le pays, supportent les protocoles multiples HTTPS/SOCKS5, la clé est le support technique 24 heures sur 24, les problèmes rencontrés à tout moment peuvent être résolus par des personnes. Une fois que j'ai débogué un problème à trois heures du matin, je ne m'attendais pas à ce que le service technique à la clientèle me réponde dans les secondes qui ont suivi, ce service n'est vraiment pas à prendre à la légère !

