
Pratique du traitement des chaînes JSON par le proxy IP
Récemment, beaucoup de partenaires de collecte de données ont demandé, avec le proxy IP toujours coincé dans le traitement des données JSON cette off. Aujourd'hui, nous allons expliquer comment utiliser le service proxy d'ipipgo, facile à traiter avec une variété de chaînes JSON de l'opération sordide.
Tout d'abord, l'adresse IP dans le JSON à jouer de cette façon
Prenons un scénario réel : le robot d'exploration reçoit des données qui ressemblent à ceci
{
"ip" : "192.168.1.1",
"port" : "8080",
"expiry" : "2024-12-31"
}
À ce stade, utilisez l'API ipipgo pour remplacer directement le champ IP :
import requests
from ipipgo import get_proxy C'est le but !
proxy = get_proxy() Récupère automatiquement les dernières adresses IP du proxy.
data['ip'] = proxy['ip']
data['port'] = proxy['port']
prendre noteL'API d'ipipgo renvoie le format JSON standard, vous n'avez donc pas besoin de l'analyser vous-même !
Deuxièmement, ne paniquez pas lorsque vous rencontrez un format étrange
Certains sites indiquent l'IP et le port comme suit"proxy" : "1.1.1.1:8888"Je vais t'apprendre un truc :
Génération automatique de formats standards avec le client ipipgo
from ipipgo import format_proxy
bad_format = "1.1.1.1:8888"
clean_proxy = format_proxy(bad_format) return {'ip':'1.1.1.1', 'port':'8888'}
Troisièmement, l'adresse IP dynamique doit être modifiée de la manière suivante
Souvenez-vous de cette combinaison d'or lorsque vous devez changer fréquemment d'agent :
import random
import json
def refresh_proxy().
proxies = ipipgo.get_batch(10) obtient 10 IP à la fois
return random.choice(proxiles) Choisit aléatoirement une IP à utiliser
while True : current_proxy = refresh_proxy
current_proxy = refresh_proxy()
Insérez le proxy dans les en-têtes de votre requête JSON
headers = {'X-Proxy' : json.dumps(current_proxy)}
Quatrièmement, éviter le guide des fosses (blanc incontournable)
Sites de renversement courants :
1. le numéro de port devient une chaîne de caractères ("8080″ au lieu de 8080)
2. champ IP avec des espaces supplémentaires ("192.168.1.1")
3. le manque d'uniformité dans la présentation des dates de péremption
Utilisez cette fonction de nettoyage universelle
def clean_proxy_data(raw_json): :
try.
raw_json['port'] = int(raw_json['port'].strip())
raw_json['ip'] = raw_json['ip'].strip()
Convertir automatiquement le format de l'heure
raw_json['expiry'] = pd.to_datetime(raw_json['expiry']).strftime('%Y-%m-%d')
sauf.
return ipipgo.get_fresh_proxy() Problèmes directement liés aux nouvelles adresses IP
Temps consacré à l'assurance qualité
Q:Que dois-je faire si je rencontre toujours des erreurs d'analyse JSON ?
R : Commencez par découvrir l'offre d'ipipgo !valider_proxyPré-test de l'interface avant l'introduction du code d'entreprise
Q : Que se passe-t-il si je dois gérer plusieurs pools d'adresses IP en même temps ?
R : Utiliser leurDynamic Residential (Enterprise Edition)Package, prise en charge du traitement simultané multicanal, plus de 9 yuans de trafic 1G, suffisant pour exécuter des projets de petite et moyenne taille.
Q : Il fonctionnait bien dans la version bêta, mais il s'est planté en ligne ?
R : N'oubliez pas d'ajouter à l'en-tête de la requête JSON l'élément"X-Proxy-Source" : "ipipgo"La possibilité de déclencher des optimisations spéciales côté serveur
Comment choisir l'offre la plus avantageuse
| Type d'entreprise | Paquets recommandés | coût mensuel |
|---|---|---|
| test personnel | Dynamique résidentielle (standard) | ≈ $15 |
| Capture d'entreprise | Dynamic Residential (Entreprise) | ≈200 |
| Besoins fixes à long terme | Maisons statiques | 35RMB/IP |
Un dernier secret : enfouir le JSON dans le fichier"retry":3l'API d'ipipgo vous donnera automatiquement 3 tentatives, ce qui n'est même pas écrit dans la documentation officielle !

