IPIPGO proxy ip Python lit JSON : Conseils pour l'analyse des fichiers

Python lit JSON : Conseils pour l'analyse des fichiers

Opérations de base pour le traitement des fichiers JSON en Python Lorsque nous effectuons des requêtes réseau, nous devons souvent traiter des données JSON. Par exemple, si vous utilisez la bibliothèque de requêtes pour obtenir les données d'interface d'un fournisseur de services IP proxy, le retour est essentiellement au format JSON. Par exemple, la réponse de l'API ipipgo a la structure suivante : import ...

Python lit JSON : Conseils pour l'analyse des fichiers

Opérations de base en Python pour le traitement des fichiers JSON

Lorsque nous effectuons des requêtes réseau, nous devons souvent traiter des données JSON. Par exemple, en utilisant la bibliothèque de requêtes pour obtenir les données d'interface du fournisseur de services IP proxy, le retour est essentiellement au format JSON. Par exemple, la réponse API de ipipgo est structurée comme suit :


import json

 Imaginons qu'il s'agit des données de réponse obtenues d'ipipgo
proxy_data = ''''
{
    "status" : "success",
    "data" : [
        {"ip" : "112.95.208.11", "port" : 8000}, {"ip" : "183.125.90", "port" : 8000}, [
        {"ip" : "183.32.125.90", "port" : 8080}
    ]
}
'''

 Chaîne vers dictionnaire
parsed_data = json.loads(proxy_data)
print(parsed_data['data'][0]['ip']) output 112.95.208.11

Voici un endroit où il est facile de planter une fosse :La bibliothèque json convertit par défaut les nombres en int.. Par exemple, le numéro de port 8000 sera traité comme un entier, mais certains scénarios peuvent nécessiter un format chaîne. Cette fois, une conversion de type peut être ajoutée : str(parsed_data['data'][0]['port'])

Conseils pratiques pour les scénarios de proxy IP

Lorsque vous devez gérer des IP de proxy en masse, il est recommandé d'enregistrer la liste des IP dans un fichier local. Par exemple, enregistrez les serveurs mandataires extraits par ipipgo dans le fichier proxies.json :


import json

proxy_list = [
    {"http": "http://112.95.208.11:8000"},
    {"http": "http://183.32.125.90:8080"}
]

 Écrire le fichier avec un paramètre d'indentation pour le rendre plus lisible
with open('proxies.json', 'w') as f.
    json.dump(proxy_list, f, indent=2)

Attention aux problèmes d'encodage lors de la lecture, en particulier sous Windows :


avec open('proxies.json', 'r', encoding='utf-8') as f.
    proxies = json.load(f)

Jeu avancé avec les agents de commutation dynamique

Combiné à la fonction de changement automatique d'IP d'ipipgo, vous pouvez obtenir un système de commutation intelligent. Démonstration d'un système de sondage ici :


Importation de l'aléatoire
importer des demandes

avec open('proxies.json') as f.
    ip_pool = json.load(f)

def get_random_proxy() : return random.choice(ip_pool)
    return random.choice(ip_pool)

 Requêtes avec proxy
response = requests.get(
    'https://目标网站', proxies=get_random_proxy(), proxies=get_random_proxy()
    proxies=get_random_proxy(),
    timeout=5
)

Attention ciblée :Le taux de survie d'ipipgo peut atteindre 99%, que le proxy pool auto-construit pour économiser plus.

Foire aux questions QA

Q:json.decoder.JSONDecodeError报错咋整?
R : 80% des données ont des symboles spéciaux qui ne sont pas échappés, ou l'interface de retour n'est pas JSON standard, vous pouvez utiliser print () pour sortir les données originales à vérifier, ou loads () dans le paramètre strict = False.

Q : Que dois-je faire si mon IP proxy tombe soudainement en panne ?
R : Nous vous recommandons d'utiliser le tunnel proxy dynamique d'ipipgo, qui modifie automatiquement l'adresse IP pour chaque demande. Si vous utilisez un proxy statique traditionnel, n'oubliez pas de mettre en place un mécanisme de réessai :


from retrying import retry

@retry(stop_max_attempt_number=3)
def safe_request(url).
    return requests.get(url, proxies=get_random_proxy())

Q : Comment puis-je vérifier si l'agent est en fonction ?
R : En utilisant cette interface de contrôle, vous pouvez voir l'IP de sortie actuellement utilisée :


requests.get('http://ipipgo.com/checkip', proxies=proxy).text

Conseils pour l'optimisation de l'efficacité

Lorsque vous avez affaire à des fichiers volumineux, n'utilisez pas json.load() pour les charger tous, essayez de les lire ligne par ligne :


import ijson

avec open('big_data.json') as f.
     Analyse uniquement des proxies dans le champ de données
    proxies = ijson.items(f, 'data.item')
    pour proxy dans proxies.
        print(proxy['ip'])

Si vous devez souvent lire et écrire des configurations, il est recommandé de stocker les données renvoyées par l'API d'ipipgo directement dans la base de données, ce qui est plus fiable que de manipuler des fichiers. Les avantages de la base de données sont évidents, en particulier lorsque vous devez gérer plusieurs projets en même temps.

Cet article a été initialement publié ou compilé par ipipgo.https://www.ipipgo.com/fr/ipdaili/34008.html

scénario d'entreprise

Découvrez d'autres solutions de services professionnels

💡 Cliquez sur le bouton pour plus de détails sur les services professionnels

Vente de fin d'année de nouvelles IP dynamiques 10W+ pour les États-Unis

Fournisseur professionnel de services d'IP proxy étrangers-IPIPGO

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous contacter

Nous contacter

13260757327

Demande de renseignements en ligne. QQ chat

Courriel : hai.liu@xiaoxitech.com

Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
Suivre WeChat
Suivez-nous sur WeChat

Suivez-nous sur WeChat

Haut de page
fr_FRFrançais