Julia爬取沪深A股数据写入Excel

股票数据源自东方财富网。
代码如下:

using JSON
using XLSX
using HTTP
import Dates
import DataFrames

my_time = Dates.format(Dates.now(),"YYYYmmddHHMMSS")
r = HTTP.request("GET", "http://73.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152")
num = JSON.parse(String(r.body))["data"]["total"]
res = HTTP.request("GET","http://73.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=" * string(num) * "20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152")
data = JSON.parse(String(res.body))["data"]["diff"]
filename = "hushenAstock" * my_time * ".xlsx"

#股票名称
stock_name = []
#股票代码
stock_code = []
#最新价
buy = []
#跌涨幅
changepercent = []
#跌涨额
pricechange = []
#成交量
volume = []
#成交额
amount = []
#振幅
amplitude = []
#换手率
turnoverratio = []
#市盈率
pb = []
#量比
quantity_rr = []
#最高
high = []
#最低
low = []
#今开
open = []
#昨收
settlement = []
#市净率
per = []

for item in data
    push!(stock_name,item["f14"])
    push!(stock_code,item["f12"])
    push!(buy,item["f2"])
    temp_changepercent = item["f3"] == "-" ? "" : string(item["f3"],"%")
    push!(changepercent,temp_changepercent)
    push!(pricechange,item["f4"])
    push!(volume,item["f5"])
    push!(amount,item["f6"])
    temp_amplitude = item["f7"] == "-" ? "" : string(item["f7"],"%")
    push!(amplitude,temp_amplitude)
    temp_turnoverratio = item["f8"] == "-" ? "" : string(item["f8"],"%")
    push!(turnoverratio,temp_turnoverratio)
    push!(pb,item["f9"])
    push!(quantity_rr,item["f10"])
    push!(high,item["f15"])
    push!(low,item["f16"])
    push!(open,item["f17"])
    push!(settlement,item["f18"])
    push!(per,item["f23"])
end


df = DataFrames.DataFrame(股票名称 = stock_name, 股票代码 = stock_code, 最新价 = buy, 跌涨幅 = changepercent, 跌涨额 = pricechange, 成交量 = volume, 成交额 =amount, 振幅 = amplitude, 换手率 = turnoverratio, 市盈率 = pb, 量比 = quantity_rr, 最高 = high, 最低 = low, 今开 = open, 昨收 = settlement, 市净率 = per)
XLSX.writetable(filename, collect(DataFrames.eachcol(df)), DataFrames.names(df))

运行结果如下图所示:


juliastock.JPG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容