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

优采云 发布时间: 2022-02-24 05:00

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

  之前介绍PowerBI数据获取的时候,我举了一个从网页获取数据的例子,但是当时只爬取了一页数据。本文章将介绍如何使用PowerBI批处理采集多个网页的数据。 (Excel中的Power查询也可以)

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

  以下是详细步骤:

  (一)分析网址结构

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

  将页面下拉到最底部,找到显示页码的地方,点击前三页,网址如下,%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,页码进入第二行,

  p>

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

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

  点击确定后,发现很多表格,

  由此可见智联招聘网站上的每个招聘信息都是一个表,不用管它,随便选一个表,比如勾选Table0,点击编辑进入Power Query编辑器.

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

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

  这里第一页的数据排序后,后面采集中其他页面的数据结构和第一页的数据结构一样,采集的数据@> 可以直接使用;这里不整理也没关系,可以等到采集所有网页数据整理到一起。

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

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

  这是最重要的一步。

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

  在让之前

  并且把let之后第一行URL中&后面的“1”改成(这是第二步使用高级选项分两行输入URL的好处):(Number.ToText(p ))

  p>

  修改后,[Source]的URL变为:";sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p="&(Number.ToText(p)))),

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

  自定义函数到这里就完成了,p是函数的变量,用来控制页码,输入一个数字,比如7,会抓取第7页的数据,

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

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

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

  ={1..100}

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

  然后调用自定义函数,

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

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

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

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

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

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线