
Que faire lorsque le petit garçon à quatre pattes rencontre un réseau 404 ?
Les frères de Dried Data Crawl comprennent que la situation la plus redoutée est la suivante : le code fonctionne bien, mais soudain, il ne fonctionne pas. À ce moment-là, quatre-vingts pour cent sont déclenchés par le mécanisme anti-escalade du site cible, qui envoie directement votre adresse IP dans la petite pièce noire. Cette fois-ci, vous devez trouver un substitut pour vous aider à travailler - c'est-à-dire que nous devons harceler l'équipe d'aujourd'hui.IP proxy.
Par exemple, vous souhaitez récupérer des données JSON à distance en utilisant la bibliothèque de requêtes de Python :
demandes d'importation
url = 'https://api.example.com/data.json'
response = requests.get(url)
print(response.json())
Exécutez-la plusieurs fois et vous verrez qu'elle renvoie une erreur 403. C'est le moment d'utiliser l'IP proxy et de faire croire au serveur que c'est une autre personne qui accède au site.
La bonne façon d'ouvrir un proxy IP
C'est là que le bât blesse ! L'utilisation d'une IP proxy ne consiste pas simplement à trouver une adresse au hasard et à la remplir, c'est une question de stratégie. Voici quelques recommandationsipipgoService à domicile, leur pool IP est aussi grand qu'un marché de fruits de mer, et ils peuvent vous obtenir un nouveau gilet à chaque demande.
Le code modifié se présente comme suit :
demandes d'importation
proxies = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:9020',
'https' : 'http://用户名:密码@gateway.ipipgo.com:9020'
}
try.
response = requests.get(url, proxies=proxies, timeout=10)
response.raise_for_status()
data = response.json()
except requests.exceptions.RequestException as e: : print(f "f", "f", "f", "f", "f")
print(f "Request rollover : {str(e)}")
Notez l'utilisation deNom d'utilisateur Mot de passe Format d'authentificationBeaucoup de débutants remplissent l'adresse IP directement sans information d'authentification, et par conséquent, ils ne peuvent pas se connecter. Le format de l'adresse proxy d'ipipgo est particulièrement simple, il suffit de le copier selon leur documentation.
Un guide pratique pour éviter les pièges
Citez quelques endroits où il est facile de planter sa tête :
1. durée de survie de la période d'enquête: proxy gratuit souvent utilisé deux fois sur le hang, il est recommandé d'utiliser le proxy dynamique éphémère d'ipipgo, chaque requête est automatiquement remplacée !
2) Réglages du délai d'attenteN'oubliez pas d'ajouter le paramètre de délai d'attente, 5-10 secondes sont recommandées.
3. traitement des exceptionsLes requêtes Web ne sont pas aussi fiables que 100% et doivent faire l'objet d'une vérification appropriée.
4. analyse JSONLes données de retour ne sont parfois pas des JSON standard, il faut d'abord consulter response.text pour voir les données d'origine.
Trousse de premiers secours QA blanche
Q : Que dois-je faire si l'adresse IP de mon proxy est toujours dépassée ?
R : Vérifiez d'abord que le format de l'adresse du proxy est correct, en particulier que les symboles spéciaux du nom d'utilisateur et du mot de passe doivent être encodés dans l'URL. Si vous confirmez que le format est correct, vous pouvez contacter le service clientèle d'ipipgo pour vérifier l'état du nœud.
Q : Dois-je changer manuellement mon IP à chaque fois ?
R : Pas avec le logiciel de sondage d'ipipgo, la commutation se fait automatiquement au niveau de la passerelle, il suffit de conserver la même adresse proxy dans le code.
Q : Que dois-je faire si je rencontre une erreur de certificat SSL ?
R : Ajoutez le paramètre verify=False dans requests.get(), mais ce n'est pas très sûr. Il est conseillé de vérifier le certificat racine du système, ou d'utiliser le canal proxy HTTPS d'ipipgo.
Pourquoi ipipgo ?
Il ne s'agit pas d'une vente forcée, mais d'une expérience vécue dans le sang et les larmes. J'ai utilisé 7 ou 8 fournisseurs de services auparavant, et j'ai finalement opté pour ipipgo pour trois raisons :
1. la vitesse de réponse est suffisamment élevée, en gros dans les 200 ms
2. plus de 200 lignes urbaines dans tout le pays, ce qui est très puissant lorsque vous avez besoin d'IP dans des zones spécifiques.
3. l'arrière-plan de la gestion peut voir la consommation en temps réel, sans craindre les dépassements
4. le support technique est une vraie personne, la dernière fois que j'ai lancé un ordre de travail à deux heures au milieu de la nuit, on m'a répondu dans la seconde.
Ils ont également sorti récemment unRoutage intelligentpeut sélectionner automatiquement la ligne la plus rapide. Pour la scène qui a besoin de lire des données JSON de manière stable, il s'agit simplement de l'existence de l'ouverture. L'enregistrement d'un nouvel utilisateur envoie également du trafic 5G, ce qui est suffisant pour le tester.
La solution ultime
Une solution complète pour les reachers :
from requests.adapters import HTTPAdapter
session = requests.Session()
session.mount('http://', HTTPAdapter(max_retries=3))
session.mount('https://', HTTPAdapter(max_retries=3))
def fetch_json(url) :
proxies = ipipgo.get_proxy() Appeler l'API d'ipipgo pour obtenir les derniers proxies.
try.
response = session.get(url, proxies=proxies, timeout=(3, 7))
return response.json()
except JSONDecodeError : print("JSONDecodeError", "JSONDecodeError").
print("Les données retournées ne sont pas au format JSON.")
return None
Cette solution ajoute trois assurances : la relance de la connexion, l'acquisition automatique d'une nouvelle adresse IP et la capture des exceptions. En utilisant l'API d'ipipgo, vous pouvez obtenir directement la dernière adresse proxy disponible, ce qui est beaucoup moins gênant que de maintenir votre propre pool d'IP.
Enfin, pour être honnête, les IP proxy valent chaque centime. Si le projet est important, n'économisez pas sur le budget. Après tout, la perte de temps d'arrêt due au blocage du serveur peut être beaucoup plus coûteuse que les frais de proxy.

