版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Middlewares——中间件Middlewares—中间件scrapy中间件Middlewares—中间件根据其程序执行流程位置不同分为两类:(介于引擎与下载器之间)下载中间件(介于引擎与爬虫组件之间)爬虫中间件Middlewares—中间件中间件位于同一个middlewares.py文件之中:下载中间件下载中间件作用:对request对象进行设置随机请求头、IP代理、Cookie等1判断response对象的状态码,来决定是否将response提交给引擎2下载中间件process_request方法用来处理正常的请求对象的数据,每个request通过下载中间件时被调用process_request(self,request,spider)request要处理的Request对象spider该request对应的Spider对象参数如下:下载中间件process_response方法用于对response进行处理,下载器完成http请求,传递响应给引擎的时候调用process_response(self,request,response,spider)request表示response所对应的requestresponse表示被处理的response参数如下:spider表示response所对应的spider下载中间件process_exception方法用来处理抛异常的请求对象的数据process_exception(self,request,exception,spider)request表示response所对应的requestexception表示抛出的异常参数如下:spider表示response所对应的spider下载中间件案例:middlewares.py,代码如下:classRandomUserAgent(object):defprocess_request(self,request,spider):useragent=random.choice(USER_AGENTS)request.headers.setdefault("User-Agent",useragent)下载中间件案例:settings.py,代码如下:USER_AGENTS=["Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;AcooBrowser;.NETCLR1.1.4322;.NETCLR2.0.50727)","Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;AcooBrowser;SLCC1;.NETCLR2.0.50727;MediaCenterPC5.0;.NETCLR3.0.04506)","Mozilla/4.0(compatible;MSIE7.0;AOL9.5;AOLBuild4337.35;WindowsNT5.1;.NETCLR1.1.4322;.NETCLR2.0.50727)","Mozilla/5.0(Windows;U;MSIE9.0;WindowsNT9.0;en-US)","Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Win64;x64;Trident/5.0;.NETCLR3.5.30729;.NETCLR3.0.30729;.NETCLR2.0.50727;MediaCenterPC6.0)","Mozilla/5.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0;WOW64;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;.NETCLR1.0.3705;.NETCLR1.1.4322)","Mozilla/4.0(compatible;MSIE7.0b;WindowsNT5.2;.NETCLR1.1.4322;.NETCLR2.0.50727;InfoPath.2;.NETCLR3.0.04506.30)","Mozilla/5.0(Windows;U;WindowsNT5.1;zh-CN)AppleWebKit/523.15(KHTML,likeGecko,Safari/419.3)Arora/0.3(Change:287c9dfb30)","Mozilla/5.0(X11;U;Linux;en-US)AppleWebKit/527+(KHTML,likeGecko,Safari/419.3)Arora/0.6“]下载中间件设置settings.py中的DOWNLOADER_MIDDLEWARES,取消注释:DOWNLOADER_MIDDLEWARES={'mySpider.middlewares.MyspiderDownloaderMiddleware':543,}COOKIES_ENABLED=False案例:禁用cookies以防止某些网站根据Cookie来封锁爬虫下载中间件设置成功后,运行爬虫就会发现请求头设置成功请求发送给服务器之前下载中间件随机选择一个请求头,就可以避免总使用一个请求头防止爬虫被服务器发现爬虫中间件爬虫中间件爬虫中间件作用:1在Response发送给Spider之前,对Response进行处理2在Request发送给Scheduler之前,对Request进行处理3在Item发送给ItemPipeline之前,对Item进行处理爬虫中间件自带了许多SpiderMiddleware爬虫中间件SPIDER_MIDDLEWARES_BASE变量的内容如下:'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware':50,'scrapy.spidermiddlewares.offsite.OffsiteMiddleware':500,'scrapy.spidermiddlewares.referer.RefererMiddleware':700,'scrapy.spidermiddlewares.urllength.UrllengthMiddleware':800,'scrapy.spidermiddlewares.depth.DepthMiddleware':900,SPIDER_MIDDLEWARES={'mySpider.middlewares.MyspiderSpiderMiddleware':543,}爬虫中间件自带了许多SpiderMiddleware爬虫中间件process_spider_input方法当Response被爬虫中间件处理时被调用。返回结果是:None或者抛出一个异常process_spider_input(response,spider)response被处理的Response对象spider该Response对应的Spider参数如下:爬虫中间件process_spider_output方法当Spider处理Response返回结果时,该方法被调用process_spider_output(response,result,spider)response生成该输出的ResponseresultSpider返回的结果参数如下:spider其结果对应的Spider爬虫中间件process_spider_exception方法当process_spider_input方法抛出异常时被调用process_spider_exception(response,exception,spider)爬虫中间件process_start_r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中英语 Unit 4 Making the news教学设计2 新人教版必修5
- 2025-2026学年母语教学设计幼儿园简单
- 实训报告范文(5篇)
- 2025-2026学年美食押韵教学设计
- 广东省河源市七年级生物下册 4.3人体的呼吸教学设计 (新版)新人教版
- 2026年外三病区三基模拟试卷(含答案)
- 2026年重大疫情防控模拟试题及答案详解
- 2026年小学计算题模拟试题及答案详解
- 全国计算机等级考试二级预测题库(含答案)
- 2026年水务集团考试模拟题库(含答案)
- 时空耦合分类模型构建-洞察及研究
- 2025年揭阳揭西县选调高中教师考试试题(含答案)
- 咯血患者介入治疗的护理讲课件
- GB/T 45472-2025架空和综合管廊用预制保温管道
- 急救与生命支持类设备管理
- 2025年湖北恩施州巴东县机关事业单位选调46人历年高频重点提升(共500题)附带答案详解
- 培训劳动纪律
- 如何做好临床护理带教组长
- 人教版六年级数学上册【全册教案】
- 车位租赁协议
- 做有梦想的少年 课件-2024-2025学年统编版道德与法治七年级上册
评论
0/150
提交评论