Scrapy 爬虫框架(一)

一, Scrapy 爬虫框架

scrapy 是一个由python写的Crawler Framework ,简单轻巧,并且使用方便,Scrapy 使用 Twisted 这个异步网络库来处理网络通信,架构清晰,、

 

Scrapy : 引擎(Engine ) ,引擎负责数据流在系统中的所有组件中的流动,并在相应动作发生时触发事件。

 

调度器 (scheduler ). 调度器从引擎接收 Request 并将它们入队,以便以后引擎请求request 时提供给引擎。

 

下载器(Download)。下载器负责获取页面数据并提供给引擎,而后提供给Spider ,

 

Spider 。Spider 是SCrapy 用户编辑写于分析Response 并提取出来的 Item 。 典型的处理有清理验证及持久化(例如储存到数据库中)

 

下载器中间件( Download middlewares) 。 下载器中间件是在引擎及下载器之间的特定钩子( specific hook ) 处理Downloader 传递给引起的Response 。其提供了一个简单的机制, 通过插入自定义代码来扩展Scrapy 。

Spider 中间件( Spider middleware) 。 spider 中间件是在引擎及spider 之间的特定钩子(specific hook) ,处理spider 的输入( response ) 和输出(Items 及 Requests )。 其提供了一个简单的机制,通过插入自定义代码来扩展Scrapy 功能。

通过数据流的流向 ,我们可以看到Scrapy 的工作流程:

1) 引擎打开一个网站(open  a domain) ,找到处理该网站的Spider 并向该spider 请求第一个要爬取的URL

2)引擎从spider 中获取到第一个要爬取的URL并通过调度器( Scheduler ) 以 Request 进行调度 。

3) 引擎向调度器请求下一个要爬取的URL

4) 调度器返回下一个要爬取的URL 给引擎, 引擎将URL 并通过 下载中间件(请求(request )方向 )转发给下载器(Downloader)

5) 一旦页面下载完毕,下载器生成一个该页面的Response ,将其通过下载中间件(返回 (response) 方向 )发送给引擎。

6)引擎从下载器中接受到Response 并通过Spider 中间件发送给Spider 处理,。

7) Spider  处理Response 并返回爬取到的Item 给Item及(跟进的)新的Request给引擎。

8)引擎将(Spider 返回的) 爬取的Item 给Item Pipeline ,将(Spider 返回的) Request 给调度器

9) (从第二步) 重复直到调度器中没有更多的Request ,引擎关闭网站。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值