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