
Utilisation de Node fetch pour envoyer des requêtes POST
Récemment, beaucoup de copains de collecte de données ont demandé, en utilisant Node.js pour envoyer une demande au site cible est toujours bloqué IP comment faire ? Cette question est en fait la même que le jeu a été interdit numéro une raison, la solution est également très simple ---.La grande rotation des IP par procurationLa première chose que nous allons faire est d'utiliser le service ipipgo comme exemple. Aujourd'hui, nous allons prendre le service ipipgo comme exemple et expliquer comment utiliser Node fetch pour envoyer des requêtes POST sans être bloqué.
Préparation de l'équipement de base
Installez d'abord une bibliothèque node-fetch, ne soyez pas stupide et utilisez le module natif. La ligne de commande frappe ceci :
npm install node-fetch@2 // Notez que les anciennes versions sont plus compatibles.
Préparez un service proxy fiable, comme le montre ici le Dynamic Residential Proxy d'ipipgo. L'un des avantages de leur domicile est qu'ilCommutation automatique de l'IPVous n'avez pas besoin de maintenir votre propre pool d'adresses IP. Après l'enregistrement et l'obtention de la clé API, l'adresse du proxy ressemble à ceci :
http://username:password@gateway.ipipgo.com:8080
Désassemblage de code en situation réelle
C'est là tout l'intérêt ! La posture de l'agent de mise en relation doit être rappelée :
const fetch = require('node-fetch') ;
const HttpsProxyAgent = require('https-proxy-agent') ;
// valeur d'affectation du proxy (attention à remplacer votre propre compte)
const proxyAgent = new HttpsProxyAgent(
'http://你的账号_不带中文:密码@gateway.ipipgo.com:8080'
).
async function sendPost(url, data) {
async function sendPost(url, data) { try {
const response = await fetch(url, {
method : 'POST', body : JSON.stringify(data), async
headers : {'Content-Type' : 'application/json'}, agent : proxyAgent // La clé se trouve dans le proxyAgent.
agent : proxyAgent // La clé est de connecter le proxy ici.
}) ; return await response.json()
return await response.json() ;
} catch (error) {
console.log('Request flopped:', error) ; }
}
}
// Exemple d'utilisation
sendPost('https://api.某某网站.com/login', {
nom d'utilisateur : 'test',
password : '123456'
}) ;
Attention aux nids-de-poule :
- Dans le compte proxyN'apportez pas de Chinois.Dans le cas contraire, l'authentification échoue.
- Si le site cible utilise HTTPS, n'oubliez pas de faire correspondre le https-proxy-agent.
- La définition d'un délai d'attente suggère d'ajouter un délai d'attente (setTimeout), afin de ne pas avoir à attendre.
Scène de renversement courante AQ
Q : Que dois-je faire si je ne peux pas me connecter à l'agent ?
R : Vérifiez d'abord que le format de l'adresse du proxy est correct, en utilisant la commande curl pour le tester :
curl -x http://账号:密码@gateway.ipipgo.com:8080 https://httpbin.org/ip
Q:Return 407 Agent Authentication Error ?
R : Dans 99 % des cas, le mot de passe du compte est erroné ou l'offre a expiré. Allez sur ipipgo background pour voir le reste du trafic.
Q : Comment puis-je obtenir un changement de propriété intellectuelle par demande ?
R : L'activer dans la console ipipgoInterrupteur IP sur demandesans rien changer au code
Que faut-il rechercher dans une agence ?
Il existe toutes sortes de services proxy sur le marché, mais vous devez reconnaître ces points pour collecter des données :
| Fonctionnalité | Agents de salle de serveurs | Agent résidentiel |
|---|---|---|
| Authenticité de l'IP | ❌ Facilement reconnaissable | ✅ Real Family IP |
| Demandes simultanées | ✅ Multi-threadable (multithreading) | ⚠️ Restreint |
Comme celui d'ipipgo.Agents résidentiels dynamiquesIl est plus adapté aux scénarios de crawler, bien qu'il soit un peu plus cher qu'un agent de salle de serveur, mais il n'est pas facile de se faire bannir. un autre point positif de leur maison est quePositionnement précis dans la régionPar exemple, si vous souhaitez recueillir des données météorologiques sur un lieu donné, vous pouvez verrouiller directement l'adresse IP de sortie de la ville correspondante.
Conseils pour réduire le trafic
Enfin, j'aimerais vous faire part d'une astuce qui vous permettra d'économiser de l'argent : les paquets de trafic d'ipipgo utilisent l'optionla facturation basée sur le tempsCe modèle est plus rentable que l'abonnement mensuel et convient particulièrement à la phase d'essai initiale du projet. Lorsque l'activité est stable, le forfait mensuel est supprimé, il n'est donc pas facile de dépenser de l'argent.
Si vous êtes pressé, vous pouvez d'abord les frotter.paquet d'essai(Les nouveaux utilisateurs reçoivent 1G de trafic). Cependant, il faut faire attention à ne pas se livrer à un crawling violent, la version d'essai de l'IP sera de moins bonne qualité, le travail officiel doit également être payé sur la version.

