Scrapy框架使用的基本知识
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。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
- Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
- Python爬虫框架scrapy实现的文件下载功能示例
- python爬虫框架scrapy实现模拟登录操作示例
- Python爬虫框架Scrapy常用命令总结
- Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
- 浅谈Scrapy框架普通反爬虫机制的应对策略
- Python:Scrapy框架中Item Pipeline组件使用详解
- Python之Scrapy爬虫框架安装及简单使用详解
- Scrapy框架CrawlSpiders的介绍以及使用详解
- python爬虫框架scrapy实战之爬取京东商城进阶篇
- Python的爬虫框架scrapy用21行代码写一个爬虫
- 使用Python的Scrapy框架十分钟爬取美女图
相关文章
Python 详解爬取并统计CSDN全站热榜标题关键词词频流程
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Python爬取CSDN全站综合热榜标题,顺便统计关键词词频,大家可以在过程中查缺补漏,提升水平2021-11-11
用Python的Flask框架结合MySQL写一个内存监控程序
这篇文章主要介绍了用Python的Flask框架结合MySQL些一个内存监控程序的例子,并且能将结果作简单的图形化显示,需要的朋友可以参考下2015-11-11
pandas dataframe拼接后index重新排序方式
这篇文章主要介绍了pandas dataframe拼接后index重新排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10


最新评论