axios 使用proxy代理请求https报错certificate has expired

axios 使用proxy代理请求https报错certificate has expired

月光魔力鸭

2021-02-08 14:55 阅读 2131 喜欢 0 axios https代理 certificate-has-expired

最近一直在想着抓一些网盘数据,进行资料归拢,可是当我真正开始的时候.. 还是遇到了反爬,当然我本身就有心理预期,这是肯定会碰到的,只是没想到会在代理IP上耗费这么久,之前的时候也处理过代理IP ,可是由于一知半解,导致很多配置都不理解,debug全靠猜...这次还是猜的。

certificate-has-expired

使用的是 nodejs + axios 访问 https 网站,在抓取了几百条后,就被限制IP 了,当然是找一些免费代理来进行替换,这里先罗列几个自己常用的代理。

中间还找了 极光/芝麻,可是当我注册后需要实名,上传身份证正反面后,还需要扫码支付宝...我就放弃了。

先说这个问题,很明显,证书过期,在 代理agent中配置不校验证书即可。

实现

return tunnel.httpsOverHttp({
    rejectUnauthorized: false,//注意该配置,其实我没有在官网上找到这个配置..纯属瞎猜,反正我是不带参数就报错,带上就正常。
    proxy: {
      host: '61.160.210.234',
      port : 808
    }
  })

整体实现

const tunnel = require('tunnel');
const axios = require('axios');
const url = `https://xxx.com/xx/xx`;
let baseHeader = {};//准备好header
let proxy = tunnel.httpsOverHttp({
    rejectUnauthorized: false,
    proxy : {
        host : '',port : ''
    }
})
;(async function(){
    let html = await axios.get(url, { timeout : 5000, headers: baseHeader,proxy : false,httpsAgent : proxy }).then(rs => rs.data).catch(err => {})
    console.log(html);
})();

各种换库 搞了小半天.. 主要还是用axios习惯了。

转载请注明出处: https://chrunlee.cn/article/axios-certificate-has-expired.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
最近折腾的少了,实在没的写了,大约三四个月没更新了,先水一篇。
在今天之前,我对canvas中rotate其实是一脸蒙逼的... 虽然之前有做过图片旋转,但那是在他人的基础上直接修改的,至于为啥会这样..讲真,还真没注意过,但是今天又需要用到这块了,实在搞不定了,找了各种资料,终于明白了.. 坐标系的问题。
当一些业务必须通过横屏来实现,但是又没有原生来做,只能通过h5的时候怎么办?
有时候浏览网页经常会看见一些页面出现一些打字的效果,那么是怎么实现的呢?
在使用echarts 来做统计报表的时候,由于数量较多,准备将同类型的相同属性抽取出来,然后用来做默认属性的。结果发现一个问题
在项目开发过程中,分页是少不了的,之前封装了一个分页组件,样式是基于bootstrap的样式,当然也可以自己来修改
如何通过js调用本地摄像头呢?获取后如何对视频进行截图呢?在这里跟大家做一个简易的Demo来实现以上几个功能。
今天刷codewars的题目的时候碰到一个通过js来实现字符串转base64的题目,base64虽然在js或nodejs中经常用,但是我还真没有仔细去看过原理以及如何实现,这回绕不过去了,赶紧找了找资料看了下。