Scrapy爬虫框架中的两个流程

下面对比了Scrapy爬虫框架中的两个流程——

Scrapy框架的基本运作流程;② Spider或其子类的几个方法的执行流程。

这两个流程是互相联系的,可对比学习。

 

1 ● Scrapy框架的基本运作流程

Scrapy引擎从调度器(Scheduler)中获取一个链接(URL)

Scrapy引擎将上述的URL封装成一个请求对象(Request),并传给下载器(Downloader)

下载器(Downloader)把资源下载下来,并封装成响应对象(Response)

Scrapy引擎从下载器中接收Response对象, 并通过爬虫中间件(Spider Middleware)发送给Spider解析 (Response对象默认交给Spider或其子类的parse方法解析)

如果Response对象解析出实体(Item),则将Item传给实体管道(Item Pipeline)进行持久化等进一步的处理;如果解析出Request对象, 那么将Request对象传给调度器(Scheduler)等待抓取

 

2 ● Spider或其子类的几个方法的执行流程

__init__():初始化爬虫名字和start_urls列表

start_requests() :该方法会调用make_requests_from url(),生成Requests对象,将该对象交给Scrapy引擎的Downloader下载并返回Response对象

parse() : 根据指定的回调函数解析上述的Response对象,并返回Item对象或Request对象,Item传给Item Pipeline进行持久化等进一步的处理,而Request对象传给调度器(Scheduler)等待下载,下载完后由指定的回调函数处理(默认为parse()),一直进行循环,直到处理完所有的数据为止。

Spider的子类CrawlSpider用于全站爬取,当编写爬虫规则(即Rule对象)时,应该避免使用parse作为回调函数,这是因为CrawlSpider使用parse方法来实现其逻辑,如果覆盖了 parse方法,crawl spider将会运行失败。

 

转载于:https://www.cnblogs.com/ArrozZhu/p/8491302.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值