
Pratique avec Node.js Rub un proxy HTTP
Récemment, de nombreux amis qui font de la collecte de données se demandent s'il est particulièrement gênant de construire leurs propres serveurs proxy. Aujourd'hui, nous allons utiliser le langage vernaculaire le plus courant, vous apprendre à utiliser Node.js tout en pouvant utiliser un proxy HTTP. Ne vous inquiétez pas, même si vous débutez, vous pouvez suivre.
Pourquoi voudriez-vous vous séparer de votre propre agent ?
Bien que les services d'agence disponibles sur le marché soient pratiques, vous devrez vous débrouiller seul dans ces quelques situations :
1. les sites web spécifiques nécessitent une personnalisation(par exemple, certains sites avec des mécanismes pervers de lutte contre l'escalade)
2. nécessité de mélanger différents pools d'adresses IP(Achat personnel + accès gratuit)
3) Exigences provisoires en matière d'essais(Il n'est pas rentable d'avoir un paquet de fournisseurs de services pour tester une interface ou autre).
Préparez vos affaires.
Assurez-vous d'abord de les avoir sur votre ordinateur :
| Node.js | >= v14.0 |
| npm | >= 6.0 |
| éditeur de code | VSCode/Sublime est parfait. |
Installer une dépendance critique :http-proxyLe système d'information de l'Union européenne (UE) a été mis en place par la Commission européenne :
npm install http-proxy --save
Construction de base (version 20 lignes de code)
Créez un nouveau fichier proxy.js et codez ces éléments :
const http = require('http') ;
const httpProxy = require('http-proxy') ;
const proxy = httpProxy.createProxyServer() ;
const server = http.createServer((req, res) => {
proxy.web(req, res, {
target : 'http://目标网站.com',
changeOrigin : true
}) ;
}) ;
server.listen(3000, () => {
console.log('Le proxy fonctionne sur le port 3000') ; }) ; server.listen(3000, () => {
}) ;
Courez-y et essayez-le :node proxy.jsPour plus d'informations, visitez le site http://localhost:3000就能看到效果. Mais ce n'est qu'une version de base, nous devrons l'équiper par la suite.
kit de l'agent
Il faut ajouter ces fonctionnalités dans la vie réelle :
1. rotation du PI - Vous ne pouvez pas continuer à utiliser la même adresse IP.
2. filtrage des demandes - Ne transmettez pas toutes les demandes.
3. la journalisation - Il est bon de vérifier s'il y a des problèmes.
Recommandé pour une utilisation directeServices IP dynamiques d'ipipgoLe code est une nouvelle version de leur pool d'adresses IP, qui est mis à jour rapidement afin que nous n'ayons pas à maintenir la liste d'adresses IP nous-mêmes. Le code modifié ressemble à ceci :
// Le SDK ipipgo est présenté ici
const ipipgo = require('ipipgo-sdk') ;
function getProxyIP() {
return ipipgo.getDynamicIP({
region : 'us', // sélectionner la région
protocol : 'http' // type de protocole
}) ; }
}
// Dans la configuration du proxy, remplacez
proxy.web(req, res, {
target : getProxyIP().url, {
headers : {
'X-Forwarded-For' : getProxyIP().ip // dissimule l'IP réelle
}
}).
Pièges courants AQ
Q : Pourquoi le site web reste-t-il bloqué après l'utilisation d'un proxy ?
R : 80% de la qualité de l'IP n'est pas bonne, il est recommandé d'utiliser la fonctionPool IP exclusif pour ipipgoLeur taux de survie en matière de propriété intellectuelle est bien plus élevé que le dernier que j'ai acheté.
Q : Comment puis-je contrôler la vitesse du proxy ?
R : en deux temps : ① limiter le nombre de requêtes simultanées ② fixer un délai raisonnable (recommandé 5-10 secondes)
Q : Qu'est-ce qui est le plus rentable, construire sa propre maison ou acheter du matériel prêt à l'emploi ?
A : petite échelle avec auto-construction rentable, plus de 50 concurrents recommandés directement sur le site.Les forfaits d'entreprise d'ipipgoC'est beaucoup moins de travail que d'entretenir ses propres serveurs.
Soyons réalistes.
Le plus gros problème de la construction de votre propre proxy est la gestion des ressources IP. Au lieu de passer du temps à chercher des IP gratuites, vous pouvez utiliser un service prêt à l'emploi. Par exemple, vous pouvez utiliser un service prêt à l'emploi.ipipgoCes fournisseurs de services professionnels ne se contentent pas d'offrir l'API docking, ils proposent également des panneaux de surveillance en temps réel, de sorte que vous pouvez rapidement changer de nœud si quelque chose ne va pas. La prochaine fois que vous réaliserez un projet de crawler, n'oubliez pas de préparer une ressource IP fiable avant de commencer le travail, afin de ne pas faire la moitié de l'anti-climbing pour obtenir l'effondrement de la mentalité.

