excel抓取网页动态数据(本文如下:找到目标网页打开阳光高考网站(图))

优采云 发布时间: 2022-03-06 12:26

  excel抓取网页动态数据(本文如下:找到目标网页打开阳光高考网站(图))

  我们日常使用PowerBI数据获取单个网页数据非常简单,但是批量获取网页数据相对麻烦。这里我们可以使用PowerBI的Power Query组件批量获取多个网页的数据。同样,也可以使用高版本Excel自带的Power Query来获取。

  本文以阳光高考网站为例,获取2019年全国普通高等学校名单。

  具体操作步骤如下:

  (一)找到登陆页面

  打开阳光高考网站,找到“2019年全国普通高等学校名单”网页。

  

  点击打开单个网页查看,如下:

  

  (二)分析URL结构

  这里选择前三个省份网址

  北京:

  天津:

  河北:

  可以看出只有URL中最后一个数字是变量,这里我们把它当作页面ID

  (三)采集第一页数据

  (北京的页面ID从“2”开始)

  打开PowerBI Desktop,通过“获取数据”中的“Web”选项获取数据,在“Web”界面中选择“基本”选项卡即可。

  

  这里我们在基本选项卡中输入目标网址

  (北京)

  

  获取数据源信息如下,这里只有第一个表是我们要的,勾选,然后点击右下角转换数据进行数据处理。

  

  入口页面如下:

  

  这样我们就简单地采集到第一页数据。然后整理这个页面的数据,删除无用的信息,添加字段名。完成后,后续采集其他页面的数据结构与第一页完成后的数据结构相同,采集的数据可以直接使用。

  如果要大量抓取网页数据,为了节省时间,可以不用对第一页的数据进行排序,直接进行下一步。

  我们不会在这里处理它。

  (四)根据页码参数设置自定义功能

  这是最重要的一步

  在当前数据的编辑器窗口中,打开【高级编辑器】,输入:

  (p作为数字)作为表=>

  并且在链接中,将网页的页码,也就是上面提到的“1、2”等数字修改为“&(Number.ToText(p))&”。

  

  改了之后就变成了:

  

  点击“完成”,刚才第一页数据的查询窗口变成了自定义函数的输入参数窗口,表格也变成了函数的样式。自定义函数完成,p是函数的变量,用来控制页码,输入一个数字,比如3,会抓取第三页的数据。

  

  输入参数一次只能抓取一个网页。批量爬取需要执行以下步骤。

  (五)批量调用自定义函数

  首先,使用一个空查询来创建一个数字序列。在这里,因为我们要从第 2 页到第 32 页获取数据,所以我们创建一个从 2 到 32 的序列并在空查询中输入:

  ={2..32}

  回车生成一个从1到100的序列,然后变成表格。

  

  然后调用自定义函数

  

  单击“确定”开始批量抓取网页。如果采集页数较多,不建议在获取第一个网页后立即进行数据排序,否则可能导致采集时间过长。

  这里我们展开表格,里面全是31页的数据。

  

  那么这里我们看看后续的数据排序和可视化。

  备注1:如果采集的网页数据不断更新,完成以上步骤后,在PQ中点击刷新,即可随时一键提取网站的实时数据,非常方便。.

  注2:以上主要使用PowerBI中的Power Query功能,可以在可以使用PQ功能的Excel中进行同样的操作。

  备注3:需要注意的是,并不是所有的网页数据都可以通过上述方法获得。在使用PowerBI批量捕获某个网站数据之前,先尝试一个采集页面。如果你可以采集 到达,然后使用上面的步骤。如果 采集 不可用,则需要考虑使用 Python 等爬虫处理。

  本文参考:PowerQuery批量抓取网页实战:分分钟抓取智联招聘数百页作业信息

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线