初学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。在逆向爬虫中有时会在拦截器做进行加密解密,打好基础为后面逆向爬虫做准备。
浙公网安备 33010602011771号