akshare 1.16.30__py3-none-any.whl → 1.16.31__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
akshare/__init__.py CHANGED
@@ -3039,9 +3039,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3039
3039
  1.16.28 fix: fix futures_global_hist_em interface
3040
3040
  1.16.29 fix: fix futures_global_hist_em interface
3041
3041
  1.16.30 add: add forex_hist_em interface
3042
+ 1.16.31 add: add index_global_hist_em interface
3042
3043
  """
3043
3044
 
3044
- __version__ = "1.16.30"
3045
+ __version__ = "1.16.31"
3045
3046
  __author__ = "AKFamily"
3046
3047
 
3047
3048
  import sys
@@ -3063,6 +3064,16 @@ if sys.version_info < (3, 9):
3063
3064
 
3064
3065
  del sys
3065
3066
 
3067
+ """
3068
+ 新浪财经-行情中心-环球市场
3069
+ """
3070
+ from akshare.index.index_global_sina import index_global_hist_sina, index_global_name_table
3071
+
3072
+ """
3073
+ 东方财富网-行情中心-全球指数
3074
+ """
3075
+ from akshare.index.index_global_em import index_global_hist_em, index_global_spot_em
3076
+
3066
3077
  """
3067
3078
  东方财富网-行情中心-外汇市场-所有汇率
3068
3079
  """
akshare/index/cons.py CHANGED
@@ -4,9 +4,11 @@
4
4
  Date: 2021/5/27 20:19
5
5
  Desc: 指数配置文件
6
6
  """
7
+
7
8
  # weibo-user-agent
