
Python jouer JSON données ensembles essentiels
S'engager dans la capture de données réseau du vieux fer a dû marcher sur une telle fosse - le site cible vous donne soudainement une interdiction d'IP. C'est le moment de sortir notre "killer app" !Service Proxy IPLa première chose à faire est d'utiliser le module Python json pour traiter les données renvoyées. Aujourd'hui, nous prenons ipipgo home service comme marronnier et nous vous apprenons à utiliser le module json de Python pour traiter élégamment les données renvoyées par l'API.
import json
importer des requêtes
Ici, n'oubliez pas de remplacer la clé ipipgo par la vôtre.
proxy = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:9020', 'https' : 'http://用户名:密码@gateway.ipipgo.com:9020'
'https' : 'https://用户名:密码@gateway.ipipgo.com:9020'
}
resp = requests.get('https://api.example.com/data', proxies=proxy)
data = json.loads(resp.text)
Proxy IP : la vraie bataille pour éviter le manuel de la fosse
De nombreux débutants sont enclins àCertification des agentsLe format de l'adresse proxy d'ipipgo est fixe et doit être strictement respecté.Nom d'utilisateur:Mot de passe@Passerelle Adresse:PortLe format est rempli. Voici un tableau de concordance des erreurs les plus courantes :
| symptomatique | méthode régler un problème |
|---|---|
| 407 Erreur d'authentification de l'agent | La vérification des caractères spéciaux dans les mots de passe nécessite l'encodage de l'URL |
| Délai de connexion | Essayez de changer les différents nœuds de la salle des serveurs d'ipipgo |
| Retour de données brouillées | Ajouter le paramètre Accept-Encoding aux en-têtes des requêtes. |
Techniques de traitement des données JSON
Ne vous précipitez pas pour traiter les données dès que vous les recevez, utilisez d'abord la fonctionjson.dumps()Faites un bon formatage :
Les données brutes peuvent être écrasées en une masse
print(json.dumps(data, indent=2, ensure_ascii=False))
Si vous rencontrez un timestamp bizarre, vous pouvez le convertir comme suit
from datetime import datetime
timestamp = data['create_time']
print(datetime.fromtimestamp(timestamp))
Kit de premiers secours pour les problèmes liés aux hautes fréquences
Q : Pourquoi la vitesse de requête est-elle plus lente avec le proxy ipipgo ?
R : 80% n'est pas une connexion persistante ouverte, dans la configuration de la session, le paramètre keep-alive peut améliorer la vitesse de 30%.
Q:Comment traiter les nullités dans les données JSON renvoyées ?
R : Le module json sera automatiquement converti en None, il est plus sûr d'utiliser la méthode get() pour obtenir la valeur :
data.get('prix', 0)
Les caractéristiques cachées d'ipipgo révélées
Ils ont une famille.Routage intelligentL'art noir de sélectionner automatiquement le nœud le plus rapide en ajoutant un en-tête au code :
headers = {
'X-Proxy-Mode' : 'smart', 'Authorisation' : 'Bearer your_token', 'Authorization' : 'Bearer your_token'
'Authorization' : 'Bearer your_token'
}
Cette fonction est testée en cas de besoin deAcquisition d'une grande quantité de donnéesIl est d'autant plus puissant qu'il est beaucoup plus stable que le mode d'interrogation normal. Récemment, l'enregistrement d'un nouvel utilisateur a également permis d'envoyer un paquet de trafic 10G.
Un dernier conseil : lorsque vous avez affaire à des données JSON profondément imbriquées, essayez l'optionjsonpath-ngCette bibliothèque est beaucoup plus rafraîchissante que l'écriture d'un tas de boucles for. Lorsque vous rencontrez des problèmes qui ne peuvent être résolus, allez directement au système de commande de travail d'ipipgo pour trouver le gars technique, ils sont en ligne à 2 heures du matin, connu comme le gardien de nuit de la communauté des programmeurs.

