实时抓取网页数据(本文如下:找到目标网页打开阳光高考网站(图))
优采云 发布时间: 2021-11-22 03:09实时抓取网页数据(本文如下:找到目标网页打开阳光高考网站(图))
我们日常对于单个网页数据的PowerBI数据使用非常简单,但是批量获取网页数据就比较麻烦了。这里我们可以使用PowerBI的Power Query组件批量获取多个网页的数据。同样,您也可以使用更高版本的 Excel 自带的 Power Query 来获取。
本文以阳光高考网站为例,获取2019年全国高校名单。
详细操作步骤如下:
(一)找到登陆页面
打开阳光高考网站,找到“2019年全国普通高等学校名单”网页。
点击单个网页查看,如下:
(二)解析URL结构
在这里选择前三个省份的网址
北京:
天津市:
河北市:
可以看出,只有URL的最后一个数字是一个变量,这里我们把它当作页码ID
(三)采集第一页数据
(这里的页面ID是北京的“2”开头)
打开PowerBI Desktop,通过“获取数据”中的“web”选项获取数据。在这里,选择“Web”界面中的“Basic”选项卡。
这里我们在基本选项卡中输入目标 URL
(北京)
获取数据源信息如下,这里只有第一个表是我们想要的,勾选,然后点击右下角转换数据进行数据处理。
进入页面如下:
这样我们就简单的采集去到第一页的数据。然后把这个页面的数据整理一下,删除无用的信息,加上字段名。排序后采集下面其他页面的数据结构和排序后第一页的数据结构相同,可以直接使用采集的数据。
如果要大量抓取网页数据,为了节省时间,可以不用整理第一页的数据,直接进入下一步。
我们不要在这里处理它。
(四) 根据页码参数设置自定义函数
这是最重要的一步
在当前数据的编辑器窗口,打开【高级编辑器】,在let前输入:
(p 作为数字) 作为表=>
并在链接中,将网页的页码,即上述“1,2”等数字修改为“&(Number.ToText(p))&”。
修改后就变成了:
点击“完成”,刚才第一页数据的查询窗口直接变成了自定义函数的输入参数窗口,表格也变成了函数的样式。自定义函数完成,p是函数的变量,用来控制页码,只要输入一个数字,比如3,就会抓取第三页的数据。
输入参数一次只能抓取一个网页。如果要批量抓取,则需要进行以下步骤。
(五)批量调用自定义函数
首先,使用空查询创建编号规则。在这里,因为我们要获取第2到32页的数据,所以我们创建了一个从2到32的序列,并在空查询中输入:
={2..32}
按 Enter 生成 1 到 100 的序列,然后将其转换为表格。
然后调用自定义函数
单击“确定”开始批量抓取网页。如果采集页数较多,不建议在获取第一个网页后立即整理数据,否则可能导致采集时间过长。
这里我们展开表格,就是所有31页的数据。
那么这里我们就来看看后续的数据排序和可视化。
备注1:如果采集的网页数据不断更新,完成上述步骤后,在PQ中点击刷新,可以随时一键提取网站的实时数据,即可以说是很方便了。
注2:以上主要使用PowerBI中的Power Query功能,在可以使用PQ功能的Excel中也可以进行同样的操作。
备注3:需要注意的是,并非所有网页数据都可以通过上述方法获取。在使用 PowerBI 批量捕获某个 网站 数据之前,请先尝试 采集 一页。如果你可以去采集,然后使用上面的步骤。如果采集不可用,则需要考虑使用Python进行爬虫处理。
本文参考:PowerQuery批量抓取网页实战:分分钟抓取上百页招聘信息为兆联招聘