在学习了这些基本的一些知识点之后,我们就能爬取一个简单的页面了,但是如果希望我们在一堆的数据和页面中查找我们想要的就很麻烦了,故我们需要好好学习一下scrapy框架
基本知识
scrapy实际就是scrath 和python的合称,使用了Twisted异步网络库来处理网络通讯
安装
安装可能需要用到的插件
(以下直接用pip install XXX 即可)
-
lxml 安装
lxml是一种使用 Python 编写的库,可以迅速、灵活地处理 XML -
setuptools 安装
setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况。
-
zope.inteface 安装
python支持多继承,但是不支持接口,zope.inteface是其三方的接口实现库 -
Twisted 安装
用Python实现的基于事件驱动的网络引擎框架 -
pyOpenSSL 安装
pyOpenSSL是Python的OpenSSL接口(具体可自行百度) -
win32py 安装
其功能为:
1.捕获窗口
2.模拟鼠标键盘动作
3.自动获取某路径下文件列表
4.PIL截屏功能 -
Scrapy 安装
后面详细介绍其功能
小组件
该部分参考了一位大神的博客
组件 | 作用 |
---|---|
引擎 | 用来处理整个系统的数据流处理,触发事务 |
调度器 | 用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回 |
下载器 | 用于下载网页内容,并将网页内容返回给蜘蛛。 |
蜘蛛 | 蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。 |
项目管道 | 负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据,当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。 |
调度中间件 | 介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。 |
下载器中间件 | 位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 |
蜘蛛中间件 | 介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。 |
介绍一下其运行流程:
- 引擎从调度器中取出一个链接(URL)用于接下来的抓取工作
- 引擎把URL封装成一个请求(Request)传给下载器
- 下载器把资源下载下来,并封装成应答包(Response)
再通过爬虫来解析Response - 解析出实体(Item),然后交给实体管道进行进一步的处理
- 解析出的是链接(URL),则把URL交给调度器等待抓取
第六篇关于scrapy基本框架的学习就到此结束啦!