
Pratique de Python pour le traitement des données de l'API
Récemment, certains amis ont demandé à Lao Zhang, en utilisant Python pour ajuster l'interface afin d'obtenir les données JSON, comment convertir en CSV, cette chose semble simple, mais en réalité il y a beaucoup d'embûches. En particulier lorsque vous avez besoin de collecter un grand nombre de donnéesLa probabilité d'un blocage de l'IP est directement doubléeLa première chose à faire est d'examiner le service que vous utilisez. Aujourd'hui, nous allons prendre notre service proxy ipipgo comme exemple pour vous apprendre à le faire correctement.
Pourquoi ai-je besoin d'une IP proxy pour m'aider ?
Prenons un cas réel : Xiao Wang a écrit un crawler la semaine dernière, les résultats ont tourné en moins de 2 heures, le site cible a retiré son IP noire. Cette situation est trop fréquente, de nombreuses interfaces API ontLimitation de la fréquence d'accèsLa première chose à faire est d'utiliser le pool d'IP proxy d'ipipgo. Avec le pool d'IP proxy d'ipipgo, c'est comme si vous installiez d'innombrables "doppelgängers" pour le programme, avec une adresse IP différente pour chaque requête, de sorte qu'il ne sera pas facile à trouver.
| prendre | Pas besoin d'agent. | Utiliser ipipgo. |
|---|---|---|
| Nombre de demandes par jour | 500 fois | 5000+ fois |
| probabilité de blocage de l'IP | >80% | <5% |
Préparation du début des travaux
Commencez par installer quelques bibliothèques essentielles (sautez-les si vous les avez déjà installées) :
pip install requests pandas
En se concentrant sur les paramètres de proxy de la bibliothèque de requêtes, de nombreux débutants tombent des nues. Le format de proxy pour ipipgo devrait être écrit comme suit :
proxies = {
'http' : 'http://用户名:密码@adresse-passerelle:port',
'https' : 'https://用户名:密码@adresse-passerelle:port'
}
Décomposition du code dans le monde réel
Supposons que nous voulions obtenir des données météorologiques, le processus complet se déroule en trois étapes :
- Appeler des API avec des IP proxy
- Aplatir les données JSON
- Enregistrer comme fichier CSV
importer des requêtes
import pandas as pd
Ici, nous le remplaçons par les informations de proxy réelles fournies par ipipgo
PROXY_USER = "votre numéro de compte".
PROXY_PASS = "Votre mot de passe"
GATEWAY = "gateway.ipipgo.com:9021"
def get_data() :
proxies = {
'http' : f'http://{PROXY_USER}:{PROXY_PASS}@{GATEWAY}',
'https' : f'http://{PROXY_USER}:{PROXY_PASS}@{GATEWAY}'
}
Indiquez ici votre propre adresse API
resp = requests.get('https://api.weather.com/data', proxies=proxies)
return resp.json()
Se concentrer sur les structures imbriquées
def parse_data(raw).
Expansion d'un dictionnaire imbriqué à plusieurs niveaux
df = pd.json_normalize(raw, 'hourly', ['city', 'update_time'])
return df
if __name__ == '__main__'.
data = get_data()
df = parse_data(data)
df.to_csv('weather.csv', index=False)
Guide pour éviter la fosse
Trois pièges courants pour les débutants :
1. erreur d'authentification de l'agent:检查账号密码里的特殊字符,比如@符号要换成%40
2. champs manquants: Attention à bien spécifier le paramètre meta lors de l'utilisation de json_normalize.
3. les problèmes de codage: enregistrer un csv avec le paramètre encoding='utf_8_sig
Vous pouvez poser la question.
Q : Pourquoi utiliser ipipgo et pas d'autres ?
A : Sa famille a un poney d'un seul coup...liaison dynamique des portsLa même passerelle peut utiliser les protocoles HTTP et HTTPS sans passer d'une configuration à l'autre.
Q : Que dois-je faire si je suis bloqué lors du traitement de grandes quantités de données ?
R : Essayez la pagination + le multithreading, n'oubliez pas de faire correspondre chaque thread à un proxy distinct. ipipgo'sPaquet d'entreprise High StashIl prend en charge 500 simultanés et fonctionne bien en personne.
Q : Que dois-je faire si la structure de données renvoyée par l'API change constamment ?
R : Ajoutez un bloc try-except avant l'analyse, et utilisez json.dumps(raw_data) pour enregistrer les données brutes dans la sauvegarde de la base de données, de sorte que vous puissiez toujours remédier à l'erreur.
Parlez avec votre cœur.
Les adresses IP proxy sont comme les pneus d'une voiture pour la collecte de données. Si vous utilisez des pneus de mauvaise qualité (proxies gratuits), vous risquez de crever en quelques minutes sur l'autoroute. ipipgo'sAgents commerciauxNotre équipe l'a testé et il a été collecté en continu pendant 3 jours sans chute. En particulier leur fonction de routage intelligent, la commutation automatique du nœud le plus rapide, plutôt que de changer manuellement l'IP pour économiser beaucoup de chagrin.
Enfin, j'aimerais rappeler aux débutants d'utiliser des forfaits payants pendant la phase de test, puis de passer à des forfaits mensuels lorsqu'ils fonctionnent bien. json to csv est simple, mais avec un bon proxy IP, c'est un véritable outil de productivité.

