初学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。在逆向爬虫中有时会在拦截器做进行加密解密,打好基础为后面逆向爬虫做准备。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端