爬虫|Scrapy框架应用——以武汉大学新闻网为例

文章目录2.4 修改.py以处理和存储数据 3 创建并编写爬虫文件4 运行爬虫程序,展示爬虫结果5 优化:设置随机User-Agent,提高代码的性能
【爬虫|Scrapy框架应用——以武汉大学新闻网为例】1 简介
是用纯实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛;使用者只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常方便 。
如上图所示,设置了清晰的爬取流程,其中需要手写的主要是(爬虫)和Item (管道) 。使用框架,初始配置十分关键,在项目配置的基础上,通过编写爬虫代码()和定义数据存储(Item )即可顺利地在框架中实现基础爬虫 。
下面以武汉大学新闻网为例,利用创建项目 。
2 创建并配置项目 2.1 新建项目文件作用
items.py
数据项定义文件
.py
项目管道文件
.py
项目设置文件
/
爬虫文件目录
.cfg
部署配置文件
2.2 修改.py文件
2.3 定义items.py文件中的数据项 2.3.1 武汉大学新闻网简介
武汉大学新闻网主页内包含武大要闻、媒体武大、专题报道、缤纷校园、珞珈人物、综合新闻等共17个专题,如下图所示 。
2.3.2 定义要爬取的数据项
我们希望爬取【武大要闻】专题中的标题、日期、点击数等数据,因此在items.py中定义title、date、click 。
2.4 修改.py以处理和存储数据
3 创建并编写爬虫文件
在文件夹下创建爬虫文件.py,爬虫代码写在该文件中 。
(1)观察网页源码可知,每一条新闻由一个li标签表示,在每个li标签中,包含3个div,其class分别为、、,代表标题、点击量、日期三个字段 。
(2)获取当前页面所有表示新闻内容的li:由于ul下的第一个li为数据字段,观察其class可知,表示新闻内容的li的class中均包含lineu字符串,因此我们可以在xpath中使用获取除字段以外的所有li标签 。
(3)对于获取的每个li,分别提取数据 。
a)其中标题和日期可以方便地获得,如下图所示
b)查看网页源码可知,点击量数据并非静态数据,而是通过异步加载得到的
c)在开发者工具中点击,可以发现一份数据
d)打开数据可以发现其中存储着对应的点击量
e)通过修改网址中的为单独的,可以得到其对应的点击量
f)通过上述观察,我们可以先获得,再根据对应数据地址获取点击量
(4)循环获取所有页面的数据