excel抓取多页网页数据(如何用PowerBI批量采集多个网页的数据(图))

优采云 发布时间: 2021-09-29 16:13

  excel抓取多页网页数据(如何用PowerBI批量采集多个网页的数据(图))

  之前介绍PowerBI数据采集的时候,举了一个从网页中获取数据的例子,但是当时只爬取了一页数据。本文文章介绍了如何使用PowerBI为页面批量采集多个数据。(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。

  (如果页码变量不是最后一位,而是在中间,URL应该分三行输入)

  点击确定后,出来了很多表,

  

  从这里可以看出智联招聘网站上的每一个职位信息都是一个表格,不用管它,任意选择一个表格,比如勾选Table0,点击Edit进入Power Query编辑器。

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

  

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

  这里处理完第一页的数据后,再进行采集的其他页时,排序后的数据结构与第一页的数据结构相同。采集的数据可以直接使用;它不会在这里排序。没关系,你可以等到采集所有的网页数据整理在一起。

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

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

  这是最重要的一步。

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

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

  

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

  (Number.ToText(p))

  更改后,[Source] 的 URL 变为:

  ";sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p="&(Number.ToText(p)))),

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

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

  

  输入参数一次只能抓取一个网页。如果要批量抓取,则需要进行以下步骤。

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

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

  ={1..100}

  按 Enter 生成 1 到 100 的序列,然后将其转换为表格。gif操作图如下:

  

  然后调用自定义函数,

  

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

  

  点击确定开始批量抓取网页,因为100页数据比较大,需要5分钟左右。这也是我第二步预组织数据的结果,导致爬行速度变慢。展开这张表,就是这100页的数据,

  

  至此,100页兆联招聘信息批量抓取完成。上面的步骤好像很多。其实掌握之后,大概10分钟就可以搞定。最大块的时间仍然是最后一步。数据采集​​的过程相对耗时。

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

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

  当然,PowerBI 并不是专业的爬虫工具。如果网页比较复杂或者有反爬虫机制,还是要使用专业的工具,比如R或者Python。在使用PowerBI批量抓取某个网站的数据之前,先尝试一页采集。如果可以采集,那么就使用上面的步骤。如果 采集 没有到达,则不再有任何延迟。

  现在打开 PowerBI 或 Excel 并尝试抓取您感兴趣的 网站 数据。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线