时间:2021-05-22
scrapy是一个基于Twisted的异步处理框架,可扩展性很强。优点此处不再一一赘述。
下面介绍一些概念性知识,帮助大家理解scrapy。
一、数据流向
要想熟练掌握这个框架,一定要明白数据的流向是怎么一个过程。总结如下:
1.引擎先打开网站,请求url。
2.引擎通过调度器以Request形式调度url。
3.引擎请求下一个url。
4.调度器将url通过Downloader Middlewares发送给引擎
5.Downloader 生成response,通过Downloader Middlewares发送给引擎
6.引擎接收Response 通过spiderMiddleware发送给spider处理
7.spider处理response
8.引擎将spider处理的item给ItemPipeline 然后将新的Request给调度器。
二、各个结构的作用
DownloderMiddleware
调度器会从队列之中拿出Request发送给Downloader执行下载,这个过程会经过DownloaderMiddleware的处理。
作用的位置有两个:
核心方法有三个:
process_request(request,spider)
Request 到达Downloader之前,就会被调用
参数介绍:
返回值:
1.返回None 调用别的process_request()方法,直至将Request执行得到Response才会结束。
2.返回Response对象,低优先级的process_request()和process_exception不调用。
3.返回request对象,低优先级的process_request()停止执行,返回新的Request。
process_response(request,response,spider)
作用位置:
返回值的情况:
1.返回Request低优先级的process_respons()不调用。
2.返回response低优先级的process_respons()继续调用。
process_exception(request,exception,spider)
此函数主要是用来处理异常的。
spiderMiddleware
作用位置:
核心方法:
process_soider_input(response,spider)
返回值:
1.返回None
继续处理Response,调用所有的spiderMiddleware,知道spider处理
2.跑出异常
直接调用Request的errback()方法,使用process_spider_output()处理。
process_spider_output(response,result,spider)
当spider处理Response返回结果时,被调用。
process_spider_exception(response,exception,spider)
返回值:none
继续处理response,返回一个可迭代对象,process_spider_output()方法被调用。
process_start_request(start_requests,spider)
以spider启动的Request为参数被调用,必须返回request。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助。1、Scrapy爬虫框架Scrapy是一个使用Python编程语言编写的爬虫框架,任何
1准备JDBC基本知识JDBC元数据知识反射基本知识2:两个问题业务背景:系统中所有实体对象都涉及到基本的CRUD操作。所有实体的CUD操作代码基本相同,仅仅是
基本知识字节和字符的区别BigEndian和LittleEndianUCS-2和UCS-4UTF-16和UTF-32UTF-16UTF-32UTF-8基本知识介
提到,尽管并非很麻烦,可是依然要许多基本技能的,简易是表明较为又很好学,麻烦就是指得学的物品比较多,各个方面的,例如网页页面基本知识,营销推广基本知识,提升构思
学习爬虫有一段时间了,今天使用Scrapy框架将校花网的图片爬取到本地。Scrapy爬虫框架相对于使用requests库进行网页的爬取,拥有更高的性能。Scra