
Pratique de l'insertion d'adresses IP de proxy dans des scripts Python
Le service de proxy IP ipipgo a été bloqué, c'est pourquoi nous allons vous apprendre à utiliser le service de proxy IP ipipgo directement à l'API. Tout d'abord, il faut comprendre leur interface pour renvoyer les données JSON longues :
{
"code" : 0,
"data" : [
{"ip" : "112.95.82.33", "port" : 8000, "expire_time" : "2024-03-20 12:00:00"},
{"ip" : "183.6.102.156", "port" : 8080, "expire_time" : "2024-03-20 12:30:00" }
]
}
Vous voyez ?code=0Succès, les données sont remplies d'IPs de proxy qui fonctionnent. Nous devons utiliser la librairie requests pour récupérer les données d'interface, n'oubliez pas de remplacer your_api_key par la clé donnée par le backend ipipgo.
Comment décompresser des données JSON avec un minimum d'effort
Ne vous précipitez pas pour utiliser les données dès que vous les recevez, vous devez d'abord les inspecter. De nombreux débutants plantés dansPas de vérification du code d'état.Cette fosse. Regardez ce code :
importer des demandes
import json
resp = requests.get('https://api.ipipgo.com/proxy?key=your_api_key')
if resp.status_code == 200 : result = json.loads(resp.text)
result = json.loads(resp.text)
si result['code'] == 0.
proxies = [f"{item['ip']}:{item['port']}" for item in result['data']]
print("Caught valid IPs :", proxies)
else : {item['port']}" for item in result['data']]
print("Erreur d'interface : ", result.get('msg'))
else : print("Erreur d'interface : ", result.get('msg'))
print("Requête réseau passée en revue, code d'état :", resp.status_code)
C'est là que le bât blesse :Vérifiez d'abord le code d'état HTTP, puis le code d'état commercial.Double assurance. L'IP d'ipipgo est généralement valable pendant 30 minutes, n'oubliez pas de la changer à temps.
Comment les adresses IP des serveurs mandataires sont transmises aux robots d'indexation
Voici une opération peu reluisante : le regroupement dynamique de serveurs mandataires (proxy pooling). Enregistrez les IP de proxy que vous obtenez dans une liste et recyclez-les, ce qui est beaucoup plus stable qu'une IP unique :
from itertools import cycle
def get_proxy_pool(): :
Ceci appelle l'API ipipgo.
return proxies
proxy_pool = cycle(get_proxy_pool())
Voici comment l'obtenir lorsque vous l'utilisez
current_proxy = next(proxy_pool)
requests.get(url, proxies={"http" : current_proxy, "https" : current_proxy})
Le taux de survie IP d'ipipgo peut atteindre 95% ou plus, ce qui est plus fiable que les proxies gratuits.
Lignes directrices en matière de premiers secours pour les situations de renversement les plus courantes
Q : Que dois-je faire si je continue à obtenir des erreurs SSL ?
R : Quatre-vingt pour cent sont le protocole proxy n'est pas apparié, les liens https doivent utiliser le proxy https, ne pas confondre le type de protocole. Vérifiez les paramètres du protocole dans l'arrière-plan ipipgo.
Q:Returned JSON parsing failed ?
A : 80% est un problème de codage, essayez resp.content.decode('utf-8') hard decoding. L'interface d'ipipgo renvoie des données standard UTF-8.
Q : Ne puis-je pas utiliser l'IP proxy alors que je viens de l'obtenir ?
R : Vérifier la prévention des incendies sur le réseau local, ou changer le nœud de la salle de serveurs d'ipipgo. La salle de serveurs de Jiangsu est particulièrement adaptée aux lignes domestiques.
Pourquoi recommandez-vous ipipgo ?
Comparons les principaux fournisseurs de services sur le marché :
| Fonctionnalité | ipipgo | autres familles |
|---|---|---|
| réactivité | Dans les 800 ms | 1,5s ou plus |
| Taux de survie des IP | 95%+ | 70% ou environ |
| méthode de facturation | en volume | limite mensuelle de trafic |
L'essentiel est que leur logement offreLe seul outil de contrôle de la qualité de la propriété intellectuelle dans le paysLa fonction d'obtention d'une IP proxy pour tester et ensuite utiliser permet vraiment de gagner du temps. Maintenant, l'enregistrement envoie également un paquet de trafic 10G, suffisant pour tester.
Enfin, lorsque vous travaillez avec des données JSON, n'oubliez pas d'utiliser l'attributjson.dumps()Le formatage de la sortie permet d'économiser beaucoup d'argent lors du débogage. Ajoutez quelques blocs try-except à votre code et vous aurez un script qui survivra à tous les autres.

