nodejs作中间层代理转发请求第三方服务器数据

中间层概念

简单的一个数据发送接收流程:前端 < – -- > 后端 <- – -> 数据库
node中间层:前端 < – > node中间层 < – > 后端 < — > 数据库
文章:【探索】NodeJS中间层搭建——楔子

实战

今天抓取某素材网站资源下载资源链接时,源网站禁止访问,出现403提示。
就是将下载该文件的url路径新窗口打开复制访问。
在这里插入图片描述
很明显,该网站对访问的源头进行了校验,于是我进行了如下操作。
在这里插入图片描述
然后,下载弹框可以正常打开,对比了一下,是请求头中的referer导致的。于是就百度查看前端是否可以修改referer,但是未有发现。
还好之前学过node知识,想到了可以通过node中间层代理转发的同时修改请求配置信息来解决这个小问题。
用到的nodejs代理模块

npm i http-proxy --save

该npm包链接
看数据很明显用到人很多,所以选择了这个
在这里插入图片描述

var httpProxy = require('http-proxy');
const http = require('http')
var proxy = httpProxy.createProxyServer({}); // See (†)

const server = http.createServer(function(req, res) {
// 代理的地址
  const url = 'https://down.51miz.com/'
  // 将请求素材网站的referer替换为同域名
  req.headers.referer = url
  delete req.headers.host;
  proxy.web(req, res, { target: url });
});
proxy.on('error', function(e) {
  console.log(e);
});
server.listen(3001)

浏览器访问 http://127.0.0.1:3001/···/···/ 时,
实际访问的是 https://down.51miz.com/···/···/
这样就解决了同源的限制。可以正常爬取下载了~

个人博客:https://yuanxiaoshen.com/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值