zg手册 之 scrapy 开发(1)-- 介绍

关于本文档

近期的项目使用 scrapy 作为基本组件的分布式爬虫,在开发的过程中遇到了一些问题,总结记录下, 希望也能给刚接触 scrapy 的朋友一点帮助 ^_^

文档对应的 scrapy 版本:0.22.2

所有的资料方法都来自:

  1. 官方文档
  2. scrapy 源代码


scrapy 简介

scrapy 是使用python语言开发的网络爬虫框架。 具有下面几个特点:

  1. 设计简单,用户只需要简单定义数据提取规则,让scrapy完成抓取的工作,即可获取数据。
  2. 提供丰富的插件扩展机制
  3. 开源,100%用python编写(基于twisted框架)
  4. 官方文档比较详细


scrapy 主要组件

  1. scrapy engine, 控制整个爬虫的运行,请求调度,spider调用,下载调用,信号事件触发
  2. spider(蜘蛛), 用来解析页面的类,解析后创建新的请求,或者创建数据结果集合
  3. scheduler(调度器), 负责管理请求(来自spider),存入队列,执行时返回给 scrapy引擎
  4. Downloader(下载器),抓取页面并返回结果给spider
  5. Item pipeline(item管道), 处理网页中抽取的数据结果,进行清洗,校验,存储等操作
  6. Downloader middlewares(下载器中间件),下载器与spider之间的勾子,可以对请求和响应的数据进行操作
  7. extensions(扩展),在scrapy启动时初始化,提供增强的辅助功能


上面是我主要用到的一些组件,还有 spider middlerwares等没包含在内


scrapy 运行机制

  1. 引擎调用蜘蛛获取第一个要抓取的url, 存入调度器
  2. 引擎从调度器获取请求url(上面放入的url),
  3. 引擎传递请求 -> 下载中间件 -> 下载器
  4. 下载器下载页面,响应结果 -> 下载中间件 -> 引擎
  5. 引擎把响应结果交给蜘蛛处理
  6. 蜘蛛处理响应,创建结果Item和新的请求
  7. 结果item交给 item管道处理
  8. 新的请求存入调度器,重复上面的操作


本系列包含的主题

  1. 基本网页抓取(spider item pipeline)开发
  2. downloader middlewares 开发
  3. 解决执行 javascript 页面的抓取
  4. downloader(下载器)开发
  5. extensions(扩展)开发
  6. 了解 scheduler
  7. scrapy丰富的扩展,中间件了解
  8. 调试 scrapy,查看运行时内存对象
  9. 一切ok了,发布到 scrapyd 运行吧


原文链接: http://www.hopez.org/blog/9/1396032853

转载于:https://my.oschina.net/hopez/blog/214236

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值