初学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 @ 2024-04-22 08:37  kin2022  阅读(191)  评论(0)    收藏  举报