
Apprentissage pratique de l'utilisation de NodeJS + proxy IP pour faire de l'exploration de sites web.
Récemment, de nombreux frères m'ont demandé d'utiliser NodeJS pour capturer le site web est toujours bloqué IP comment faire ? Aujourd'hui, parlons de cette question. Tout d'abord, venons-en au fait.Les adresses IP proxy sont une véritable bouée de sauvetage contre le blocage !Le pool d'adresses IP est aussi grand qu'un bol de riz, et il est si facile à utiliser, surtout avec un fournisseur professionnel comme ipipgo.
Pourquoi dois-je utiliser une adresse IP proxy ?
Pour citer un marron, vous allez au supermarché pour prendre des œufs spéciaux, si vous y allez 800 fois par jour, les vigiles ne vous arrêtent pas pour arrêter qui ? Il en va de même pour les serveurs web. Proxyer l'IP avec ipipgo, c'est comme changer de gilet à l'achat, à chaque fois que vous changez d'adresse IP, le serveur ne vous reconnaîtra pas.
const axios = require('axios') ;
const cheerio = require('cheerio') ;
// Remplacez ceci par votre propre adresse de proxy ipipgo
const proxyConfig = {
host : 'gateway.ipipgo.com', port : 9021, }
host : 'gateway.ipipgo.com', port : 9021, }
auth : {
username : 'Votre numéro de compte',
password : 'Votre mot de passe'
}
}.
async function grabData(url) {
async function grabData(url) { try {
const response = await axios.get(url, {
proxy : proxyConfig
}) ; const $ = cheerio.load(response.data)
const $ = cheerio.load(response.data) ; // Récupère les données.
// La logique de crawl est écrite ici...
} catch (error) {
console.log('Fetching error:', error.message) ; }
}
}
Cheerio analyse le triple axe
Une fois que vous avez la page, vous devez désassembler les données, n'est-ce pas ? Il y a trois choses essentielles à retenir :
// 1. trouver le logo fixe
const price = $('div.price-box span').text() ;
// 2. localisation par attribut
const stock = $('[data-type="inventory"]').attr('data-count') ;
// 3. parcourir la liste
$('ul.product-list li').each((index, element) => {
const title = $(element).find('h3').text() ;
}) ;
Conseils pratiques de l'ipipgo
Leur agent a un tour dans son sac...Changement automatique d'adresse IP.. Ajoutez un intervalle aléatoire au code et le taux de réussite double immédiatement :
function randomDelay() {
return Math.floor(Math.random() 3000) + 1000 ;
}
async function safeGrab(url) {
await new Promise(resolve => setTimeout(resolve, randomDelay())) ; } async function safeGrab(url) { return Math.floor(Math.random()) + 1000)
return grabData(url) ;
}
Scène de renversement courante AQ
Q : Pourquoi suis-je toujours bloqué alors que j'utilise un proxy ?
R : quatre-vingt pour cent de la qualité IP n'est pas bonne, proxy gratuit avec les étals de bord de route comme, peut être quand le scurry mince. Il est recommandé d'utiliser l'IP exclusive d'ipipgo, dédiée à une personne sans numéro de série.
Q : Que se passe-t-il si je ne peux pas saisir toutes les données ?
R : Vérifiez d'abord si le mécanisme anti-escalade est déclenché, puis essayez d'ajouter ces en-têtes :
headers : {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0) decent browser', 'Accept-Language' : 'zh-CN,zh;q=0.9', 'Accept-Language' : 'zh-CN,zh;q=0.9'
'Accept-Language' : 'zh-CN,zh;q=0.9'
}
Guide pour éviter la fosse
| nid-de-poule | méthode régler un problème |
|---|---|
| Fréquence excessive des demandes | Ajouter des délais aléatoires, contrôlés à 3-5 secondes par trajet |
| Changements structurels du HTML | Vérification régulière du sélecteur, souligné par try-catch |
| Interception du CAPTCHA | Utilisation avec les IP Proxy résidentielles d'ipipgo |
Enfin, pour être honnête, la collecte de données s'apparente à la pêche.Patience + bons outilsL'un d'eux est indispensable. ipipgo a récemment entrepris des activités, les nouveaux utilisateurs peuvent envoyer du trafic 10G, ce qui est suffisant pour que vous puissiez jeter un coup d'œil pendant un certain temps. Si vous rencontrez des problèmes spécifiques, vous pouvez appeler directement leur service clientèle technique, la vitesse de réponse est plus rapide que celle du livreur.

