在node環境下作些簡單的爬蟲時,須要用代理地址,若是訪問的目標站點
是https協議,用axios就會有些問題node
1.使用tunnel隧道代理ios
node-tunnel - 用於HTTP/HTTPS的隧道代理
具體參考(tunnel)[https://www.npmjs.com/package...]npm
npm install tunnel
const axios = require('axios') const tunnel = require('tunnel') const tunnelProxy = tunnel.httpsOverHttp({ proxy: { host: 'you_host', port: 'you_port', }, }); axios(url,{ proxy: false, httpsAgent: tunnelProxy, timeout: 10000 }) .then(res=>{ console.log(res.data) })
2.使用 axios-https-proxy-fix
axios
axios-https-proxy-fix
是對axios
https請求bug修復的一個分支版本ui
npm i axios-https-proxy-fix
const axios = require('axios-https-proxy-fix') axios(url,{ proxy: { host: '127.0.0.1', port: '1080' }, timeout: 10000 }) .then(res=>{ console.log(res.data) })
3.使用node request
模塊url
我的感受若是隻是在服務端運行的代碼,用這個最爲穩妥代理
npm i request
const request = require('request') request({ url, timeout: 5000, proxy: 'http://127.0.0.1:1080' },(error,response,body)=>{ if (error) { return console.log(error) } console.log(body) })