
Quand le crawler rencontre l'anti-crawler : votre IP est-elle correcte ?
Les personnes engagées dans le crawl de données savent que le plus difficile n'est pas d'analyser la structure de la page web, mais que l'autre site a soudainement déversé une page web.403 Interdit. La semaine dernière, un ami qui effectue des comparaisons de prix dans le domaine du commerce électronique s'est plaint que le script de son crawler avait fonctionné pendant trois jours avant d'être retiré par le site cible. C'est le moment de sacrifier le grand tueur -Rotation de l'IP du proxyLe pool d'adresses IP dynamiques d'ipipgo est la solution professionnelle à ce type de problème.
Un marionnettiste dans un nouveau costume : Relier un proxy à un navigateur
Passons directement aux choses sérieuses ! La configuration du proxy est injectée via le paramètre args lors du démarrage de Puppeteer, ici l'API ipipgo est utilisée pour obtenir le proxy tunnel dynamique. Notez comment les informations d'authentification sont gérées :
const puppeteer = require('puppeteer') ;
const { ipipgo } = require('. /ipipgo-sdk') ; // En supposant que le SDK est intégré
async function stealthCrawler() {
const proxy = await ipipgo.getProxy('tunnel') ; // obtient le proxy du tunnel
const browser = await puppeteer.launch({
args : [
`--proxy-server=${proxy.endpoint}:${proxy.port}`, ' --no-sandbox', '
'--no-sandbox'
],
headless : 'new'
}) ;
const page = await browser.newPage() ;
await page.authenticate({
username : proxy.username, password : proxy.password
password : proxy.password
password : proxy.password }).
// N'oubliez pas de fixer un délai raisonnable
await page.goto('https://target-site.com', {
timeout : 60000, waitUntil : 'networkidle2', {
waitUntil : 'networkidle2'
}) ;
// ... Traitement de la logique de la page...
}
Coup de poing ! Voici deuxpoint de division: :
| phénomène problématique | prescription |
|---|---|
| Échec de l'authentification du proxy | Utiliser page.authenticate au lieu de mots de passe dans les URL |
| Délai de chargement de la page | Prolonger le délai d'attente de manière appropriée et détecter les événements d'inactivité du réseau |
Compétences pratiques en matière d'IP dynamique : laisser le système anti-crawl douter de la vie
ipipgo's.agent de courte durée(survie de 2 à 5 minutes) est particulièrement adapté aux scénarios de demande à haute fréquence. Voici pour vous apprendre une opération sordide : dans chaque page.goto avant de changer d'IP, l'effet est comparable au changement de visage de l'opéra du Sichuan :
let retryCount = 0 ;
async function rotateProxyRequest(url) {
try {
const newProxy = await ipipgo.rotateProxy() ; // rotate IPs
const page = await createPageWithProxy(newProxy) ; }
return await page.goto(url) ; } catch (err) { { newProxy = await ipipgo.rotateProxy()
} catch (err) {
if (retryCount++ < 3) {
return rotateProxyRequest(url) ; } catch (err) { if (retryCount++ < 3) { rotateProxyRequest(url)
}
throw new Error(' ; Request failed more than 3 times' ;); ;
}
}
Conseil : n'oubliez pas d'appeler browser.close() dans le bloc catch pour libérer les ressources, sinon il est facile de provoquer une fuite de mémoire. S'il s'agit d'une tâche de longue haleine, il est recommandé de changer activement l'instance du navigateur toutes les 20 minutes.
QA First Aid Kit : Réponses rapides aux questions les plus fréquentes
Q : Que dois-je faire si mon adresse IP proxy ne se connecte pas souvent ?
R : Vérifier s'il s'agit d'un proxy persistant, en recommandant l'utilisation de la fonctionRoutage intelligentfonction de commutation automatique de la ligne optimale
Q : Que puis-je faire en cas de validation par Cloudflare ?
R : En conjonction avec le plugin puppeteer-extra-plugin-stealth, tout en s'assurant que la fréquence des requêtes par IP ne dépasse pas un seuil
Q : Que se passe-t-il si j'ai besoin d'un grand nombre d'adresses IP résidentielles ?
R : Le pool de proxy résidentiel d'ipipgo couvre plus de 200 villes, et vous pouvez obtenir l'IP de sortie d'une région spécifique en spécifiant le paramètre geo.
Guide anti-blocage : Soyez un crawler élégant
Enfin, j'aimerais partager avec vous quelques conseils qui peuvent vous sauver la vie :
1) Ne mettez pas vos œufs dans le même panier - utilisez simultanément les centres de données et les agents résidentiels
2. la fausse attention de l'agent utilisateur et l'emplacement géographique de l'IP de la correspondance (ne pas utiliser l'IP des États-Unis avec l'UA de la Chine)
3. n'utilisez pas de proxy publics pour des opérations importantes. le pool d'IP exclusif d'ipipgo est plus sûr.
4. surveiller l'état de santé de l'IP, rejeter automatiquement les nœuds défaillants
Honnêtement, au lieu de vous embêter avec des proxys gratuits, vous pouvez vous épargner des tracas en utilisant les services professionnels d'ipipgo. LeurTaux de réussite garanti des demandesrépondre en chantantSurveillance IP en temps réelIl est vrai que vous pouvez prendre beaucoup moins de tours. Récemment, j'ai vu leur site officiel faire des activités, les nouveaux utilisateurs doivent envoyer 10G de trafic, la laine n'est pas saisie, le blanc n'est pas saisi~

