Scrapy框架解读
1. Scrapy组件
a. 主体部分
i. 引擎(Scrapy):处理整个系统的数据流处理,触发事务(框架核心)
ii. 调度器(Scheduler):
1) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回。
2) 类似一个URL的优先队列, 由它决定下一个要抓取的网址, 同时去除重复的网址
iii. 下载器(Downloader)
1) 用于下载网页内容, 并将网页内容返回给爬虫(spiders)
2) Scrapy下载器是建立在twisted这个高效的异步模型上的
iv. 爬虫(Spiders)
1) 爬虫从特定的网页中提取自己需要的信息, 即所谓的实体(Item)
2) 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
v. 项目管道(Pipeline)
1) 负责处理爬虫从网页中抽取的实体
2) 功能:持久化实体、验证实体的有效性、清除不需要的信息。
3) 当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
b. 中间件
i. 下载器中间件(Downloader Middlewares)
1) 介于Scrapy引擎和下载器之间的框架
2) 处理Scrapy引擎与下载器之间的请求及响应
ii. 爬虫中间件(Spider Middlewares)
1) 介于Scrapy引擎和爬虫之间的框架
2) 处理蜘蛛的响应输入和请求输出。
iii. 调度中间件(Scheduler Middewares)
1) 介于Scrapy引擎和调度之间的中间件
2) 从Scrapy引擎发送到调度的请求和响应。
2. 运行流程
a. 引擎从调度器中取出一个链接(URL)用于接下来的抓取
b. 引擎把URL封装成一个请求(Request)传给下载器
c. 下载器从Internet中把资源下载下来,并封装成应答包(Response)
d. 爬虫解析Response
i. 解析出实体(Item),则交给实体管道进行进一步的处理
ii. 解析出的是链接(URL),则把URL交给调度器等待抓取
Scrapy框架解读的更多相关文章
- scrapy框架解读--深入理解爬虫原理
scrapy框架结构图: 组成部分介绍: Scrapy Engine: 负责组件之间数据的流转,当某个动作发生时触发事件 Scheduler: 接收requests,并把他们入队,以便后续的调度 Do ...
- 解读Scrapy框架
Scrapy框架基础:Twsited Scrapy内部基于事件循环的机制实现爬虫的并发.原来: url_list = ['http://www.baidu.com','http://www.baidu ...
- Python爬虫Scrapy框架入门(2)
本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...
- Python爬虫Scrapy框架入门(1)
也许是很少接触python的原因,我觉得是Scrapy框架和以往Java框架很不一样:它真的是个框架. 从表层来看,与Java框架引入jar包.配置xml或.property文件不同,Scrapy的模 ...
- Scrapy框架使用—quotesbot 项目(学习记录一)
一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...
- Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解
这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...
- Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理
这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...
- python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)
操作环境:python3 在上一文中python爬虫scrapy框架--人工识别知乎登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前 ...
- 一个scrapy框架的爬虫(爬取京东图书)
我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...
随机推荐
- 使用反射机制将对象序列化Json
一 思路 获取对象的Class对象. 获取对象的属性数组, 迭代属性数据拼接属性名与属性值, 存入List. 将List转换为流库, 再将流库使用逗号分隔符转换为字符串, 去掉首尾的逗号 二 代码 p ...
- 第一届合天杯河北科技大学网络安全技术大赛 web6 writeup
- Python学习2——Python单行注释、整段注释使用方法
Python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的. python注释也有自己的规范,在文章中会介绍到. 注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被 ...
- pyqt 主程序运行中处理其他事件(多线程的一种代替方式)
一.实验环境 1.Windows7x64_SP1 2.Anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 4.通过Anacond ...
- Netty中的装饰者模式
装饰者的应用 所谓装饰者,说白了,目的就是对现有的对象进行增强,装饰者设计模式最大的优点就是,它在扩展类原有功能的基础上还避免的类爆炸的情况 Netty中的装饰者模式的应用 ByteBuf是netty ...
- Java EE.Servlet.会话管理
一次会话是从客户打开浏览器开始到关闭浏览器结束.记录会话信息的技术称为会话跟踪.常见的会话跟踪技术有Cookie.URL重写和隐藏表单域. 1.Cookie Cookie是一小块可以嵌入到HTTP请求 ...
- Ansible CMDB
Ansible CMDB CMDBAnsible-CMDB CMDB 文章目录 1. 简介 2. 安装 2.1. 1. 安装 ansible 2.2. 2. 下载并安装 ansible-cmdb 3. ...
- iView学习笔记(一):Table基本操作(包含前后端示例代码)
iView表格操作 1.前端准备工作 首先新建一个项目,然后引入iView插件,配置好router npm安装iView npm install iview --save cnpm install i ...
- Hadoop自学系列集(四) ---- Hadoop集群
久等了,近期公司比较忙,学习的时间都没有啊,到今日才有时间呢!!!好了,下面就跟着笔者开始配置Hadoop集群吧. hosts文件和SSH免密码登录配置好了之后,现在进入Hadoop安装目录,修改一些 ...
- 使用hexo中遇到的问题