8
9
  index_weibo_headers = {
9
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
10
+ "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) "
11
+ "AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",
10
12
  "Referer": "http://data.weibo.com/index/newindex",
11
13
  "Accept": "application/json",
12
14
  "Origin": "https://data.weibo.com",
@@ -24,7 +26,8 @@ sw_cons_headers = {
24
26
  "Host": "www.swsindex.com",
25
27
  "Origin": "http://www.swsindex.com",
26
28
  "Referer": "http://www.swsindex.com/idx0210.aspx?swindexcode=801010",
27
- 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
29
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
30
+ "Chrome/78.0.3904.108 Safari/537.36",
28
31
  "X-AjaxPro-Method": "ReturnContent",
29
32
  }
30
33
 
@@ -36,7 +39,10 @@ sw_payload = {
36
39
  "tablename": "swzs",
37
40
  "key": "L1",
38
41
  "p": "1",
39
- "where": "L1 in('801010','801020','801030','801040','801050','801080','801110','801120','801130','801140','801150','801160','801170','801180','801200','801210','801230','801710','801720','801730','801740','801750','801760','801770','801780','801790','801880','801890','801950','801960','801970','801980')",
42
+ "where": "L1 in('801010','801020','801030','801040','801050','801080','801110','801120','801130',"
43
+ "'801140','801150','801160','801170','801180','801200','801210','801230','801710','801720',"
44
+ "'801730','801740','801750','801760','801770','801780','801790','801880','801890','801950',"
45
+ "'801960','801970','801980')",
40
46
  "orderby": "",
41
47
  "fieldlist": "L1,L2,L3,L4,L5,L6,L7,L8,L11",
42
48
  "pagecount": "28",
@@ -45,47 +51,145 @@ sw_payload = {
45
51
 
46
52
  # sw-headers
47
53
  sw_headers = {
48
- 'Accept': 'application/json, text/javascript, */*',
49
- 'Accept-Encoding': 'gzip, deflate',
50
- 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
51
- 'Cache-Control': 'no-cache',
52
- 'Content-Type': 'application/x-www-form-urlencoded',
53
- 'DNT': '1',
54
- 'Host': 'www.swsindex.com',
55
- 'Origin': 'http://www.swsindex.com',
56
- 'Pragma': 'no-cache',
57
- 'Referer': 'http://www.swsindex.com/idx0120.aspx?columnid=8832',
58
- 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
59
- 'X-Requested-With': 'XMLHttpRequest'
54
+ "Accept": "application/json, text/javascript, */*",
55
+ "Accept-Encoding": "gzip, deflate",
56
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
57
+ "Cache-Control": "no-cache",
58
+ "Content-Type": "application/x-www-form-urlencoded",
59
+ "DNT": "1",
60
+ "Host": "www.swsindex.com",
61
+ "Origin": "http://www.swsindex.com",
62
+ "Pragma": "no-cache",
63
+ "Referer": "http://www.swsindex.com/idx0120.aspx?columnid=8832",
64
+ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
65
+ "Chrome/74.0.3729.169 Safari/537.36",
66
+ "X-Requested-With": "XMLHttpRequest",
60
67
  }
61
68
 
62
69
  # zh-sina-a
63
- zh_sina_index_stock_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeDataSimple"
70
+ zh_sina_index_stock_url = (
71
+ "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/"
72
+ "Market_Center.getHQNodeDataSimple"
73
+ )
64
74
  zh_sina_index_stock_payload = {
65
75
  "page": "1",
66
76
  "num": "80",
67
77
  "sort": "symbol",
68
78
  "asc": "1",
69
79
  "node": "hs_s",
70
- "_s_r_a": "page"
80
+ "_s_r_a": "page",
71
81
  }
72
- zh_sina_index_stock_count_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeStockCountSimple?node=hs_s"
73
- zh_sina_index_stock_hist_url = "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js"
82
+ zh_sina_index_stock_count_url = (
83
+ "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/"
84
+ "Market_Center.getHQNodeStockCountSimple?node=hs_s"
85
+ )
86
+ zh_sina_index_stock_hist_url = (
87
+ "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js"
88
+ )
74
89
 
75
90
  # investing
76
91
  short_headers = {
77
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36'
92
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
93
+ "Chrome/61.0.3163.91 Safari/537.36"
78
94
  }
79
95
 
80
96
  long_headers = {
81
- 'accept': 'text/plain, */*; q=0.01',
97
+ "accept": "text/plain, */*; q=0.01",
82
98
  # 'accept-encoding': 'gzip, deflate, br',
83
- 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
99
+ "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
84
100
  # 'cache-control': 'no-cache',
85
- 'content-length': '267',
86
- 'content-type': 'application/x-www-form-urlencoded',
87
- 'origin': 'https://cn.investing.com',
88
- 'referer': 'https://cn.investing.com/commodities/brent-oil-historical-data',
89
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36',
90
- 'x-requested-with': 'XMLHttpRequest',
101
+ "content-length": "267",
102
+ "content-type": "application/x-www-form-urlencoded",
103
+ "origin": "https://cn.investing.com",
104
+ "referer": "https://cn.investing.com/commodities/brent-oil-historical-data",
105
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
106
+ "Chrome/61.0.3163.91 Safari/537.36",
107
+ "x-requested-with": "XMLHttpRequest",
108
+ }
109
+
110
+ index_global_sina_symbol_map = {
111
+ # 欧洲股市
112
+ "英国富时100指数": "UKX",
113
+ "德国DAX 30种股价指数": "DAX",
114
+ "俄罗斯MICEX指数": "INDEXCF",
115
+ "法CAC40指数": "CAC",
116
+ "瑞士股票指数": "SWI20",
117
+ "富时意大利MIB指数": "FTSEMIB",
118
+ "荷兰AEX综合指数": "AEX",
119
+ "西班牙IBEX指数": "IBEX",
120
+ "欧洲Stoxx50指数": "SX5E",
121
+ # 美洲股市
122
+ "加拿大S&P/TSX综合指数": "GSPTSE",
123
+ "墨西哥BOLSA指数": "MXX",
124
+ "巴西BOVESPA股票指数": "IBOV",
125
+ # 亚洲股市
126
+ "中国台湾加权指数": "TWJQ",
127
+ "日经225指数": "NKY",
128
+ "首尔综合指数": "KOSPI",
129
+ "印度尼西亚雅加达综合指数": "JCI",
130
+ "印度孟买SENSEX指数": "SENSEX",
131
+ # 澳洲股市
132
+ "澳大利亚标准普尔200指数": "AS51",
133
+ "新西兰NZSE 50指数": "NZ250",
134
+ # 非洲股市
135
+ "埃及CASE 30指数": "CASE",
136
+ }
137
+
138
+ index_global_em_symbol_map = {
139
+ "波罗的海BDI指数": {"code": "BDI", "market": "100"},
140
+ "葡萄牙PSI20": {"code": "PSI20", "market": "100"},
141
+ "菲律宾马尼拉": {"code": "PSI", "market": "100"},
142
+ "泰国SET": {"code": "SET", "market": "100"},
143
+ "俄罗斯RTS": {"code": "RTS", "market": "100"},
144
+ "巴基斯坦卡拉奇": {"code": "KSE100", "market": "100"},
145
+ "越南胡志明": {"code": "VNINDEX", "market": "100"},
146
+ "红筹指数": {"code": "HSCCI", "market": "124"},
147
+ "印尼雅加达综合": {"code": "JKSE", "market": "100"},
148
+ "希腊雅典ASE": {"code": "ASE", "market": "100"},
149
+ "墨西哥BOLSA": {"code": "MXX", "market": "100"},
150
+ "挪威OSEBX": {"code": "OSEBX", "market": "100"},
151
+ "巴西BOVESPA": {"code": "BVSP", "market": "100"},
152
+ "波兰WIG": {"code": "WIG", "market": "100"},
153
+ "印度孟买SENSEX": {"code": "SENSEX", "market": "100"},
154
+ "布拉格指数": {"code": "PX", "market": "100"},
155
+ "荷兰AEX": {"code": "AEX", "market": "100"},
156
+ "冰岛ICEX": {"code": "ICEXI", "market": "100"},
157
+ "斯里兰卡科伦坡": {"code": "CSEALL", "market": "100"},
158
+ "富时新加坡海峡时报": {"code": "STI", "market": "100"},
159
+ "富时意大利MIB": {"code": "MIB", "market": "100"},
160
+ "路透CRB商品指数": {"code": "CRB", "market": "100"},
161
+ "比利时BFX": {"code": "BFX", "market": "100"},
162
+ "富时AIM全股": {"code": "AXX", "market": "100"},
163
+ "新西兰50": {"code": "NZ50", "market": "100"},
164
+ "上证指数": {"code": "000001", "market": "1"},
165
+ "国企指数": {"code": "HSCEI", "market": "100"},
166
+ "沪深300": {"code": "000300", "market": "1"},
167
+ "英国富时100": {"code": "FTSE", "market": "100"},
168
+ "中小100": {"code": "399005", "market": "0"},
169
+ "瑞士SMI": {"code": "SSMI", "market": "100"},
170
+ "西班牙IBEX35": {"code": "IBEX", "market": "100"},
171
+ "瑞典OMXSPI": {"code": "OMXSPI", "market": "100"},
172
+ "爱尔兰综合": {"code": "ISEQ", "market": "100"},
173
+ "韩国KOSPI": {"code": "KS11", "market": "100"},
174
+ "深证成指": {"code": "399001", "market": "0"},
175
+ "韩国KOSPI200": {"code": "KOSPI200", "market": "100"},
176
+ "芬兰赫尔辛基": {"code": "HEX", "market": "100"},
177
+ "恒生指数": {"code": "HSI", "market": "100"},
178
+ "欧洲斯托克50": {"code": "SX5E", "market": "100"},
179
+ "美元指数": {"code": "UDI", "market": "100"},
180
+ "法国CAC40": {"code": "FCHI", "market": "100"},
181
+ "台湾加权": {"code": "TWII", "market": "100"},
182
+ "英国富时250": {"code": "MCX", "market": "100"},
183
+ "富时马来西亚KLCI": {"code": "KLSE", "market": "100"},
184
+ "OMX哥本哈根20": {"code": "OMXC20", "market": "100"},
185
+ "道琼斯": {"code": "DJIA", "market": "100"},
186
+ "奥地利ATX": {"code": "ATX", "market": "100"},
187
+ "加拿大S&P/TSX": {"code": "TSX", "market": "100"},
188
+ "德国DAX30": {"code": "GDAXI", "market": "100"},
189
+ "创业板指": {"code": "399006", "market": "0"},
190
+ "澳大利亚普通股": {"code": "AORD", "market": "100"},
191
+ "标普500": {"code": "SPX", "market": "100"},
192
+ "澳大利亚标普200": {"code": "AS51", "market": "100"},
193
+ "日经225": {"code": "N225", "market": "100"},
194
+ "纳斯达克": {"code": "NDX", "market": "100"},
91
195
  }
@@ -0,0 +1,169 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ Date: 2025/3/7 17:00
5
+ Desc: 东方财富网-行情中心-全球指数
6
+ https://quote.eastmoney.com/center/gridlist.html#global_qtzs
7
+ """
8
+
9
+ import pandas as pd
10
+ import requests
11
+
12
+ from akshare.index.cons import index_global_em_symbol_map
13
+
14
+
15
+ def index_global_spot_em() -> pd.DataFrame:
16
+ """
17
+ 东方财富网-行情中心-全球指数-实时行情数据
18
+ https://quote.eastmoney.com/center/gridlist.html#global_qtzs
19
+ :return: 实时行情数据
20
+ :rtype: pandas.DataFrame
21
+ """
22
+ url = "https://push2.eastmoney.com/api/qt/clist/get"
23
+ params = {
24
+ "np": "2",
25
+ "fltt": "1",
26
+ "invt": "2",
27
+ "fs": "i:1.000001,i:0.399001,i:0.399005,i:0.399006,i:1.000300,i:100.HSI,i:100.HSCEI,i:124.HSCCI,"
28
+ "i:100.TWII,i:100.N225,i:100.KOSPI200,i:100.KS11,i:100.STI,i:100.SENSEX,i:100.KLSE,i:100.SET,"
29
+ "i:100.PSI,i:100.KSE100,i:100.VNINDEX,i:100.JKSE,i:100.CSEALL,i:100.SX5E,i:100.FTSE,i:100.MCX,"
30
+ "i:100.AXX,i:100.FCHI,i:100.GDAXI,i:100.RTS,i:100.IBEX,i:100.PSI20,i:100.OMXC20,i:100.BFX,"
31
+ "i:100.AEX,i:100.WIG,i:100.OMXSPI,i:100.SSMI,i:100.HEX,i:100.OSEBX,i:100.ATX,i:100.MIB,"
32
+ "i:100.ASE,i:100.ICEXI,i:100.PX,i:100.ISEQ,i:100.DJIA,i:100.SPX,i:100.NDX,i:100.TSX,"
33
+ "i:100.BVSP,i:100.MXX,i:100.AS51,i:100.AORD,i:100.NZ50,i:100.UDI,i:100.BDI,i:100.CRB",
34
+ "fields": "f12,f13,f14,f292,f1,f2,f4,f3,f152,f17,f18,f15,f16,f7,f124",
35
+ "fid": "f3",
36
+ "pn": "1",
37
+ "pz": "200",
38
+ "po": "1",
39
+ "dect": "1",
40
+ "ut": "fa5fd1943c7b386f172d6893dbfba10b",
41
+ "wbp2u": "|0|0|0|web",
42
+ "_": "1741340608118",
43
+ }
44
+ r = requests.get(url=url, params=params)
45
+ data_json = r.json()
46
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
47
+ temp_df.reset_index(inplace=True)
48
+ temp_df["index"] = temp_df["index"].astype(int) + 1
49
+ temp_df.rename(
50
+ columns={
51
+ "index": "序号",
52
+ "f12": "代码",
53
+ "f14": "名称",
54
+ "f17": "最新价",
55
+ "f4": "涨跌额",
56
+ "f3": "涨跌幅",
57
+ "f2": "开盘价",
58
+ "f15": "最高价",
59
+ "f16": "最低价",
60
+ "f18": "昨收价",
61
+ "f7": "振幅",
62
+ "f124": "最新行情时间",
63
+ },
64
+ inplace=True,
65
+ )
66
+ temp_df = temp_df[
67
+ [
68
+ "序号",
69
+ "代码",
70
+ "名称",
71
+ "最新价",
72
+ "涨跌额",
73
+ "涨跌幅",
74
+ "开盘价",
75
+ "最高价",
76
+ "最低价",
77
+ "昨收价",
78
+ "振幅",
79
+ "最新行情时间",
80
+ ]
81
+ ]
82
+ temp_df["最新行情时间"] = pd.to_datetime(
83
+ temp_df["最新行情时间"], unit="s", utc=True, errors="coerce"
84
+ ).dt.tz_convert("Asia/Shanghai")
85
+ temp_df["最新行情时间"] = temp_df["最新行情时间"].dt.strftime("%Y-%m-%d %H:%M:%S")
86
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce") / 100
87
+ temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce") / 100
88
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce") / 100
89
+ temp_df["开盘价"] = pd.to_numeric(temp_df["开盘价"], errors="coerce") / 100
90
+ temp_df["最高价"] = pd.to_numeric(temp_df["最高价"], errors="coerce") / 100
91
+ temp_df["最低价"] = pd.to_numeric(temp_df["最低价"], errors="coerce") / 100
92
+ temp_df["昨收价"] = pd.to_numeric(temp_df["昨收价"], errors="coerce") / 100
93
+ temp_df["振幅"] = pd.to_numeric(temp_df["振幅"], errors="coerce") / 100
94
+ return temp_df
95
+
96
+
97
+ def index_global_hist_em(symbol: str = "美元指数") -> pd.DataFrame:
98
+ """
99
+ 东方财富网-行情中心-全球指数-历史行情数据
100
+ https://quote.eastmoney.com/gb/zsUDI.html
101
+ :param symbol: 指数名称;可以通过 ak.index_global_spot_em() 获取
102
+ :type symbol: str
103
+ :return: 历史行情数据
104
+ :rtype: pandas.DataFrame
105
+ """
106
+ url = "https://push2his.eastmoney.com/api/qt/stock/kline/get"
107
+ params = {
108
+ "secid": f"{index_global_em_symbol_map[symbol]['market']}.{index_global_em_symbol_map[symbol]['code']}",
109
+ "klt": "101",
110
+ "fqt": "1",
111
+ "lmt": "50000",
112
+ "end": "20500000",
113
+ "iscca": "1",
114
+ "fields1": "f1,f2,f3,f4,f5,f6,f7,f8",
115
+ "fields2": "f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64",
116
+ "ut": "f057cbcbce2a86e2866ab8877db1d059",
117
+ "forcect": "1",
118
+ }
119
+ r = requests.get(url=url, params=params)
120
+ data_json = r.json()
121
+
122
+ temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]["klines"]])
123
+ temp_df["code"] = data_json["data"]["code"]
124
+ temp_df["name"] = data_json["data"]["name"]
125
+ temp_df.columns = [
126
+ "日期",
127
+ "今开",
128
+ "最新价",
129
+ "最高",
130
+ "最低",
131
+ "-",
132
+ "-",
133
+ "振幅",
134
+ "-",
135
+ "-",
136
+ "-",
137
+ "-",
138
+ "-",
139
+ "-",
140
+ "代码",
141
+ "名称",
142
+ ]
143
+ temp_df = temp_df[
144
+ [
145
+ "日期",
146
+ "代码",
147
+ "名称",
148
+ "今开",
149
+ "最新价",
150
+ "最高",
151
+ "最低",
152
+ "振幅",
153
+ ]
154
+ ]
155
+ temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
156
+ temp_df["今开"] = pd.to_numeric(temp_df["今开"], errors="coerce")
157
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
158
+ temp_df["最高"] = pd.to_numeric(temp_df["最高"], errors="coerce")
159
+ temp_df["最低"] = pd.to_numeric(temp_df["最低"], errors="coerce")
160
+ temp_df["振幅"] = pd.to_numeric(temp_df["振幅"], errors="coerce")
161
+ return temp_df
162
+
163
+
164
+ if __name__ == "__main__":
165
+ index_global_spot_em_df = index_global_spot_em()
166
+ print(index_global_spot_em_df)
167
+
168
+ index_global_hist_em_df = index_global_hist_em(symbol="美元指数")
169
+ print(index_global_hist_em_df)
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ Date: 2025/3/7 17:00
5
+ Desc: 新浪财经-行情中心-环球市场
6
+ https://finance.sina.com.cn/stock/globalindex/quotes/UKX
7
+ """
8
+
9
+ import pandas as pd
10
+ import requests
11
+
12
+ from akshare.index.cons import index_global_sina_symbol_map
13
+
14
+
15
+ def index_global_name_table() -> pd.DataFrame:
16
+ """
17
+ 新浪财经-行情中心-环球市场-名称代码映射表
18
+ https://finance.sina.com.cn/stock/globalindex/quotes/UKX
19
+ :return: 名称代码映射表
20
+ :rtype: pandas.DataFrame
21
+ """
22
+ temp_df = pd.DataFrame.from_dict(
23
+ index_global_sina_symbol_map, orient="index", columns=["代码"]
24
+ )
25
+ temp_df.index.name = "指数名称"
26
+ temp_df.reset_index(inplace=True)
27
+ return temp_df
28
+
29
+
30
+ def index_global_hist_sina(symbol: str = "OMX") -> pd.DataFrame:
31
+ """
32
+ 新浪财经-行情中心-环球市场-历史行情
33
+ https://finance.sina.com.cn/stock/globalindex/quotes/UKX
34
+ :param symbol: 指数名称;可以通过 ak.index_global_name_table() 获取
35
+ :type symbol: str
36
+ :return: 环球市场历史行情
37
+ :rtype: pandas.DataFrame
38
+ """
39
+ url = "https://gi.finance.sina.com.cn/hq/daily"
40
+ params = {
41
+ "symbol": index_global_sina_symbol_map[symbol],
42
+ "num": "10000",
43
+ }
44
+ r = requests.get(url=url, params=params)
45
+ data_json = r.json()
46
+ temp_df = pd.DataFrame(data_json["result"]["data"])
47
+ temp_df.rename(
48
+ columns={
49
+ "d": "date",
50
+ "o": "open",
51
+ "h": "high",
52
+ "l": "low",
53
+ "c": "close",
54
+ "v": "volume",
55
+ },
56
+ inplace=True,
57
+ )
58
+ temp_df = temp_df[
59
+ [
60
+ "date",
61
+ "open",
62
+ "high",
63
+ "low",
64
+ "close",
65
+ "volume",
66
+ ]
67
+ ]
68
+ temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
69
+ temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
70
+ temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
71
+ temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
72
+ temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
73
+ temp_df["volume"] = pd.to_numeric(temp_df["volume"], errors="coerce")
74
+ return temp_df
75
+
76
+
77
+ if __name__ == "__main__":
78
+ index_global_name_table_df = index_global_name_table()
79
+ print(index_global_name_table_df)
80
+
81
+ index_global_hist_sina_df = index_global_hist_sina(symbol="瑞士股票指数")
82
+ print(index_global_hist_sina_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.16.30
3
+ Version: 1.16.31
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -59,7 +59,7 @@ Dynamic: summary
59
59
  详情请关注【数据科学实战】公众号,查看更多课程信息!
60
60
 
61
61
  **广告推广**:期魔方是一款非常专业本地化期货量化终端,无需部署或搭建环境,可直接调用及时和历史数据做回测实盘,
62
- 支持开箱即用的机器学习训练,策略投研、回测均免费,详情请[访问期魔方官网](https://qmfquant.com)
62
+ 支持开箱即用的机器学习训练,策略投研、回测均免费,详情请[访问期魔方官网](https://qmfquant.com)
63
63
 
64
64
  ![AKShare Logo](https://github.com/akfamily/akshare/blob/main/assets/images/akshare_logo.jpg)
65
65
 
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=yyFyybj9VQj7GkQeYNwV8viJh4-w6cNxTuICIwFoJAc,189811
1
+ akshare/__init__.py,sha256=kVNyCNLstjadfqiy_rNRHeFtJaIkD-mKEq48yHPI27k,190135
2
2
  akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -154,13 +154,15 @@ akshare/fx/fx_quote_baidu.py,sha256=wEffLm-b5QiFsuE9KAsNPUsqDZ-JMQmfwOO9wOlex8E,
154
154
  akshare/hf/__init__.py,sha256=UefLnc-fLMPvh05YWo43n3058k7txmCEafhuz3hpsjg,82
155
155
  akshare/hf/hf_sp500.py,sha256=Ak8y_14CQtjeMCsuIP5JV4Od_RSAGEGriSg0PbcBmKQ,1206
156
156
  akshare/index/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
157
- akshare/index/cons.py,sha256=lo-NRP5x8XuNeiZEXBUc0Dy-Dbo29-uU8h6OYZVvfvg,3551
157
+ akshare/index/cons.py,sha256=sstxvhtdG3m2inIhE2geZZnHqNLXrK6GuhcqfI_zE6Q,7789
158
158
  akshare/index/index_cflp.py,sha256=iPn_0kePK74eScwC7rj0IhC-3w-kGQWtWlwsW-J0nbs,4422
159
159
  akshare/index/index_cni.py,sha256=qravLXiETWlegIMV_EIUTDbGQfdC2zsj4LykWzC8Lko,8563
160
160
  akshare/index/index_cons.py,sha256=exCYkXauu3u_liWS5Y0W89F19eSwt6gJmlBciM86txQ,7616
161
161
  akshare/index/index_cx.py,sha256=aAmsIKkswKFNOhAsW0QOhp-q6q1aFOSBtqcDaZhIh6A,16775
162
162
  akshare/index/index_drewry.py,sha256=BM7V6P8K4QUFQArsdaWRu5qJUZaCoyNz97_b8dmLeCw,2937
163
163
  akshare/index/index_eri.py,sha256=7X0KNDBntEkE_qSb2jb6IBv-S8PsevLFdxGT8nKT3W0,2111
164
+ akshare/index/index_global_em.py,sha256=bNSwv_zYyXn3eRQ4BU7IKXu7ENhSszH3RBv2F8yYePs,5992
165
+ akshare/index/index_global_sina.py,sha256=fFJeW-u6Jo1iiuRMVaGJaUZBUA6wUT0L0u6KT3vkJ4I,2494
164
166
  akshare/index/index_hog.py,sha256=kb867BVagt70_ycZMn22ks5Z9jlVbMiuTsvq5ygjeig,1657
165
167
  akshare/index/index_kq_fz.py,sha256=Y-cbxWLpRyGcFcMSDxZZQXdAuD85IuQH5xC2rhtGbRc,3395
166
168
  akshare/index/index_kq_ss.py,sha256=m4hAMNnzHk8JNAnKjkYYVeyG4zUC5zR5i0-u-OxmaGU,3333
@@ -386,8 +388,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
386
388
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
387
389
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
388
390
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
389
- akshare-1.16.30.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
390
- akshare-1.16.30.dist-info/METADATA,sha256=wNQp0vLs1f4cQ6hoS45VC7KdNDiyzqqz0sB7ISBcmyE,13650
391
- akshare-1.16.30.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
392
- akshare-1.16.30.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
393
- akshare-1.16.30.dist-info/RECORD,,
391
+ akshare-1.16.31.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
392
+ akshare-1.16.31.dist-info/METADATA,sha256=ZH8UN0jlkrmpO-Wbb5LAsG7vR5njmPAT8K56ZEeo-gE,13653
393
+ akshare-1.16.31.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
394
+ akshare-1.16.31.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
395
+ akshare-1.16.31.dist-info/RECORD,,