excel抓取多页网页数据(Excel中的Powerquery可以同样操作(一)(组图))

优采云 发布时间: 2021-12-20 00:03

  excel抓取多页网页数据(Excel中的Powerquery可以同样操作(一)(组图))

  之前介绍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。

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

  点击OK后,出来了很多表,

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

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

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

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

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

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

  这是最重要的一步。

  还是刚才第一页数据的PQ编辑器窗口,打开【高级编辑器】,在let前输入:(p as number) as table =>

  并将第一行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人工客服


线