
Que faire si votre crawler est bloqué ? Essayez cette astuce d'analyse
Que craignez-vous le plus lorsque vous collectez des données ? Récemment, j'ai aidé un ami à traiter une affaire ! Récemment, j'ai aidé un ami à traiter un cas, leur équipe a utilisé Python pour faire une analyse concurrentielle, le résultat a été 3 jours consécutifs par le site cible bloqué plus de 20 IP. Cette chose en fait, avec un proxy IP peut être résolu, la clé est d'être en mesure de traiter les données JSON renvoyées par le fournisseur de services.
Apprendre à analyser les données IP d'un proxy
Aujourd'hui, les principaux fournisseurs de services proxy utilisent le format JSON pour renvoyer les informations relatives à l'adresse IP. Supposons que nous obtenions ce type de données de l'API ipipgo :
{
"proxy_list" : [
{
"ip" : "203.34.56.78",
"port" : 8866,
"protocol" : "socks5", "expire_time" : 00:00, "expire_time" : 00:00
"expire_time" : "2024-08-01 12:00:00"
},
//... Plus de données IP
]
}
Concentrez-vous sur ces paramètres :
| champ | instructions |
|---|---|
| ip | adresse du serveur proxy |
| port | numéro du port de connexion |
| protocole | Type de contrat d'agence |
| heure_d'expiration | Délai d'expiration de l'IP |
Code pratique : faire en sorte que l'IP proxy l'utilise vraiment
Utilisons la bibliothèque de requêtes de Python pour démontrer comment changer de proxy de manière dynamique. Veillez à gérer la possibilité deJSONDecodeErrorException :
import json
importer des requêtes
def get_proxy(): :
try : resp = requests.get('')
resp = requests.get('https://api.ipipgo.com/get_proxy')
data = json.loads(resp.text)
current_proxy = data['proxy_list'][0]
return f"{current_proxy['protocol']}://{current_proxy['ip']}:{current_proxy['port']}"
except json.JSONDecodeError :
print("Parsing JSON jerked off, check the API return format !")
Exemple d'utilisation
proxy = get_proxy()
try : response = requests.get('')
response = requests.get('https://目标网站.com',
proxies={'http' : proxy, 'https' : proxy}, timeout=10)
timeout=10)
print(response.status_code)
except ConnectionError.
print("Cette IP est peut-être hors service, essayez-en une autre ?")
Éviter trois nids-de-poule courants
C'est là que les nouveaux venus ont tendance à tomber à la renverse :
- Je n'ai pas vérifié la date d'expiration de l'IP et j'ai été soudainement déconnecté pendant que je l'utilisais.
- Mauvais type de protocole (par exemple, site https avec proxy socks5)
- Les appels fréquents à l'API entraînent des dépassements de la limite de retrait
Pourquoi recommandez-vous ipipgo ?
Quelques bons conseils d'un prestataire de services que j'ai utilisé dans ma propre maison :
- soutienIP résidentielle dynamiqueJe ne sais pas si c'est suffisant pour une petite équipe, mais c'est plus de 7 $ pour 1G de trafic.
- Le client est livré avec la fonction de changement d'IP automatique, sans qu'il soit nécessaire d'écrire votre propre tâche de temporisation.
- Vous pouvez passer à la ligne TK si vous avez des problèmes avec le CAPTCHA (c'est rare ailleurs).
| Type d'emballage | Scénarios applicables | prix |
|---|---|---|
| Dynamique résidentielle (standard) | Collecte quotidienne de données | 7,67 $/GB |
| Dynamic Residential (Entreprise) | Exigences en matière de visites fréquentes | 9,47 Yuan/GB |
| Maisons statiques | Opérations fixes à long terme | 35RMB/IP |
Dépannage de l'AQ
Q : Que dois-je faire s'il n'y a pas de champ port dans le JSON renvoyé ?
R : quatre-vingt pour cent de l'utilisation du mode de connexion directe de leur client, cette fois pour regarder directement le document avec le port par défaut.
Q : Je ne peux pas me connecter à l'adresse IP du proxy bien qu'elle soit valide ?
R : vérifiez d'abord le type de protocole, les sites web https doivent utiliser https ou le proxy socks5.
Q : Comment vérifier la disponibilité d'une IP en masse ?
R : Utilisez le module concurrent.futures pour ouvrir plusieurs threads et tester la vitesse de connexion de plusieurs IP en même temps.
Enfin, ne vous contentez pas de regarder le prix lorsque vous choisissez un service proxy. Les services comme ipipgo peuvent fournirProgramme personnalisé 1v1S'ils peuvent répondre rapidement à des besoins particuliers, l'argent vaut la peine d'être dépensé. La dernière fois qu'ils ont confié à un client du commerce électronique le programme de rotation de la propriété intellectuelle, l'efficacité de la collecte a été multipliée par plus de trois, c'est dire la valeur des services professionnels.

