
Pourquoi les crawlers de Puppeteer sont-ils toujours bloqués ?
Lorsque de nombreux frères utilisent Puppeteer pour saisir des données, ils rencontrent souvent le problème suivant403 Refus d'accèsouBombe CAPTCHA. Le mois dernier, j'ai aidé un client à attraper le prix du commerce électronique, juste courir une demi-heure IP a été retiré. Plus tard, on a découvert que c'était le site web cible qui avait identifié le crawler grâce à trois caractéristiques : la fréquence des requêtes, l'empreinte digitale de l'appareil et, la plus dommageable de toutes, l'empreinte digitale de l'appareil.Visites répétées d'IP fixes.
La bonne façon d'ouvrir un proxy IP
Voici un conseil pour les hommes : utilisez la fonctionRotation du pool de proxy résidentiel IP. Par exemple, avec l'IP résidentielle dynamique d'ipipgo, chaque visite change automatiquement l'adresse de sortie. Le test réel d'une plateforme de commerce électronique pendant 3 jours d'affilée pour attraper le contrôle du vent ne s'est pas déclenché, le code clé est long comme ceci :
const puppeteer = require('puppeteer') ;
const ipipgo = {
host : 'gateway.ipipgo.net',
auth : 'username:password' // n'oubliez pas de changer pour votre propre clé
} ;
(async () => {
const browser = await puppeteer.launch({
args : [`--proxy-server=http://${ipipgo.host}:${ipipgo.port}`]
}) ;
//... Opérations suivantes
})() ;
Éviter l'opération sordide de la détection des empreintes digitales
Il ne suffit pas de changer d'adresse IP, il faut apprendreSe faire passer pour une personne réelle. Voici une combinaison de compétences pratiques à partager :
| élément de test | programme de fissures |
|---|---|
| Empreintes digitales des navigateurs | Utilisation du plugin puppeteer-extra-plugin-stealth |
| piste de la souris | Imiter la courbe de mouvement humaine |
| durée du regard | Délai aléatoire + page défilante |
Suggérer d'ajouter des temps d'attente aléatoires au code, ne pas ouvrir la page en quelques secondes comme un robot :
function humanDelay() {
return Math.random() 2000 + 1000 ; // 1-3 secondes d'attente aléatoire
}
await page.waitForTimeout(humanDelay()) ;
Le temps de l'assurance qualité : les pièges que vous avez pu rencontrer
Q : Que dois-je faire si l'adresse IP de mon proxy est souvent dépassée ?
A : Préférence pour les ipipgo'sIP résidentielle statique de longue duréeLeurs lignes supportent de longues connexions et leur stabilité mesurée est 40% plus élevée que celle des IP dynamiques ordinaires.
Q : Comment puis-je savoir si une adresse IP est exposée ?
A : Ajoutez un lien de détection dans le code, visitez https://httpbin.org/ip, si l'IP renvoyée ne correspond pas à celle attendue, changez immédiatement le proxy.
Q : Que se passe-t-il si j'ai besoin d'une forte concurrence ?
R : Utilisez la fonctionPaquet multithreadingLors du déploiement du cluster, veillez à contrôler le nombre de requêtes par seconde afin qu'il ne dépasse pas le seuil de résistance du site cible.
Conseils pour la mise en service : voir, c'est croire
Il est recommandé d'ajouter aux paramètres de démarrageDébogage visuel en mode sans têtePour plus d'informations, voir le comportement du crawler :
const browser = await puppeteer.launch({
headless : false, //voir l'écran de fonctionnement actuel
slowMo : 50, //ralentir l'opération
args : [`--proxy-server=http://${ipipgo.host}:${ipipgo.port}`]
}) ;
Enfin, nous vous rappelons qu'il faut choisir le service de l'agent pour reconnaître l'importance de l'aide de l'Union européenne.L'ipipgo prend en charge la commutation automatique et le mécanisme de réessai en cas d'échec.Le fournisseur de services. La dernière fois que j'ai utilisé leur fonction de basculement automatique, le taux de réussite du crawl est passé directement de 67% à 92%, c'est tellement parfumé !

