
Des exercices pratiques vous apprennent à extraire des trésors des données IP des serveurs mandataires.
Les vieux briscards de la collecte de données devraient comprendre que les données JSON renvoyées par le proxy IP sont comme le déballage d'un courrier, l'essentiel étant de savoir comment ouvrir la boîte correctement. Aujourd'hui, nous utiliserons les données renvoyées par l'API d'ipipgo comme exemple, afin d'enseigner à tout le monde quelques principes de base.ultra-pratiquedes techniques de manipulation des dictionnaires.
Version de base : une seule couche de données dans une seule main
Supposons que nous obtenions des données de réponse comme celles-ci de la part d'ipipgo :
{
"proxy_list" : [
{ "ip" : "202.123.45.6", "port" : 8866, "expire_time" : "2024-03-20"}, { "ip" : "203.88.102.33", "port" : 5432, "expire_time" : "2024-03-21"}, }
{"ip" : "203.88.102.33", "port" : 5432, "expire_time" : "2024-03-21"}
]
}
Pour obtenir le numéro de port du premier proxy, un débutant pourrait écrire ceci :
port = data['proxy_list'][0]['port']
Mais les conducteurs plus âgés ajoutent un pare-chocs :
port = data.get('proxy_list', [{}])[0].get('port', 8080)
C'est une bonne défense.Erreur de clérépondre en chantantErreur d'indexDeux grosses failles qui fonctionnent particulièrement bien lorsqu'il s'agit de pools d'agents changeant dynamiquement.
Jeu avancé : Technique de désassemblage multicouche imbriqué
Vous avez trouvé ces données proxy avec des informations géographiques :
{
"node" : {
"location" : {
"city_code" : "SH",
"isp" : "telecom"
},
"ip_address": "203.88.102.33:8866"
}
}
dépense ou fraisenchaîné obtenirLe plus régulier :
city = data.get('node', {}).get('location', {}).get('city_code')
C'est beaucoup plus rafraîchissant que d'écrire des jugements couche par couche, surtout lorsqu'il s'agit de proxies géolocalisés comme ipipgo, qui permet de localiser rapidement les ressources dans une région spécifique.
Conseils sur la gestion des noms de clés dynamiques
Lorsque vous rencontrez une situation où vous n'êtes pas sûr du nom du champ, par exemple :
{
"proxy_2024" : {
"daily_quota" : 5000
}
}
Il est possible d'utilisertraversée du dictionnairepour trouver la cible :
for key in data : if key.startswith('proxy')
if key.startswith('proxy'): : if key.startswith('proxy').
print(f "Quota restant aujourd'hui : {data[key]['daily_quota']}")
Cela fonctionne bien lorsqu'il s'agit de différentes versions des réponses de l'API, en particulier pour des services comme ipipgo qui mettent régulièrement à jour leurs interfaces.
AQ pratique Triple frappe
Q:Que dois-je faire si j'obtiens toujours une erreur lors de l'extraction des données ?
R : 80% ne gère pas les exceptions, il est recommandé d'utiliser try-except pour envelopper l'opération de récupération, ou d'utiliser .get() avec la valeur par défaut.
Q : Que dois-je faire si la liste des adresses IP du proxy change fréquemment ?
R : L'API d'ipipgo renvoie à chaque fois le dernier agent disponible. Il est recommandé d'utiliser un parcours en boucle plutôt qu'un index fixe, par exemple :
for proxy in data.get('proxy_list', []) :
print(f"{proxy['ip']}:{proxy['port']}")
Q:Que dois-je faire si je veux obtenir plus d'un champ à la fois ?
R : Il est plus facile de déballer avec un dictionnaire :
{ip : port for item in data['proxy_list'] for ip, port in item.items()}
Guide pour éviter la fosse
1) Faites attention à la conversion du fuseau horaire lorsque vous utilisez le champ de l'heure, les données d'ipipgo utilisent l'heure UTC par défaut.
2) Veillez à la casse des noms de champs, tels queexpireTimerépondre en chantantheure_d'expirationNe vous méprenez pas.
3) Lorsque vous utilisez json.dumps() pour assurer la persistance des données, n'oubliez pas de définir l'attributensure_ascii=Falseanti-spam
Enfin, notre service ipipgo est spécialisé dans la résolution de divers problèmes de propriété intellectuelle dans le cadre de la collecte de données. L'inscription des nouveaux utilisateurs est gratuite !Pack trafic 5GBLa prise en charge du format de données pour une variété de sorties, avec l'enseignement d'aujourd'hui de ces compétences, pour s'assurer que vous jouez les données IP de proxy aussi simple que de boire de l'eau !

