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

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

月光魔力鸭

2021-02-08 14:55 阅读 3630 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在文件上传的时候,经常会对文件的mime进行限制,比如图片 image/jpg 等,让用户可以选择图片,而不是其他的文件。
当一些业务必须通过横屏来实现,但是又没有原生来做,只能通过h5的时候怎么办?
web网站上总会有在文本域中提交代码的操作,那么如何处理呢?
做作业的时候,需要在手机上预览下,但是发现如果想在移动端上展示A4样子的作业还是挺麻烦的,最后还是准备通过图片来展示,然后移动端缩放呗。。
this 是 JavaScript 的一大难点,多年经验的前端程序员都可能对这方面模糊。this 在大量的函数、类库中都有使用,理清显式绑定和隐式绑定有助于理解或书写这类函数。
在项目开发过程中,分页是少不了的,之前封装了一个分页组件,样式是基于bootstrap的样式,当然也可以自己来修改
前端时间搞了个小转码,放在后台,但是特别占带宽,想着能不能从前台把这个事搞定呢?读取图片的二进制,然后将字节流处理后重新生成图片展示处理啊。
nvm install 16.15.0 : The process cannot access the file because it is being used by another process