初学HOOK(拦截器实践)

拦截器分为:请求拦截器&返回拦截器

网页整体流程:

加载html-->加载js代码-->触发axios请求-->构造请求对象-->请求拦截器-->请求服务器-->返回数据-->返回拦截器-->页面html展示

请求拦截器:在发送请求之前,可以借助一些函数来对请求检测。若有问题可以直接取消请求。
响应拦截器:当服务器返回响应数据时,响应拦截器务会在我们拿到结果前预先处理响应数据。例如对响应数据做一些格式化处理,或者当响应失败时,可以做一些失败提醒和纪录。

在逆向爬虫的时候有时候会在拦截器做加密,所以要了解拦截器。我们做一个简单的实例感受一些拦截器的处理流程。

 安装axios包,node.js安装包指令npm

npm install axios

引进包

var axios = require('axios')

//写一个异步请求

axios.get('http://httpbin.org/get').then(function(response){

   console.log(response);

}).catch(function(error){

  console.log(error);

});

 

//写一个请求过程中的拦截器 设置头:sign和User-Agent
req.interceptors.request.use(function(config){
console.log('请求拦截器成功');
config.headers["sign"] ='123456'
config.headers['User-Agent']='abcd12345'
return config;
},function(error){
console.log('拦截器失败');
});

//写一个响应拦截器
req.interceptors.response.use(function(response) {
console.log('响应拦截器成功');
return response.data;
},function(error){
console.log('响应拦截器失败');
return Promise.reject(error);
});

执行程序结果

 请问成功设置sign和User-Agent。在逆向爬虫中有时会在拦截器做进行加密解密,打好基础为后面逆向爬虫做准备。

 

posted @   kin2022  阅读(121)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示