之前写了篇Python批量爬取网页数据的文章,后来发现Excel随着版本的迭代,已经完全支持多页面抓取数据了,不用撸代码,点点鼠标就能抓取数据,让我们一起看看吧~
网页解析
在抓取数据之前,先对网页进行一下解析,下图中是豆瓣TOP初始页面,拉到最底部可以发现一共有10个页面,每个页面25部电影,一共部电影。
我们依次获取前三个页面的网址可以发现它们之间的规律,每个网址除了中间的数字,其它地方都是一样的,数字从0/25/50,以25递增(每个页面的电影数),一共10个页面。
发现规律之后,我们将10个页面之间的数字存储在一张表中备用,下图A列所示,留存备用。
数据抓取
Excel及其以上版本内嵌了从Web批量抓取的功能(“数据”—“新建查询”—“从其它源”—“从Web”),案例演示的版本未达到,所以我下载了一个PowerBIDesktop(Excel延伸产品),免费安装免费使用,效果同Excel,不用担心不会使用,会用Excel就会操作。
打开PowerBIDesktop或者Excel,点击—(Excel及以上版本在“数据”—“新建查询”—“从其它源”—“从Web”)
界面设置:
点击高级之后,URL部分,点击“添加部件”,一共三个框,将豆瓣TOP首页网址以数字0为分隔,分成三段,分别放置于三个框内,如下图所示:
可以发现,在URL预览框内会自动显示完整的网址,点击确定,完成设置。
导航器界面
之后程序会进入抓取数据状态,稍等会儿,跳出“导航器”界面,左侧有一张表“表1”,勾选之后,右侧展示表明细数据,可以发现就是豆瓣TOP的首页面的25部电影;
一共有抓取了9个字段,包括序列号、电影名、评分、评价人次、电影简介等信息,有部分列是不需要的,我们进入PowerQuery界面进行删除,点击底部的“转换数据”进入PowerQuery界面。
PowerQuery数据编辑
进入PowerQuery界面之后,只保留序号、评分、电影名、评价人次四列,其余列皆做删除处理,删除之后,分别对四列数据进行重命名。动图展示如下:
设置自定义函数
依次点击—,在弹出的界面中,在字母“let”前输入以下代码:
(pasnumber)astable=
接着将第三行代码中的数字替换为,如下图所示:
(Number.ToText(p))
完成以上两步的设置后,点击“确定”,可以发现原先的表1变成了函数样式,fx表1,其中p是函数参数,控制页码,如输入25,即可获得TOP第二个页码电影列表的数据。
批量调用,批量抓取数据
接着点击—,选择第一步留存备用的Excel表格,导入之后,点击—,下拉功能查询选择,点击确定。
界面会弹出一个警告框,点击,勾选,点击之后,程序进入页面抓取阶段。
由于抓取页面较多,程序需要运行一段时间,十几秒之后,数据抓取完毕,一共十个页面,存储在10张表中,点击字段,勾选,TOP信息皆展示在表中。
此时数据还在PowerQuery中,点击—将数据加载到Excel当中,完成数据爬取。
小结
不会撸代码的我们,曾对数据爬取望而生畏,随着ExcelBI工具的丰富,数据抓取也将变得简单化,快去尝试下吧~
如果你没有安装高版本的Excel,不妨试着安装下PowerBIDesktop,十分方便,不用注册,打开就可以使用,应用商店Microsoftstore搜PowerBIDesktop下载即可。