
Comment fonctionne réellement la fonction contains() de XPath ?
Les confrères engagés dans la collecte de données doivent comprendre que le positionnement des éléments d'une page web est comme une aiguille dans une botte de foin. À l'heure actuelle, la fonction XPath contains () est votre aimant, en particulier lorsque les caractéristiques de l'élément ne sont pas évidentes. Par exemple, pour trouver une page contenant tous les "prix" de la balise div, il faut écrire directement//div[contains(text(), 'price')]Le système d'évaluation de la qualité de l'eau est beaucoup plus souple que l'évaluation du texte intégral.
//[contains(@class,'btn_submit')] //retrouve les éléments qui contiennent le style du bouton de soumission
//a[contains(@href,'product_detail')] //retrouve le lien vers la page détaillée du produit
Comment les IP proxy et XPath fonctionnent-ils ensemble ?
De nombreux sites Web sont dotés d'un mécanisme anti-escalade de voleur, mais la même adresse IP est fréquemment visitée, ce qui a pour effet de la noircir. À l'heure actuelle, nous devonsProxy résidentiel dynamique pour ipipgoDès le départ, leur pool d'adresses IP est mis à jour avec plus de 8 000 nœuds par jour. Supposons que vous souhaitiez collecter des données sur les prix d'un site de commerce électronique :
Importation de requêtes
from lxml import etree
proxies = {
'http' : 'http://user:pass@gateway.ipipgo.com:9021'
}
resp = requests.get('https://xxx.com', proxies=proxies)
html = etree.HTML(resp.text)
prices = html.xpath('//span[contains(@class, "price")]')
Guide pratique pour éviter la fosse
J'ai déjà rencontré cet écueil : un site web qui cache le prix dans la page d'accueil.données-prixDans les propriétés, le texte de surface indique "¥ ??". dans l'attribut, le texte de surface indique "¥ ? A ce stade, utiliser simplement text() pour le localiser serait un échec, et vous devriez l'écrire de cette façon :
//div[@id='goods']/@data-price // extraire directement les valeurs des attributs
Avec l'aide d'ipipgoStratégie de rotation intelligenteL'entreprise a mis en place un changement automatique d'IP toutes les 5 minutes, et le taux de réussite de la collecte est passé directement de 50% à 95%. Elle peut également voir l'état d'utilisation de chaque IP en arrière-plan, ce qui est vraiment sans souci.
Je suis sûr que vous vous posez la question.
Q : La fonction contains() est-elle sensible à la casse ?
R : points ! Pour trouver "PRICE", vous devez écrire "PRICE". Nous vous conseillons d'utiliser d'abord la fonction translate() pour la convertir en minuscules !
Q : Comment interrompre un contenu chargé dynamiquement ?
R : Utiliser la première méthode d'ipipgoAgents à forte valeur ajoutéeContournez le backcrawl, et avec un outil comme Selenium, attendez que l'élément ait fini de se charger avant de le saisir.
Q : L'ipipgo survit-il suffisamment longtemps ?
R : Le test réel d'une seule adresse IP peut durer de 10 à 30 minutes ; une collecte régulière est tout à fait suffisante. S'il s'agit d'une tâche à long terme, il est recommandé d'ouvrir l'API pour extraire automatiquement de nouvelles adresses IP.
Pourquoi ipipgo ?
Après avoir comparé plusieurs fournisseurs de proxy, ipipgo présente trois avantages majeurs :
| Fonctionnalité | Agent général | ipipgo |
|---|---|---|
| Type IP | Salle des serveurs basée sur IP | IP résidentielle réelle |
| concurrence | 50 fils | illimité |
| localisation géographique | Villes fixes | Sélection de l'emplacement de la station de base à la demande |
La semaine dernière, j'ai aidé un client à faire une capture de comparaison et j'ai utilisé leurIP local de Shanghai访问目标网站,居然比普通代理快3倍。后来才知道他们和三大运营商有通道,这波属实专业。
Le combo ultime
Enfin, je partagerai un plan de configuration privé :
- Créé dans la console ipipgosession persistanteagir au nom de qqn. dans une position de responsabilité
- XPath s'écrit
//[contains(@id,'result_')]Correspondance de l'identifiant dynamique - Réessayer 3 fois en cas d'échec de la configuration + commutation automatique de l'IP
Cet ensemble de combinaisons a permis de mesurer la collecte moyenne quotidienne de 100 000 données sans brouillage. En particulier pour ceux qui font du commerce électronique transfrontalier, qui utilisent leur téléphone portable et qui ont besoin d'une connexion Internet.IP natif d'outre-merCombiné avec le positionnement XPath, c'est un moyen solide d'attraper les données des concurrents.

