首页 > 其他分享 >关于爬虫中所用到的请求拦截器和响应拦截器

关于爬虫中所用到的请求拦截器和响应拦截器

时间:2023-04-24 11:45:58浏览次数:28  
标签:拦截器 console 请求 爬虫 响应 axios 发包

1、首先我们看一下,axios的发包

axios = require('axios')        //导入axios包


//用axios发包,then回来的来处理服务器返回的数据(响应头)
// then 是axios接收后台返回数据的 vue jquery
// success 是的接收后台返回数据 ajax
axios.get('http://httpbin.org/get').then(function (res){
        console.log(res.data)
})

 

 A、请求拦截器

// Interceptors-拦截器
// 请求拦截器:在发送请求之前,可以借助一些函数来对请求的内容和参数做一些检测。若有问题可以直接取消清求。
// 响应拦截器:当服务器返回响应数据时,响应拦截器会在我们拿到结果前预先处理响应数据。例如对响应数据做一些格式化处理,或者当响应失败时,可以做一些失败提醒和纪录。
//npm install axios
axios = require('axios')
//设置请求拦截器  请求拦截器
axios.interceptors.request.use(function (config){
        console.log('请求拦截器成功')
        config.timeout=2000;//修改请求config
        config.headers['sign']= 'exs4CQYVFQ1Udq4WPjL7XgA1MLk4WLVHUFKISwhXUgQaI0dJTEwCBWFTXVIPAyFBUA=';
        config.headers['url']='http://www.baidu.com';
        // config.url = '我已经改过了_haha';
        return config;
},function (error){
        console.log('请求拦截器失败')
        return Promise.reject(error);
});
//发送请求
axios.get('http://httpbin.org/get').then(res=>console.log(res.data))

结果:

请求拦截器成功
{
  args: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, compress, deflate, br',
    Host: 'httpbin.org',
    Sign: 'exs4CQYVFQ1Udq4WPjL7XgA1MLk4WLVHUFKISwhXUgQaI0dJTEwCBWFTXVIPAyFBUA=',
    Url: 'http://www.baidu.com',
    'User-Agent': 'axios/1.3.6',
    'X-Amzn-Trace-Id': 'Root=1-6445f4f6-123280943ab95d2706825c94'
  },
 

由上面的结果 可以看出 headers中增加一条:

Sign: 'exs4CQYVFQ1Udq4WPjL7XgA1MLk4WLVHUFKISwhXUgQaI0dJTEwCBWFTXVIPAyFBUA=',
这就是在拦截器在发包之前拦截的请求后进行处理的结果。
B、响应拦截器

axios = require('axios')
//设置响应拦截器
axios.interceptors.response.use(function (response){
        console.log('响应拦截器成功')
        console.log('调解密☑数进行解密数据')
        //return response;
        // return response.data;//修改响应数据
        return {'name':'lyt到处一流'};//修改响应数据
},function (error){
        console.log('响应拦截器失败')
        return Promise.reject(error);
}),
//
//拦截响应
axios.get('http://httpbin.org/get').then(res=>console.log(res))

结果:

响应拦截器成功
调解密☑数进行解密数据
{ name: 'lyt到处一流' }

Process finished with exit code 0

由上面的结果可以看出,返回的时候,把响应的结果进行了处理。

{ name: 'lyt到处一流' }

 

===============================================================================================================================================



/*
js发包的顺序:由下图可见:请求拦截器在发包之前
响应拦截器在发包之后
js发包----请求拦截器 -----组装参数------初始化------发包------接收响应------响应拦截-----JS渲染
axios
*/

标签:拦截器,console,请求,爬虫,响应,axios,发包
From: https://www.cnblogs.com/lyt263/p/17348963.html

相关文章

  • Vue3 响应式数据的判断
    视频6.响应式数据的判断isRef:检查一个值是否为一个ref对象isReactive:检查一个对象是否是由reactive创建的响应式代理isReadonly:检查一个对象是否是由readonly创建的只读代理isProxy:检查一个对象是否是由reactive或者readonly方法创建的代理App.vue<tem......
  • 爬虫利器:jsDOM
    之前使用node做爬虫的时候,使用puppeteer来模拟浏览器,然后抓取信息,但是这样的效率和消耗太大了,所以需要一种更为效率的方法:直接使用axios来请求对应的url,然后通过jsDom,渲染成一个虚拟的html然后进行取值。废话不多说直接上代码:先安装jsdomnpmijsdom然后写下面实例化cons......
  • SpringMVC-响应数据和结果视图
    一、返回值分类1、字符串@Controller@RequestMapping("test")publicclasstest{@RequestMapping("testString")publicStringtestString(Modelmodel){Useruser=newUser();user.setUserName("李四");......
  • 手把手教你使用Python网络爬虫获取菜谱信息
    今日鸡汤一腔热血勤珍重,洒去犹能化碧涛。/1前言/    在放假时,经常想尝试一下自己做饭,下厨房这个网址是个不错的选择。    下厨房是必选的网址之一,主要提供各种美食做法以及烹饪技巧。包含种类很多。    今天教大家去爬取下厨房的菜谱,保存在world文档,方便日后制作自......
  • 一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取
    前几天小编给大家分享了数据可视化分析,在文尾提及了网易云音乐歌词爬取,今天小编给大家分享网易云音乐歌词爬取方法。本文的总体思路如下:找到正确的URL,获取源码;利用bs4解析源码,获取歌曲名和歌曲ID;调用网易云歌曲API,获取歌词;将歌词写入文件,并存入本地。本文的目的是获取网易云......
  • spring mvc一个Controller响应多个请求
    1.1. 控制器的实现packagecom.morris.controller;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.multiaction.Multi......
  • 关于python爬虫解析的问题
    在进行Python爬虫解析时,需要注意以下事项:1、良好的网站使用协议:需要遵守网站的robots.txt文件,以确保你的爬虫程序不会将网站拦截下来。2、编码问题:需要正确设置HTTP头和解析器的编码,以确保爬虫程序能够正确地解析网站的信息。3、数据解析:需要适当地处理HTML文档中的标签,以便从......
  • 反爬虫的所有套路和策略
    反爬虫是一种防止网络爬虫抓取网站内容的技术。为了保护网站的数据安全,网站管理员采用了各种策略来阻止或限制爬虫的访问。以下是一些常见的反爬虫策略和相应的例子:User-Agent检查:检查请求头的User-Agent字段来识别爬虫。例如,如果User-Agent是一个非常规浏览器的标识符,网......
  • Go中响应式编程库RxGo详细介绍
    最近的项目用到了RxGo,因为之前从没有接触过,特意去学了学,特此记录下。文章很多内容是复制了参考资料或者官方文档。如果涉及侵权,请联系删除,谢谢。1、RxGo简介1.1基础介绍RxGo是一个基于Go语言的响应式编程库,它提供了一种简单而强大的方式来处理异步事件流和数据流。RxGo的......
  • 仿chatGPT或chatPDF的前端界面布局,css实现对话聊天布局代码,响应式左右分栏布局(附完整
    chatPDF或者chatGPT的界面挺简洁的,就是一个左侧的列表以及右侧的对话列表,现在使用css实现这样的布局充分运用了flex布局方式实现,左右分栏,以及对话形式展示效果下面是效果图: 在手机设备看就隐藏左侧,右侧100%适应 下面就是html和css的布局代码<style>.chatpdf{......