ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5819|回复: 4

[分享] 利用powery query获取不同页面的网页信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-27 15:02 | 显示全部楼层 |阅读模式
本帖最后由 function2046 于 2016-5-27 22:42 编辑

目标网页:http://quote.stockstar.com/stock/ranklist_a_3_1_1.html(网页结构是 http://quote.stockstar.com/stock/ranklist_a_3_1_第几个页面.html)我们需要获取该网站中的95个页面信息,每一个页面如下:
1.png



现在点击:
2.png
输入并点击确定:
3.png
点击这个:
4.png
会出现:
5.png
点击“编辑”,后出现这个,选择“高级编辑”:
6.png
出现这个:
7.png
原本的M语句:

let
    源 = Web.Page(Web.Contents("http://quote.stockstar.com/stock/ranklist_a_3_1_1.html")),
    Data0 = 源{0}[Data],
    更改的类型 = Table.TransformColumnTypes(Data0,{{"代码", type text}, {"简称", type text}, {"最新价", type text}, {"涨跌幅", type text}, {"涨跌额", type text}, {"5分钟涨幅", type text}, {"成交量(手)", type text}, {"成交额(万元)", type text}, {"换手率", type text}, {"振幅", type text}, {"量比", type text}, {"委比", type text}, {"市盈率", type text}, {"Column14", type text}, {"Column15", type text}, {"Column16", type text}})
in
    更改的类型


现在需要自定义一个获取网页的函数:
我们需要在原来的M语句上加上(必须是英文输入法下)
(page as number) as table=>


修改后的M:
(page as number)  as table=>
let
    源 = Web.Page(Web.Contents("http://quote.stockstar.com/stock/ranklist_a_3_1_"& Number.ToText(page) &".html")),
    Data0 = 源{0}[Data],
    更改的类型 = Table.TransformColumnTypes(Data0,{{"代码", type text}, {"简称", type text}, {"最新价", type text}, {"涨跌幅", type text}, {"涨跌额", type text}, {"5分钟涨幅", type text}, {"成交量(手)", type text}, {"成交额(万元)", type text}, {"换手率", type text}, {"振幅", type text}, {"量比", type text}, {"委比", type text}, {"市盈率", type text}, {"Column14", type text}, {"Column15", type text}, {"Column16", type text}})
in
    更改的类型


修改完成后,点击保存
8.png
名字改为:getdata
9.png
保存:
10.png
开一个空的查询表:
11.png
点击“高级编辑",输入{1..95}:
12.png
将其转为table:
13.png
点击“添加列"=>"添加自定义列",输入我们刚才自定义的函数getdata点击确定:
14.png
展开:
15.png
结果如下:
16.png
所有的页面就都全部获取了

也可以在空白的查询中的“高级编辑”中输入如下M语句,获取网页信息:
let
    查询1 = {1..95},
    转换为表 = Table.FromList(查询1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    已添加自定义 = Table.AddColumn(转换为表, "Custom", each getdata([Column1])),
    #"展开的“Custom”" = Table.ExpandTableColumn(已添加自定义, "Custom", {"代码", "简称", "最新价", "涨跌幅", "涨跌额", "5分钟涨幅", "成交量(手)", "成交额(万元)", "换手率", "振幅", "量比", "委比", "市盈率", "Column14", "Column15", "Column16"}, {"Custom.代码", "Custom.简称", "Custom.最新价", "Custom.涨跌幅", "Custom.涨跌额", "Custom.5分钟涨幅", "Custom.成交量(手)", "Custom.成交额(万元)", "Custom.换手率", "Custom.振幅", "Custom.量比", "Custom.委比", "Custom.市盈率", "Custom.Column14", "Custom.Column15", "Custom.Column16"})
in
    #"展开的“Custom”"

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-5-28 19:06 | 显示全部楼层
挺好的啊,支持分享

TA的精华主题

TA的得分主题

发表于 2016-6-3 23:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-2-20 21:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-2-21 10:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习啦,再看看
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-11 02:08 , Processed in 0.033464 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表