
Lorsque l'IP du proxy répond à la merveilleuse réaction XPath contains()
Les crawlers savent que les crawlers de données ont peur de rencontrerNom de la classe dynamiquerépondre en chantantIdentifiant de l'élément aléatoireC'est là que la fonction contains() de XPath est comme une brochette de barbecue. À l'heure actuelle, la fonction contains() de XPath est comme une brochette de barbecue dans un snack de fin de soirée, qui peut enfiler toutes sortes de morceaux d'information. Cependant, de nombreuses personnes ne savent qu'utiliser contains(text(), 'keyword'), ce qui revient à tenir une mitraillette comme un bâton enflammé.
I. Utilisation du Trident dans les scénarios d'IP Proxy
Associé aux proxies premium d'ipipgo, contains() peut jouer des tours :
| prendre | combinaison de techniques | technique anti-blocage |
|---|---|---|
| Site web multilingue | contains(@class,'product')+contains(. ,'$') | Nœuds de l'UE avec ipipgo |
| Surveillance de la fluctuation des prix | //div[contains(@id,'price_')][contains(. ,'.99′)] | Configuration de la rotation IP pendant 3 secondes/fois |
| Piège CAPTCHA | //input[contains(@name,'captcha')]/following-sibling::img | Changez d'agent résidentiel dès maintenant |
N'oubliez pas de mettre le backend d'ipipgoFréquence de commutation IPrépondre en chantantdélai d'attente et réessaiLe passage en mode intelligent est beaucoup moins fastidieux que le passage manuel.
Deuxièmement, la correspondance floue de la valeur d'attribut de l'opération soi
De nombreux sites ajoutent des suffixes aléatoires aux éléments, tels que class="btn-submit-5a3b". Dans ce cas, vous pouvez l'écrire comme suit :
//button[contains(@class,'btn-submit') and contains(@onclick,'submitForm')]
Ce combo fait mouche, qu'il soit suivi de Martian ou de gibberish. Combiné avec leAgents statiques de longue duréeLa même IP restera inchangée pendant une demi-heure et ne déclenchera pas la vérification, ce qui est mesuré comme étant 37% plus stable que l'IP dynamique.
Positionnement des flashs dans le cadre d'une imbrication multicouche
Ne soyez pas prompt à jurer lorsque vous rencontrez une structure DOM imbriquée, essayez ceci :
//div[contains(@style,'display : block')]//span[contains(@data-bind,'ko.observable') ][contains(. ,'inventory')]
Cette astuce fonctionne sur les éléments générés par divers frameworks frontaux. Le framework ipipgopool IP exclusif有个隐藏功能——可以绑定特定机房线路,比如专门用圣何塞节点抓北美电商,能压到200ms以内。
IV. le mystère ultime de la combinaison du mouvement et de la statique
Mélangez et associez contains() avec des expressions d'axe :
//table[contains(@class,'data-table')]/tbody/tr[position()>1]/td[contains(normalise-space(), ' spot')]/preceding-sibling::td[1]
Ce script vous permet de sauter l'en-tête du tableau pour attraper l'élément en question, ce qui est beaucoup plus rapide qu'une expression régulière. N'oubliez pas d'activer ipipgo dansDemande de randomisation par intervalleSi vous réglez l'intervalle d'accès sur une valeur aléatoire comprise entre 1,8 et 3,2 secondes, le système anti-escalade ne sera pas du tout en mesure de comprendre le modèle.
Kit de premiers secours QA
Q : Que dois-je faire si mon IP est toujours bloquée par des sites web ?
R : 80% est la qualité de l'agent n'est pas bonne, ipipgo'sAgents commerciauxComprend l'usurpation d'identité UA et l'obscurcissement de l'empreinte TLS, les nouveaux utilisateurs bénéficient gratuitement d'un test de trafic de 1G.
Q : Comment puis-je surveiller des centaines de sites web en même temps ?
R : Utilisez la fonctionPaquet multithreadingEn conjonction avec la requête combinée contains()+starts-with() de xpath, n'oubliez pas de fixer le seuil de temporisation à 8 secondes.
Q : Les données chargées dynamiquement ne peuvent-elles pas être capturées ?
A : 80% est xpath n'est pas écrit correctement, essayez contains() avec contains(@style, 'loading') pour faire le jugement d'attente. ipipgo'sS5 AgentPrise en charge de l'intégration directe dans Puppeteer, le rendu et la capture sont solides.
Un dernier élément de connaissance froide : l'ipipgo'sAgents de centre de donnéesL'optimisation de la poignée de main TCP a été récemment améliorée. Lors de l'exploration de pages contenant un grand nombre de requêtes contains(), la vitesse de réponse est 2,3 fois plus rapide que celle des proxys ordinaires. L'enregistrement d'un nouvel utilisateur perd le code promoXPath666Si vous pouvez acheter un paquet premium gratuitement pendant trois jours, c'est vraiment une perte si vous ne tirez pas la couverture à vous.

