1、框架安装
如果使用python自带的pip工具安装,会很麻烦,所以这里采用了conda方式。在annocanda基础上进行安装,先进入命令行,直接敲命令即可:
conda install scrapy
需要注意的是,可能需要管理员权限。
2、框架的基本使用
这里我们使用scrapy官方推荐的网页进行实战熟悉框架
网址如下:
2.1 基本项目创建
创建一个简单的程序目录结果
scrapy startproject quotetuorial
进入到项目中,创建一个spider
cd quotetuorial
导入到pycharm就可以继续编写代码。
2.2 框架的基本结构
scrapy.cfg 项目部署文件
items.py 项目的Item文件
piplines.py 项目中的Piplines文件
settings.py 项目的配置文件
spiders 放置spider代码的目录
2.3 简单运行结果展示
先运行一下爬虫,会在控制台打印出一些调试和输出信息,用来告诉大家爬虫已经启动。
2.4 爬取数据
2.4.1 网页结构分析
查看一下网页结构,该网站是记录名人名言的网站,每一条名人名言分为内容,作者和标签三个部分,同时,底部还有下一页的链接。
所以,我们先对一个页面的所有列表内容进行爬取,爬取结束后再根据下一页的链接跳转到下一页继续爬取,一直往复直到全部信息爬取完毕。
查看名人名言的网页代码如下:
可以看出,每一条名人名言均包裹在quote的div当中,继续看一条名人名言代码:
很清晰和简单的网页结构,想获取text,author和tag都仅仅需要根据classname就可以了。
2.4.2 网页结构解析
接下来,我们就来在QuotesSpider中编写解析网页的代码:
在控制台输入:
scrapy crawl quotes
看到我们解析的第一页的名人名言已经出现在控制台
2.4.3 将信息存入item
接下来,我们需要把解析的名人名言保存到本地,这时候需要用到item类。
我们在items.py中加入item类
重新编写parse方法,将item引入到spider中:
运行爬虫,可以看到在控制台会打印爬虫爬取的信息。
2.4.4 分页处理
首先查看next超链接,发现url地址在href中,所以直接提取出来就可以了。
代码如下:
2.4.5 数据存储
网页解析部分全部完成之后,我们需要把解析的部分存储下来。
这里将会使用管道piplines.py类。
Item Pipline主要有以下典型应用:
清理HTML数据
验证爬取的数据合法性,检查Item是否包含了某些字段
查重并丢弃
将爬取结果保存到文件或者数据库中
每一个Item Pipline必须实现process_item方法,这个方法必须返回一个Item或者一个DropItem异常,被丢弃的Item将不会被后面的Item Pipline组件所继承。
TextPipeline类主要是对text中长度过长做了截取操作。
MongoPipeline主要将解析后的item存储到mongoDB。
mongoDB的下载看这里(http://dl.mongodb.org/dl/win32/x86_64)。
安装看这里(https://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html)
这里需要说明的是,crawler的settings是从获取mongoDB的配置项,所以我们需要在settings.py中添加配置项
这时就可以获取相应的配置了。但是pip类还无法使用,还是需要在settings.py中将两个pip进行配置,激活匹配pipline如下:
这里的300和400代表了pip的排序序号。
2.4.6 运行程序
执行命令,让程序运行
scrapy crawl quotes
执行结束,我们可以到mongoDB中查看结果。
3 尾
简单的scrapy就介绍到这里,如果想深入的学习该框架,可以查看其它的网络资源《Python爬虫开发与项目实战》(https://book.douban.com/subject/27061630/)本书有个缺点是使用的python2.7
领取专属 10元无门槛券
私享最新 技术干货