
Que fait le paramètre proxy d'Axios ?
Les amis des crawlers ont dû être confrontés à une tragédie de blocage d'IP, cette fois-ci l'IP proxy est une paille qui sauve la vie. Pour citer un cas réel : la semaine dernière, il y avait un frère de capture de données de commerce électronique, avec une demande continue d'IP nue pour une API de plate-forme, le résultat est moins de 2 heures pour être mis sur liste noire. Plus tard, dans Node.js, Axios a ajouté la configuration du proxy.Le même ensemble de codes continuera à fonctionner avec une IP différente.C'est là toute la beauté des procurations.
Trois façons de jouer avec les proxies Axios dans Node.js
Tout d'abord, installez axios et le paquet https-proxy-agent, c'est l'opération de base. Il y a trois failles dans lesquelles beaucoup de gens tombent lorsqu'ils configurent des proxys :
| nid-de-poule | prescription |
|---|---|
| Contrat d'agence erroné | Voir si c'est http ou socks5 en utilisant le proxy d'ipipgo. |
| Informations d'authentification manquantes | N'oubliez pas de mettre le mot de passe du compte pour le backend ipipgo dans auth ! |
| Paramètres de délai d'attente déraisonnables | Ajuster le paramètre de délai d'attente en fonction du type de paquet ipipgo |
Code de configuration pratique
Voici un modèle de configuration réellement utilisable (n'oubliez pas de le remplacer par vos propres informations de compte ipipgo) :
const axios = require('axios') ;
const HttpsProxyAgent = require('https-proxy-agent') ;
const proxyConfig = {
protocol : 'http',
host : 'votre-nom-d'utilisateur.ipipgo-proxy.com',
port : 8888, auth : { 'https-proxy-agent' ; const
auth : {
username : 'ipipgo-account',
password : 'dynamic-key'
}
} ;
const axiosInstance = axios.create({
httpsAgent : new HttpsProxyAgent(proxyConfig),
timeout : 15000 // recommandé de mettre plus de temps que le proxy libre
}) ;
Attention aux ipipgoChangement dynamique des touches toutes les 6 heuresPour ce faire, n'oubliez pas d'utiliser le mécanisme de mise à jour automatique.
Pourquoi recommandez-vous ipipgo ?
J'ai utilisé sept ou huit fournisseurs de services proxy et j'ai fini par utiliser ipipgo à long terme pour trois raisons principales :
- Pool IP exclusif sans numéro de série (c'est très important)
- Prise en charge du lancement simultané de plus de 200 demandes simultanées sans décalage
- Le temps de réponse du service clientèle est plus de trois fois supérieur à celui de ses homologues
En particulier, leurFonction de routage intelligentIl peut automatiquement faire correspondre les nœuds les plus rapides, ce qui est une aubaine pour les scénarios qui requièrent des requêtes à haute fréquence.
Foire aux questions QA
Q : La configuration du proxy est réussie mais la demande échoue ?
R : Vérifiez d'abord les paramètres de liste blanche d'adresses IP dans le backend ipipgo, puis essayez de vous connecter directement au serveur proxy à l'aide de la commande curl.
Q : Délai d'attente partiel en cas de forte concurrence ?
A : Mettez à jour le paquetage ipipgo vers Enterprise et ajustez le paramètre maxSockets d'axios en même temps.
Q : Que se passe-t-il si je dois changer fréquemment d'adresse IP ?
R : Utilisez l'API d'ipipgo pour obtenir l'adresse du proxy de manière dynamique. Il est recommandé de l'utiliser avec leur interface de polling.
Une dernière chose à savoir : de nombreuses personnes oublient de gérer le pooling de connexions après axios.create(), ce qui entraîne des fuites de mémoire. Il est recommandé de redémarrer l'instance toutes les 6 heures, ou d'utiliser la fonction de rafraîchissement automatique d'ipipgo pour ne pas perdre la tête.

