
Les failles de proxy que vous devez connaître pour faire du crawling Node.js
Récemment, j'ai aidé un ami à créer un site web de comparaison de prix, et lorsque j'ai utilisé Node.js pour capturer les données, j'ai toujours été banni.Jeu d'IP proxyLa première chose à faire est d'obtenir un grand nombre d'informations sur l'entreprise. Par exemple, une certaine capture continue d'une plate-forme de commerce électronique, moins d'une demi-heure, a été bloquée, puis a changé l'agent résidentiel dynamique d'ipipgo, avec effet immédiat.
const axios = require('axios') ;
const tunnel = require('tunnel') ;
const agent = tunnel.httpsOverHttp({
proxy : {
host : 'gw.ipipgo.com',
port : 9021,
proxyAuth : 'Votre compte:mot de passe'
}
}) ;
axios.get('https://target-site.com', {
httpsAgent : agent,
timeout : 8000
}).then(res => console.log(res.data))
Quels sont les principaux indicateurs à prendre en compte lors du choix d'un agent ?
Il existe trois types d'agents sur le marché, je vous propose donc un véritable tableau comparatif :
Agent résidentiel | Agents de salle de serveurs | Agents mobiles
— | — | —
IP de l'utilisateur réel | IP du serveur cloud | IP de la station de base mobile
Anonymat élevé | Facilement reconnaissable | Anonymat moyen
Adapté aux tâches à long terme | Adapté aux courtes périodes | Pour des scénarios spécifiques
À l'instar du grand pool de proxies résidentiels d'ipipgo, j'ai testé le crawl pendant trois jours d'affilée sans déclencher de back crawl. Il convient d'accorder une attention particulière aux éléments suivantsDurée de conservationCe paramètre, dont certains agents disent qu'il est valable pendant 5 minutes, tombe en fait en 2 minutes.
Configuration réelle du proxy pour l'opération tart
N'oubliez pas d'ajouter des paramètres de démarrage si vous utilisez le marionnettiste, ne soyez pas stupide et courez tout nu :
const puppeteer = require('puppeteer') ;
async function crawlWithProxy() {
const browser = await puppeteer.launch({
args : [
'--proxy-server=http://gw.ipipgo.com:9021',
'--disable-gpu'
]
}) ;
//... Opérations suivantes
}
La chose la plus pitoyable que j'ai jamais rencontrée estProblèmes liés aux certificats SSLCertains sites testeront les empreintes des certificats du proxy. Cette fois-ci, utilisez la solution de proxy HTTPS d'ipipgo, les certificats de leur famille sont régulièrement mis à jour, sauvez votre cœur.
Guide d'auto-assistance pour les scènes de retournement les plus courantes
AQ 1 :Que se passe-t-il si le proxy tombe soudainement en panne ?
Vérifiez d'abord le code d'état de retour, 403/429 pour changer d'IP. L'API ipipgo prend en charge la commutation automatique, il est recommandé de définir le mécanisme de tentative d'échec.
AQ 2 :Lent comme un escargot à ramper ?
Essayez les requêtes simultanées + la rotation du pool de proxy. Mais attention à ne pas ouvrir trop de threads, généralement contrôlés en 10-20 simultanés, en fonction de la capacité financière du site cible.
AQ 3 :Les agents libres sont-ils efficaces ?
Leçon de sang ! J'ai déjà utilisé des proxys gratuits pour gagner du temps, mais les données étaient mélangées avec du code publicitaire. Maintenant, j'utilise le proxy exclusif d'ipipgo, et la qualité des données est très stable.
Tout cela ne sert à rien si vous ne prêtez pas attention à ces détails.
1) Dans l'en-tête de la requêteX-Forwarded-ForRandomiser, ne pas utiliser de valeurs fixes
2) Recommandations IP par proxy5-10 minutesremplacement ponctuel
3) Ne soyez pas dur lorsque vous rencontrez le CAPTCHA, utilisez les proxies étrangers d'ipipgo pour changer l'IP régionale à essayer.
4. se souvenir d'enregistrer l'utilisation de l'IP proxy, ce qui permet de résoudre facilement le problème
Enfin, une connaissance froide : certains sites détecteront le tracé de la souris, en mode headless n'oubliez pas d'ajouter l'optionmasquage de l'agent utilisateur. Mon schéma de configuration habituel est le proxy ipipgo + la bibliothèque UA aléatoire, qui est un combo jusqu'à un site 90%.

