一.网页结构与URL的规律
豆瓣电影的网址为https://movie.douban.com/top250 ,第一页的网址为https://movie.douban.com/top250?start=0&filter=;
powerbi从web网址获取数据一般需要确认网址规律,即:了解从哪里抓取,抓取的网页有哪些特点,是否有统一规律。
通过观察这个网址的首页,可以看出每个页面排布着25个电影,总共10页,分页展示250部电影。切换不同页时,只有网址中间的“start=0”在变化,每一页的URL中数字呈现等差数列变化。
二.构建爬虫函数
2.1.获取一页数据
首先用豆瓣电影第一页的数据,powerbi面板选择从Web获取数据,url先填写https://movie.douban.com/top250?start=0&filter= 。
接下来导航器中会直接提取出所获取的表格。
此时获取的数据表列明缺失,需要去power query中稍微处理下。
此时,网址第一页,25部电影就已经获取下来了,接下需要在此基础上,构建参数与函数。
2.2 构建参数与函数
在power query界面的参数管理下选择新建参数,构建一个页码参数。设置成从0开始的文本即可。
在power query界面刚才生成的一张表叫表1,现在修改表1的数据源,让其url链接包含页码参数。
选择高级,此时会将整个url拆分开,将中间页码部分替换成刚才新建的参数。
接下来需要选中表1,单击右键创建名为“Top电影提取”的函数。
构建完成后,在左侧会出现以下界面。
2.3 构建页码列表
在新建空查询下面,使用List.Numbers(0,10,25)创建一个list.
右键选项到表,将这个list转换成表格,接下来可以改个列明,重点注意需要将字段格式设置成文本。
接下来在这个表里面添加列,选择用查询添加列。
完成添加列之后如下所示。
可以看出,每个页码都查询出一个table,扩展查询到的表。
点击确定即可,最终就可以得到完整的250部电影列表了。
最后结果如下。