php如何抓取网页数据( PowerQuery简单获取中文函数帮助信息的方法,方法分享 )
优采云 发布时间: 2021-10-06 03:14php如何抓取网页数据(
PowerQuery简单获取中文函数帮助信息的方法,方法分享
)
曾经文章登陆天山社区的Power Query:
Power Query M 函数(1)--数据类型和数据结构
PowerQuery M 函数 2-计算方法和运算符
Power Query M 函数(3)--数据类型转换、元数据和错误处理
通过前三节的学习,相信大家对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历史数据网页爬取各城市过去一天的历史空气质量数据:
主页地址:
所需日均空气质量数据(以北京2014年1月为例):
网站链接:
北京&月=2014-01
使用Power Query抓取上述网页的目的是一次性批量抓取多个城市不同月份不同天数的历史空气质量数据。
爬取步骤如下:
1. 分析网站特点后发现,只要将city=后面的部分改成想要的城市名,month=后面的部分改成想要的月份号,不同的城市和可以打开不同的月份。每日历史数据页面下
2. 所以我们现在在Excel表格界面中建立一个收录城市名称和月份信息的表格,并将其添加到Power Query
3. 将【月份】字段转换为文本数据
4.在Power Query编辑器中添加自定义列,内容如下:
公式内容:
Web.Page(Web.Contents("
"&[城市]&"&month="&[月]))
5. 点击“Continue”,选择“Public”保存(数据量大,需要耐心等待,建议练习时只做两个城市的数据)
6. 在自定义字段中展开数据
7. 再次展开自定义字段中的相关字段(从日期到排名)
8. 关闭并上传
以上内容就是抓取网页信息的所有步骤。好,我们来看看爬取到的数据。
本文作者:李奇,天山社区专家,中国电子表格应用大会主席,签约天山智能/网易云课堂/经济管理之家等讲师,曾就职于IBM和德勤*敏*感*词*事务所,从事商业分析和数据分析咨询工作,擅长使用Excel制作商业智能报告。
天山学院推荐课程: