
Apprentissage pratique de l'analyse XML par Python lors de l'accrochage d'un proxy
Récemment, beaucoup de frères de collecte de données ont demandé, avec Python parsing XML est toujours le site cible bloqué IP. Cette chose que j'ai fait l'année dernière lorsque le système de comparaison des prix du commerce électronique a également rencontré, puis utilisé un moyen stupide - tous les 200 fois pour analyser une nouvelle IP. plus tard trouvé que avec le service proxy de ipipipgo directement peut être résolu, aujourd'hui ! Aujourd'hui, je vais partager mon expérience pratique avec vous.
Importation de requêtes
from lxml import etree
proxies = {
'http' : 'http://用户名:密码@proxy.ipipgo.cc:9020', 'https' : 'http://用户名:密码@proxy.ipipgo.cc:9020'
'https' : 'http://用户名:密码@proxy.ipipgo.cc:9020'
}
response = requests.get('target site', proxies=proxies)
xml_data = etree.fromstring(response.content)
surveiller attentivementDictionnaire des proxysLe write-up, utilisé ici, est la méthode de vérification de compte fournie par ipipgo. L'adresse de leur serveur proxy a un nom de domaine .cc, à ne pas confondre avec ces marchands peu fiables. J'ai testé, avec cette configuration, un fonctionnement continu pendant 8 heures sans code de vérification.
Trois utilisations géniales de l'IP Proxy dans l'analyse XML
1. empêcher le blocageL'année dernière, lorsque j'ai escaladé un site web de voitures, j'ai utilisé une seule IP pour analyser les données XML du devis, et il a été bloqué en 10 minutes. Plus tard, j'ai accroché le proxy rotatif d'ipipgo et coupé 3 IP par seconde, et j'ai pu survivre à toute la saison de promotion.
2. positionnement géographiqueLes données XML de certains sites web affichent un contenu différent selon la région. Par exemple, le prix d'un produit analysé par la PI de Shanghai peut être 50 RMB moins cher que celui affiché par la PI de Chengdu.
3. Dépasser la limite de fréquencePar exemple, l'interface d'information sur les sièges d'un site web de vente de billets ne peut être résolue que 50 fois par heure par une seule IP. L'utilisation d'un pool de serveurs mandataires peut multiplier cette limite par un facteur N.
Compétences pratiques : programme de réglage de la propriété intellectuelle par procuration
| prendre | Configurations recommandées | paquet ipipgo |
|---|---|---|
| Mini-missions de collecte | Agents à courte durée de vie + changement aléatoire | Édition Expérience (5 $/jour) |
| Suivi des données à long terme | Agents résidentiels statiques | Édition personnalisée pour les entreprises |
| exigences élevées en matière de concurrence | Centre de données dynamique IP | Paquet phare |
C'est là que le bât blesse.Gestion des exceptions pour l'IP dynamiqueAjouter un mécanisme de reconnexion au proxy dans le bloc try-except. J'ai eu un projet pour lequel j'ai écrit cela et le taux d'échec de l'analyse est passé de 12% à 0,7%.
essayer.
Code d'analyse XML
except etree.XMLSyntaxError :
requests.get('http://ip.ipipgo.cc/release_ip?key=你的密钥')
Libérer immédiatement le problème actuel IP
Foire aux questions Q&R
Q : Que dois-je faire si mon IP proxy tombe soudainement en panne ?
R : Il est recommandé d'ajouter la détection des battements de cœur dans le code et d'envoyer un ping à l'interface de vérification d'ipipgo toutes les 5 minutes. Ils ont des alertes de trafic restant dans leur retour API, ce qui facilite le renouvellement à l'avance.
Q : Vous rencontrez des interfaces XML qui nécessitent la validation d'un certificat ?
R : Dans les requêtes, ajoutez le paramètre verify=False, et n'oubliez pas d'ouvrir la prise en charge du proxy HTTPS en arrière-plan. L'année dernière, les données sur les taux de change des banques ont grimpé pour ce faire.
Q : La vitesse du proxy affecte-t-elle l'efficacité de la résolution ?
R : Choisissez l'agent de ligne BGP ipipgo, le délai mesuré peut être contrôlé dans les 200 ms. La dernière fois que j'ai utilisé un agent américain pour analyser un site web national, un XML a attendu 6 secondes !
Enfin, je voudrais vous rappeler qu'il faut changer l'agent utilisateur analysé en XML de manière aléatoire et l'utiliser avec l'adresse IP du proxy pour obtenir un meilleur effet. Une fois, j'ai oublié de changer l'agent utilisateur, bien que l'adresse IP ait été réduite à 30, mais le comportement du crawler a quand même été identifié. Maintenant, j'utilise le proxy d'empreinte de navigateur d'ipipgo, et je n'ai plus eu ce problème.

