scrapy随便写

  在家无聊数日,消磨时间无非是打游戏扯淡。今日无事写点东西给自己看。

  做爬虫也有一段时间了,但是对于爬虫一直没有一个没有一个系统的整理和分析,今日来随便写点关于scrapy的东西。

  首先爬虫常用的模块有,requests,lxml,re等。对于基础的东西后边会写,这里先来分析一下scrapy这个框架,这也是实际爬虫工作中最常用的一个工具。

  关于scrapy框架其最初是为了页面抓取所涉及的,也可以应用在获取API所返回的数据或者通用网络爬虫。scrapy用途广泛,可以用于数据挖掘,监测和自动化测试。

  他利用Twisted异步网络库来处理网络通讯。入下图(一张用烂的scrapy框架结构图):

  

关于scrapy框架来说这张图就概括了他的业务流程和操作。

  1. engine(引擎)  引擎的作用就是用来处理整个系统的数据流,触发事务(框架核心)
  2. spider(爬虫)  爬虫也就是我们主要工作的地方,在这里我们给定他的抓取目标和相关规则
  3. scheduler(调度器)  用来接收引擎发过来的请求,压入队列,并在引擎再次请求的时候返回。简而言之调度器的用处就是存放队列,在这里我们可以完成对于消息的去重和顺序的设置。
  4. downloader(下载器)  下载器的作用就是下载页面内容,并将网页内容返回给spider(scrapy的下载器是建立在twisted这个搞笑的一部模型上的)
  5. pipeline(管道)  管道的作用主要负责处理爬虫从网页中抽取的实体,主要的功能就是持久化储存和对于数据的验证。(其中需要注意的是管道中最佳不要有大规模的计算和过多逻辑)
  6.  downloader middlewares(下载器中间件)  其位于scrapy引擎和下载器之间。主要是处理scrapy引擎与下载器之间的请求及相应。
  7. spider middlewares(爬虫中间件)  其位于scrapy引擎和爬虫之间,主要处理spider的响应输入和请求输出。
  8. scheduler middlewares(调度中间件)  位于scrapy引擎和调度之间,处理从scrapy引擎发送到调度的请求和相应的处理

关于scrapy工作流程:

  1. 引擎从调度器中取出一个链接url用于接下来的抓取
  2. 引擎把url封装成一个请求request传给下载器
  3. 下载器将请求内容下载并打包为一个response返回给爬虫
  4. 爬虫对返回的response进行解析和下一步操作的处理
  5. spider解析完全的实体部分item交给管道进行进一步的处理
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值