
Les mains dans les poches du marionnettiste Hitch Pas de blocage
Les amis qui s'adonnent à l'exploration de données ont dû constater récemment que de nombreux sites sont désormais dotés d'une défense anti-reptile particulièrement stricte. La semaine dernière, mon collègue Wang a écrit un script avec Node.js, les résultats ont fonctionné moins d'une demi-journée IP a été bloqué à mort. Cette fois, nous devons sortir de notreGroupe SauveurLe marionnettiste + l'IP proxy, surtout avec le pool d'IP dynamiques d'ipipgo, testé pour résister à une collecte de haute intensité.
Pourquoi ne pas jouer à Heartbeat avec une IP nue ?
Aujourd'hui, le site apprend bien, il expose directement la véritable propriété intellectuelle pour s'engager dans la collecte, sans gilet pare-balles sur le champ de bataille. Pour vous montrer un cas réel :
const puppeteer = require('puppeteer') ;
async function nakedCrawler() {
const browser = await puppeteer.launch() ; const page = await browser.newPage() ; async function nakedCrawler() {
const page = await browser.newPage() ;
// Ici, nous nous rendons directement sur le site web cible
await page.goto('https://target-site.com/products') ;
// Essayer 10 visites consécutives
for(let i=0 ; i<10 ; i++){
await page.reload() ; // Essayer 10 visites consécutives.
console.log(`${i+1} visit successful`) ; }
}
await browser.close() ;
}
// Résultat : IP bloqué lors de la 5ème visite.
Placez une cape d'invisibilité sur Marionnettiste.
C'est là que le service proxy d'ipipgo entre en jeu. Leur pool d'adresses IP dynamiques présente trois avantages :
| Fonctionnalité | effet |
|---|---|
| Changement automatique d'IP | Changement automatique d'adresse IP toutes les 5 minutes |
| mode de dissimulation | Cacher complètement l'IP réel |
| échouer et réessayer | Commutation automatique des adresses IP non valides |
Le code modifié se présente comme suit :
const puppeteer = require('puppeteer') ; // fait semblant d'avoir ce SDK.
const ipipgo = require('ipipgo-sdk') ; // fait semblant d'avoir ce SDK.
async function stealthCrawler() {
const proxy = await ipipgo.getProxy() ; // récupère le dernier proxy
const browser = await puppeteer.launch({
args : [`--proxy-server=${proxy.ip}:${proxy.port}`]
}) ;
const page = await browser.newPage() ;
await page.authenticate({
username : proxy.username, password : proxy.password
password : proxy.password
password : proxy.password }).
// C'est ici que l'on peut commencer à récolter en toute confiance
await page.goto('https://target-site.com/products', {
timeout : 60000, waitUntil : 'networkidle2', {
waitUntil : 'networkidle2'
}) ;
// Changement automatique d'IP toutes les 3 acquisitions
for(let i=0 ; i<10 ; i++){
if(i % 3 === 0) {
await ipipgo.rotateProxy() ; // changer d'IP
}
await page.reload() ; console.log
console.log(`${i+1}th capture successful`) ; }
}
await browser.close() ;
}
// Résultat : 10 captures réalisées avec succès
Guide pratique pour éviter la fosse
J'ai récemment été confronté à un écueil en aidant une entreprise de commerce électronique à surveiller les prix :
- reconnaissance des empreintes digitalesN'oubliez pas de définir le userAgent pour qu'il change de manière aléatoire.
- Raid CAPTCHALes IP résidentielles d'ipipgo peuvent réduire efficacement la probabilité de déclenchement.
- Délai de connexionLe délai d'attente : Définir une valeur raisonnable pour le délai d'attente (30-60 secondes recommandées)
Foire aux questions QA
Q : Que dois-je faire si j'utilise un proxy et que je suis toujours bloqué ?
A:Check whether the IP is pure, we recommend using ipipgo's exclusive IP package, each IP is only for a customer to use !
Q : Que puis-je faire contre le ralentissement de la collecte ?
R : ipipgo dispose d'une ligne spéciale à haut débit, n'oubliez pas de passer en "mode extrême" sur la console.
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Ajoutez un lien de détection au code :
const checkIP = await page.evaluate(() => {
return fetch('https://api.ipipgo.com/checkip').then(res => res.json()) ;
}) ;
console.log('Currently using IP:', checkIP.ip) ;
Dites quelque chose qui vient du cœur.
L'année dernière, alors que notre équipe effectuait une analyse concurrentielle, nous avons été bloqués pour plus de 20 adresses IP d'affilée. Nous avons ensuite opté pour les services d'ipipgo.Paquet de rotation dynamiqueLa première fois que j'ai vu cela, j'ai pu obtenir les informations dont j'avais besoin, et j'ai pu obtenir les informations dont j'avais besoin pour obtenir les informations dont j'avais besoin pour obtenir les informations dont j'avais besoin. Rappel spécial aux amis novices : agent libre de regarder l'encens, l'utilisation réelle de toutes les fosses, les choses professionnelles ou avoir à remettre à ipipgo tels fournisseurs de services vétérans.

