#怎么用excel取得股票实时数据#

股票数据查询(股票数据下载)

首要找一个供给股票数据的网站,各种财经网站都有股票数据,咱们以东方财富网为例:

沪深A股数据,咱们在谷歌浏览器中检查实在网址:

找到jQuery行,对应的便是股票数据,然后看头文件中的网址:

仿制这段网址,到Excel中,数据==> 自网站:

点击去确认,就会翻开Power Query编辑器,假如一切顺畅,会直接呈现数据:

尽管不是表格,但证明是抓取成功了,接下来便是怎样解析这个二进制文件,从谷歌浏览器中看,这是个jsoncallback数据包,比json数据多了一个函数称号,咱们仅仅需求提取两个括号中心的数据就能用json解析。留意total:4440,等下咱们会用到这个数值。

=Json.Document(Text.BetweenDelimiters(Text.FromBinary(Web.Contents(url)),"(",")"))

然后打开数据表:

目前为止一切到很顺畅,可是咱们抓取的仅仅其间一页的数据,咱们来看:

pn是页码,咱们抓取的是第3页,pz是每页20条数据,咱们有两种方法来抓取悉数数据,一种是沿袭这个pz:20,然后界说函数,抓取悉数页码,这个我在之前的抓取中重复用到,今日咱们来测验直接修正pz一次抓取悉数数据,其实查询参数都能够试着改动一下,假如咱们把pn改成4,抓取的便是第4页的20条,相同道理,咱们来修正pn为200,看看是不是直接就能抓取200条数据。

那么咱们试一下直接输入5000,可不能够悉数抓取:

看起来是能够的。

还有一个问题,便是数据的标题行悉数都是f最初的没有可读性,怎么变成网页中的汉字标题行。

这个问题要略微杂乱一点,咱们或许要去检查下代码,看看能不能找到替换的方法,首要看html中的:

可是这个不全,其间有几列是需求自界说的:

这几个目标没有对应的f编码。

咱们再看看js文件:

这个文件中有对应数据,咱们直接仿制出来到Power Query中,处理成列表方式备用:

接下便是匹配表中的key,修正列称号:

首要咱们需求匹配出这样一个列表。

List.RemoveNulls(List.Zip(List.Transform(Table.ColumnNames(data),(x)=>List.RemoveNulls(List.Transform({1..List.Count(n[key])},(y)=>if x=n[key]{y-1} then {x,n[title]{y-1}} else null)))){0})

然后咱们直接运用Table.RenameColumns函数就能够批量修正列称号了:

Table.RenameColumns(data,List.RemoveNulls(List.Zip(List.Transform(Table.ColumnNames(data),(x)=>List.RemoveNulls(List.Transform({1..List.Count(n[key])},(y)=>if x=n[key]{y-1} then {x,n[title]{y-1}} else null)))){0}))

咱们把数据加载到Excel中就能够了。

假如要最新数据,直接改写就能够了。