《数据采集技术》课件-Middlewares中间件_第1页
《数据采集技术》课件-Middlewares中间件_第2页
《数据采集技术》课件-Middlewares中间件_第3页
《数据采集技术》课件-Middlewares中间件_第4页
《数据采集技术》课件-Middlewares中间件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论