抓取网页生成电子书(如何用PowerBI的PowerQuery批量采集多个网页的数据(图))

优采云 发布时间: 2022-04-19 01:39

  抓取网页生成电子书(如何用PowerBI的PowerQuery批量采集多个网页的数据(图))

  前面介绍PowerBI数据获取的时候,我举了一个从网页获取数据的例子,但是当时只爬取了一页数据。本篇文章将介绍如何使用PowerBI的Power Query批处理采集Data为多个网页。Excel 中的操作类似。磷

  本文以智联招聘网站为例,采集上海招聘信息。

  以下是详细步骤:

  (一)分析 URL 结构

  打开智联招聘网站,搜索上海工作地点的资料,

  

  将页面拉到最底部,找到显示页码的地方,点击前三页,网址如下,

  %e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=1

  %e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=2

  %e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=3

  可以看出,最后一个数字是页码的ID,是一个控制分页数据的变量。

  (二)使用 PowerBI采集第一页的数据

  打开PowerBI Desktop,从网页获取数据,在弹窗中选择【高级】,根据上面分析的URL结构,第一行输入除最后一页ID外的URL,第二行输入页码.

  

  从 URL 预览可以看出,上面两行的 URL 已经自动合并在一起了;这里的单独输入只是为了以后更清楚地区分页码变量,其实直接输入完整的URL也是可以的。

  (如果页码变量不是最后一位,而是在中间,则网址要分三行输入)

  点击OK后,发现很多表,

  

  从中可以看出智联招聘网站上的每个招聘信息都是一个表,不用管它,随便选一个表,比如勾选Table0,点击编辑进入Power Query编辑器。

  在PQ编辑器中,直接删除[source]后面的所有步骤,然后展开数据,删除前面几列的数据。

  

  这样第一页采集的数据就来了。然后整理这个页面的数据,删除无用的信息,添加字段名。可以看到,一页有60条招聘信息。

  在这里完成第一页的数据后,当你转到采集的其他页面时,数据结构将与第一页完成后的数据结构相同,采集的数据可以直接使用;没关系,你可以等到采集所有网页数据都排序在一起。

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

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

  这是最重要的一步。

  还是刚才第一页数据的PQ编辑器窗口,打开【高级编辑器】,在let之前输入:

  

  并且在let后面第一行的URL中,&后面的“1”变成了(这是第二步使用高级选项分两行输入URL的好处):

  修改后 [source] 的 URL 变为:

  确认后,刚才第一页数据的查询窗口变成了自定义函数的输入参数窗口,Table0表也变成了函数的样式。为了更直观,将此函数重命名为Data_Zhaopin。

  至此,自定义功能完成。p是函数的变量,用来控制页码。如果输入数字,例如 7,将捕获第 7 页的数据。

  

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

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

  首先,使用一个空查询来创建一个数字序列。如果要获取前 100 页数据,请创建一个从 1 到 100 的序列并输入空查询。

  回车生成一个从1到100的序列,然后变成表格。gif操作图如下:

  

  然后调用自定义函数,

  

  在弹出的窗口中,点击【函数查询】下拉框,选择刚刚创建的自定义函数Data_Zhaopin。

  单击“确定”开始批量抓取网页。因为100页数据比较多,大概需要5分钟。这也是我提前进行第二步数据排序的结果,导致爬取慢。展开这张表,就是这100页的数据,

  

  至此,已经完成了100页智联招聘信息的批量抓取。上面的步骤似乎很多。其实掌握之后,10分钟左右就可以搞定。最大的时间块仍然是最后一步。捕获数据的过程非常耗时。

  网页上的数据不断更新。完成以上步骤后,在PQ中点击刷新,即可随时一键提取网站实时数据。做一次,受益终生!

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

  当然,PowerBI 不是专业的爬虫工具。如果网页比较复杂或者有反爬机制,还是得使用专业的工具,比如R或者Python。在使用PowerBI批量抓取某个网站数据之前,先尝试采集一个页面,如果可以采集获取,则使用上述步骤,如果采集不行当您到达时,您无需再浪费时间。

  如果您是 Power BI 新手,可以前往微信公众号:“PowerBI 星球”,回复“PowerBI”,获取《PowerBI 七天入门》电子书,帮助您快速提高工作效率。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线