一、scrapy框架的使用

前面我们讲了pyspider 它可以快速的完成爬虫的编写 不过pyspider也有一些缺点 例如可配置化不高 异常处理能力有限
对于一些反爬虫程度非常强的网站 爬取显得力不从心

1. scrapy框架介绍

scrapy是一个基于Twisted 的异步处理框架 是纯python实现的爬虫框架 架构清晰 模块之间耦合度低 可拓展性极强
可以灵活完成各种需求 只需要定制开发几个模块 就可以轻松实现一个爬虫

1.1 架构介绍

可以分为如下几个部分

Engine 引擎 处理整个系统的数据流处理 触发事务 是整个框架的核心

item 项目 定义了爬取结果的数据结构 爬取的数据会被赋值成该Item对象

Scheduler 调度器 接受引擎发过来的请求并将其加入队列中 在引擎再次请求的时候 将请求提供给引擎

Download 下载器 下载网页内容 并将网页内容返回给蜘蛛

Spider 蜘蛛 其内定义了爬取的逻辑和网页解析规则 它主要负责解析响应 并生成提取结果和新的请求

item Pipline 项目管理 负责处理由蜘蛛从网页中抽取的项目 它的主要任务是清洗 验证 和存储数据

Downloader Middlewares 下载器中间件 位于引擎和下载器之间的钩子框架 主要处理引擎与下载器之间的请求和响应

Spider Middlewares 蜘蛛中间件 位于引擎和蜘蛛之间的钩子框架 主要处理蜘蛛输入的响应和输出结果以及引得请求

更多相关文章

  1. python 之 自制测试框架
  2. Appium基于Python APP自动化测试框架
  3. 如何从VS2015中实现Mono框架?
  4. Inotify: 高效、实时的Linux文件系统事件监控框架
  5. LNMP(Linux+Nginx+Mysql+PHP)环境下安装yaf框架并编写一个MVC例子
  6. Java数据持久层框架 MyBatis之API学习七(动态 SQL详解)
  7. Python3.6实现scrapy框架爬取数据并将数据插入MySQL与存入文档中
  8. mybatis框架的进一步封装
  9. Nutz框架学习之一连接sqlserver数据库进行登录操作

随机推荐

  1. 使用angularjs添加包含事件的新标记
  2. 使用倒计时进度条退出
  3. jQuery Slimbox没有正确请求文件
  4. 如何通过javascript显示隐藏的div?
  5. Javascript对象
  6. 在jQuery中使用css transform属性
  7. 根据用户时区显示当地时间 php+javascrip
  8. 从两个数组生成JSON
  9. 使用谷歌地图computeDistanceBetween获取
  10. ajax请求中URL和参数的编码问题