Power BI “Web”体验功能,让小白无码爬取网络数据更轻松!
小勤:这个网站的数据怎么抓?我用Power Query试了一下,抓不下来……
网址:http://www.zjzwfw.gov.cn/zjzw/punish/frontpunish/showadmins.do?webId=48
大海:看起来是个挺标准的表啊,如果你用Power Query直接获取不到表的话,可能其中的结构有点儿特殊。我看看他们的源代码:
使用Chrome浏览器,在表的某个内容上单击右键,在弹出的菜单中单击“检查”按钮,如下图所示:
好嘛!每一行数据都是一个表(table),而且前后外面还嵌了n层table,也就是被包含在其他表里面,难怪你用Power Query不能直接找到,代码如下图所示:
小勤:那怎么办?
大海:用Power Query也是可以的,不过比较麻烦一点儿,一种方法是逐层展开数据,一直展开到你所需要的数据位置,然后再整理,不过整理起来可能会比较麻烦;第二种方法是直接爬取源代码,然后从源代码里提取需要的信息。
小勤:感觉都好复杂啊,而且没学过html语言,这些代码都看不懂……
大海:那咱们试试Power BI的新功能吧,这个应该会简单点:
Step 01因为我们要爬取多页的数据,所以首先识别出带页码的网站:保持查看源代码的窗口打开,在原页面上单击“首页”刷新数据,此时可以在检查源代码的“Network菜单/XHR”(不同网站相关信息可能在不同项目下)出现的刷新的结果,其中可以看到详细的请求链接,该链接中即带页码信息,复制该链接(http://www.zjzwfw.gov.cn/zjzw/punish/frontpunish/searchall_list.do?areacode=330501&xzcf_code=&pageNo=1&webid=48,不要realid及后面部分——能不要的都不要,自行测试看数据结果),如下图所示:
Step 02在选项里打开该新功能(目前是预览功能,也就是说供大家测试着用,不是默认打开的):
Step 03从网站获取数据,输入链接
Step 04单击“使用示例提取表”
Step 05复制粘贴(可以使用Ctrl+C和Ctrl+V快捷键)所需要的内容到下面的表中,当粘贴到第2行的项目时,Power BI将自动识别出你后续可能需要的数据,如下图所示:
Step 06粘贴完第2行后,所有结果将被识别出来,单击“确定”按钮即可:
Step 07进入Power Query编辑器可查看生成的步骤,如下图所示:
后续即可继续修改该生成的步骤代码,实现多个页面的批量数据爬取。具体方法可参考文章《PQ-M及函数:批量处理的利器——列表转换函数(List.Transform)及A股数据批量抓取方法》
小勤:这个真是太好用了,真是智能啊。
大海:我觉得以后微软还会继续强化这项功能的,我也很期待。呵呵。