nodejs使用axios代理https失敗的解決方案

前言

在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-fixaxios

axios-https-proxy-fix是對axioshttps請求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)
})
相關文章
相關標籤/搜索