excel抓取网页数据(如何介绍M函数的应用方法?函数怎么做? )

优采云 发布时间: 2021-12-09 10:08

  excel抓取网页数据(如何介绍M函数的应用方法?函数怎么做?

)

  通过前三节的学习,相信大家对M函数的基础知识有了一定的了解。从本节开始,我们将通过实际案例逐步介绍M功能的应用方法。

  本节将介绍一个案例,让您使用Web.Page和Web.Contents函数从PM2.5历史数据网站中抓取不同城市、不同日期的历史空气质量相关数据。这种方式适用于在Power Query中输入URL可以直接获取所需数据的情况(这种情况是指网页地址中有可见表格数据的情况)。

  在进入正文之前,先介绍一个简单的获取中文函数帮助信息的方法,方法如下:

  1.在 Power Query 查询编辑器中创建一个新的空查询

  2.在编辑字段中输入=#shared

  

  3.点击“到表”

  4.通过过滤Name字段获取相关函数帮助信息

  Web.Page 和 Web.Contents 功能说明:

  1.Web.Page 函数:返回 HTML 文档的内容(分解为其组成结构),以及完整文档及其删除文本的表示

  表达式:Function(html as any) as table

  注:使用Web.Page函数获取网页HTML形式的相关信息,以表格形式返回结果

  2.Web.Contents 函数:以二进制形式返回从 url 下载的内容。可以提供可选的记录参数选项来指定其他属性。记录可以收录以下字段...(更多内容省略,详情请使用#shared查询)

  表达式:函数(url 为文本,可选选项为可空记录)asbinary

  注:支付Web.Contents网页地址后,Web.Contents函数可以以二进制数的形式返回网页中的信息

  这两个函数嵌套使用后,Web.Page(Web.Contents(URL))最终可以将网页中的信息以表格的形式呈现出来。操作逻辑是先使用Web.Contents函数获取指定URL中的二进制信息,然后使用Web.Page函数对二进制信息进行转换解析,最终得到我们能够理解的表格数据。

  在PM2.5历史数据网页爬取各城市过去一天的历史空气质量数据:

  

  主页地址:/historydata/

  所需日均空气质量数据(以北京2014年1月为例):

  

  网址:/historydata/daydata.php?city=Beijing&month=2014-01

  使用Power Query抓取上述网页的目的是一次性批量抓取多个城市不同月份不同天的历史空气质量数据。

  爬取步骤如下:

  1. 分析网站特点后发现,只要将city=后面的部分改成想要的城市名,month=后面的部分改成想要的月份号,不同的城市和可以打开不同的月份。下的每日历史数据页面

  2.所以我们现在在Excel表格界面中建立一个收录城市名称和月份信息的表格,并将其添加到Power Query

  

  3. 将【月份】字段转换为文本数据

  4.在Power Query编辑器中添加自定义列,内容如下:

  

  公式内容:

  Web.Page(Web.Contents("/historydata/daydata.php?city="&[City]&"&month="&[month]))

  5. 点击“Continue”,选择“Public”保存(数据量大,需要耐心等待,建议练习时只做两个城市的数据)

  

  6.在自定义字段中展开数据

  

  7.在自定义字段中再次展开相关字段(从日期到排名)

  

  8.关闭并上传

  以上内容就是抓取网页信息的所有步骤。好,我们来看看爬取到的数据。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线