scrapy框架原理

scrapy

 

 

数据的流程

  1. scrapy初始的内容是添加在 spiders内部的, 它的初始的url的获取通过两种方式, 第一种就是: start_urls, 第二种就是: 函数 start_request()
  2. spiders会将url 传递并存储到sheduler中, scheduler就是一个存储url(Request)的队列.
  3. scheduler 中的url, 我们会获取这些url放到downloader中去下载页面. CONCURRENT_REQUESTS就是downloader中同时下载的页面的最大值.
  4. downloader在下载结束之后, 会将下载后的response返回给spiders.
  5. downloader 在下载之前会经过 download middware, 可以在这里添加1, headers, 2, 代理
  6. spiders在获取到response之后, 会解析这个response, 获取特定需要的信息并生成items, yield item
  7. 在spiders获取到response之后, 还有可能生成新的url, 就再次执行2.
  8. item会被传递到item pipeline中, item pipeline会执行后续的操作(可能是存储, 展示, 函数).

 

每一个部分的作用于他们的输入输出

1 spiders:

  1. url生成的地方
  2. 返回值解析的地方
  3. item生成

输入:

  1. start_urls , start_request
  2. response(downloader给的)

输出:

  1. request
  2. item

 

2 Scheduler

  1. 存储Request

输入:

url(Request)   输入的模块是:spiders, pipeline, downloader

输出:4

url (Request) 输出的模块只有downloader

 

3 Downloader

  1. 接受Request, 并下载这个Request
  2. 将response返回给spiders

输入:

Request, 来源是scheduler

输出:

response: 接收方spiders

request 接收方就是scheduler

 

4 itempipline

  1. 获取到item之后, 将它(存储, 展示, 其它)

输入:

item, spiders生成的

输出:

不确定, (数据库, 文件, 其它)

Request, 给scheduler

 

5 downloader middlewares

  1. 当scheduler的request经过的时候, 此时还没下载页面, 我们可以对Request进行修改 process_request
  2. 当 downloader 下载页面结束的时候, 也会经过downloader middlewares 我们可以根据response的内容做一些处理 process_response
  3. 当下载的过程中出现了异常, 也会经过downloader middlewares, process_exception

 

6 spiders middlewares

  1. 当Reuqest从spider发给sheduler的时候, 会经过spiders middleware, 可以做的操作是过滤Request, 去重等
  2. 当downloader 返回response的时候, 也能经过spiders middlewares, 这里一样是可以做一些根据返回值的过滤操作.

回顾之前的scrapy

数据的流程

  1. scrapy初始的内容是添加在 spiders内部的, 它的初始的url的获取通过两种方式, 第一种就是: start_urls, 第二种就是: 函数 start_request()
  2. spiders会将url 传递并存储到sheduler中, scheduler就是一个存储url(Request)的队列.
  3. scheduler 中的url, 我们会获取这些url放到downloader中去下载页面. CONCURRENT_REQUESTS就是downloader中同时下载的页面的最大值.
  4. downloader在下载结束之后, 会将下载后的response返回给spiders.
  5. downloader 在下载之前会经过 download middware, 可以在这里添加1, headers, 2, 代理
  6. spiders在获取到response之后, 会解析这个response, 获取特定需要的信息并生成items, yield item
  7. 在spiders获取到response之后, 还有可能生成新的url, 就再次执行2.
  8. item会被传递到item pipeline中, item pipeline会执行后续的操作(可能是存储, 展示, 函数).

 

每一个部分的作用于他们的输入输出

1 spiders:

  1. url生成的地方
  2. 返回值解析的地方
  3. item生成

输入:

  1. start_urls , start_request
  2. response(downloader给的)

输出:

  1. request
  2. item

 

2 Scheduler

  1. 存储Request

输入:

url(Request)   输入的模块是:spiders, pipeline, downloader

输出:4

url (Request) 输出的模块只有downloader

 

3 Downloader

  1. 接受Request, 并下载这个Request
  2. 将response返回给spiders

输入:

Request, 来源是scheduler

输出:

response: 接收方spiders

request 接收方就是scheduler

 

4 itempipline

  1. 获取到item之后, 将它(存储, 展示, 其它)

输入:

item, spiders生成的

输出:

不确定, (数据库, 文件, 其它)

Request, 给scheduler

 

5 downloader middlewares

  1. 当scheduler的request经过的时候, 此时还没下载页面, 我们可以对Request进行修改 process_request
  2. 当 downloader 下载页面结束的时候, 也会经过downloader middlewares 我们可以根据response的内容做一些处理 process_response
  3. 当下载的过程中出现了异常, 也会经过downloader middlewares, process_exception

 

6 spiders middlewares

  1. 当Reuqest从spider发给sheduler的时候, 会经过spiders middleware, 可以做的操作是过滤Request, 去重等
  2. 当downloader 返回response的时候, 也能经过spiders middlewares, 这里一样是可以做一些根据返回值的过滤操作.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值