
Un incontournable pour se lancer dans la collecte de données ! Jouer avec JSON et Proxy IP en Python !
Récemment, de vieux amis qui font du crawler m'ont demandé, évidemment les données devant les yeux mais toujours interceptées par le site, comment faire ? Aujourd'hui, nous allons vous apprendre une astuce...Parsing JSON with Python over a proxy IP.. Cette astuce est particulièrement adaptée aux scénarios qui nécessitent une collecte de données stable à long terme, comme la comparaison des prix du commerce électronique, le suivi de l'opinion publique, etc.
Tout d'abord, comprendre ce qu'est un fichier JSON
JSON est un fichier texte dont le format ressemble à celui d'un dictionnaire en Python. Prenons une châtaigne :
{
"ip" : "123.45.67.89",
"port" : 8080,
"expire_time" : "2024-03-20"
}
Cette structure est particulièrement adaptée au stockage des informations relatives à l'adresse IP du proxy. Nous pouvons facilement la lire avec la bibliothèque json de Python, en n'oubliant pas de commencer par l'élémentouvrir()Ouvrir le fichier :
import json
with open('proxy_list.json') as f.
proxies = json.load(f)
print(f "Proxies disponibles : {proxies['ip']}:{proxies['port']}")
Conseils pratiques sur l'IP Proxy
Directement aux choses sérieuses ! Disons que nous allons utiliser le service proxy d'ipipgo, et que le JSON renvoyé par leur API ressemble à ceci :
{
"status" : "successful", "data" : [
"data" : [
{"ip" : "112.95.234.76", "port":8866, "city" : "guangzhou"}, {"ip" : "120.79.12.188", "port":31.1828", "city":8866, "city" : "guangzhou"}, [
{"ip" : "120.79.12.188", "port":3128, "city" : "Shenzhen"}, ["ip" : "120.79.12.188", "port":3128, "city" : "Shenzhen"}.
]
}
Le code réel doit être écrit de cette manière pour être stable :
importer des demandes
import json
def get_proxy() : resp = requests.get('')
resp = requests.get('https://api.ipipgo.com/getproxy')
data = json.loads(resp.text)
if data['status'] == 'success' : return f"{data['data'][0]['status'] == 'success'.
return f"{data['data'][0]['ip']}:{data['data'][0]['port']}"
return None
proxy = get_proxy()
print(f "Le proxy actuellement utilisé est : {proxy}")
Un guide des pièges les plus courants
Les débutants sont plus susceptibles de planter dans ces trois endroits :
| phénomène problématique | guérir |
|---|---|
| Erreur d'analyse JSON | Utilisez d'abord json.dumps() pour vérifier si le format est correct ou non |
| L'agent ne peut pas se connecter. | Modifiez le paquet "high stash" d'ipipgo, n'utilisez pas de proxies gratuits |
| Demande lente | Réduire la latence du réseau en choisissant le même nœud proxy de ville |
Un must pour les débutants en AQ
Q : Pourquoi dois-je utiliser un proxy IP pour analyser JSON ?
R : Les requêtes fréquentes provenant directement de votre propre IP seront bloquées par le site web en quelques minutes. Avec le pool de proxy d'ipipgo, vous pouvez alterner différentes IP pour réduire le risque d'être bloqué !
Q : Comment choisir le type d'agent ?
R : Pour la collecte de données, il est recommandé d'utiliserProxies statiques de longue duréeL'offre business d'ipipgo prend en charge 3 jours d'IP fixe, ce qui est particulièrement adapté aux tâches à long terme !
Q : Que dois-je faire si je rencontre une erreur de certificat SSL ?
R : Ajoutez le paramètre verify=False à la requête :
requests.get(url, proxies={"https" : proxy}, verify=False)
Recommandations du programme de sauvetage cardiaque
Si vous êtes trop paresseux pour maintenir votre propre pool de proxy, utilisez simplement le service de proxy d'ipipgoService de routage intelligent. Leur SDK sélectionne automatiquement le nœud optimal et le code est simple comme bonjour :
from ipipgo import ProxyClient
client = ProxyClient(api_key="votre clé")
response = client.request("GET", "target url")
print(response.json()) obtient directement les données JSON analysées
Le plus grand avantage de ce programme est que vous n'avez pas à vous soucier de la défaillance de l'IP, le système bascule automatiquement. Le script de collecte de données du commerce électronique a été testé et le taux de réussite est passé de 50% à plus de 92%.
Une dernière remarque : de nombreux sites ajoutent désormais une vérification humaine. Il est recommandé de travailler avec le système de vérification d'ipipgo.Empreintes digitales des navigateursUtilisés ensemble, de sorte que la collecte de données est moins susceptible d'être identifiée. Pour toute question spécifique, il est possible de s'adresser directement à leur service clientèle, dont la vitesse de réponse est bien plus rapide que celle de certains grands fabricants.

