版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北省建筑安全员-A证考试题库附答案
- 2025海南省安全员考试题库
- 电表内阻的测量课件
- 丑小鸭绘本故事
- 《心率失常的护理》课件
- 《员工健康生活指南》课件
- 山东省滨州市惠民县2024-2025学年七年级上学期1月期末道德与法治试题(含答案)
- 《pos机的使用方法》课件
- 单位管理制度展示合集员工管理篇
- 船用锚机绞缆机课件
- 2024年01月11026经济学(本)期末试题答案
- 烘干煤泥合同范例
- 人教版六年级上册数学第八单元数学广角数与形单元试题含答案
- 2025年“三基”培训计划
- 第20课 北洋军阀统治时期的政治、经济与文化 教案
- 叉车租赁合同模板
- 住房公积金稽核审计工作方案例文(4篇)
- 口腔门诊医疗风险规避
- Unit 2 My Schoolbag ALets talk(说课稿)-2024-2025学年人教PEP版英语四年级上册
- 山东省青岛实验高中2025届高三物理第一学期期末综合测试试题含解析
- 《基于杜邦分析法的公司盈利能力研究的国内外文献综述》2700字
评论
0/150
提交评论