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的处理。
作用的位置有两个:
- 在调度器调出Request发送给Downloader之前。
- 下载之后生成Response发送给spider之前。
核心方法有三个:
process_request(request,spider)
Request 到达Downloader之前,就会被调用
参数介绍:
- request :Request对象,被处理的Request。
- spider:spider对象,上面被处理的Request对应的spider。
返回值:
1.返回None
调用别的process_request()
方法,直至将Request执行得到Response才会结束。
2.返回Response
对象,低优先级的process_request()
和process_exception
不调用。
3.返回request
对象,低优先级的process_request()
停止执行,返回新的Request
。
process_response(request,response,spider)
作用位置:
- Downloader 执行Request之后,会得到对应的Reponse ,scrapy 引擎会将Response发送给spider进行解析,发送之前调用这个方法对Response进行处理。
返回值的情况:
1.返回Request
低优先级的process_respons()
不调用。
2.返回response
低优先级的process_respons()
继续调用。
process_exception(request,exception,spider)
此函数主要是用来处理异常的。
spiderMiddleware
作用位置:
- Downloader生成Response之后会发送给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
。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]