akshare 1.16.17__py3-none-any.whl → 1.16.19__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 +3 -1
- akshare/stock/stock_board_concept_em.py +59 -9
- akshare/stock/stock_board_industry_em.py +107 -7
- akshare/stock_fundamental/stock_profit_forecast_ths.py +81 -39
- {akshare-1.16.17.dist-info → akshare-1.16.19.dist-info}/METADATA +3 -2
- {akshare-1.16.17.dist-info → akshare-1.16.19.dist-info}/RECORD +9 -9
- {akshare-1.16.17.dist-info → akshare-1.16.19.dist-info}/LICENSE +0 -0
- {akshare-1.16.17.dist-info → akshare-1.16.19.dist-info}/WHEEL +0 -0
- {akshare-1.16.17.dist-info → akshare-1.16.19.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3026,9 +3026,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3026
3026
|
1.16.15 fix: fix stock_board_concept_name_em interface
|
3027
3027
|
1.16.16 fix: fix stock_board_concept_spot_em interface
|
3028
3028
|
1.16.17 fix: fix stock_research_report_em interface
|
3029
|
+
1.16.18 fix: fix stock_board_concept_spot_em interface
|
3030
|
+
1.16.19 fix: fix stock_profit_forecast_ths interface
|
3029
3031
|
"""
|
3030
3032
|
|
3031
|
-
__version__ = "1.16.
|
3033
|
+
__version__ = "1.16.19"
|
3032
3034
|
__author__ = "AKFamily"
|
3033
3035
|
|
3034
3036
|
import sys
|
@@ -1,11 +1,12 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date: 2025/2/
|
4
|
+
Date: 2025/2/28 16:30
|
5
5
|
Desc: 东方财富-沪深板块-概念板块
|
6
6
|
https://quote.eastmoney.com/center/boardlist.html#concept_board
|
7
7
|
"""
|
8
8
|
|
9
|
+
import re
|
9
10
|
from functools import lru_cache
|
10
11
|
|
11
12
|
import pandas as pd
|
@@ -13,7 +14,7 @@ import requests
|
|
13
14
|
|
14
15
|
|
15
16
|
@lru_cache()
|
16
|
-
def
|
17
|
+
def __stock_board_concept_name_em() -> pd.DataFrame:
|
17
18
|
"""
|
18
19
|
东方财富网-行情中心-沪深京板块-概念板块-名称
|
19
20
|
https://quote.eastmoney.com/center/boardlist.html#concept_board
|
@@ -97,11 +98,11 @@ def stock_board_concept_name_em() -> pd.DataFrame:
|
|
97
98
|
return temp_df
|
98
99
|
|
99
100
|
|
100
|
-
def
|
101
|
+
def stock_board_concept_name_em() -> pd.DataFrame:
|
101
102
|
"""
|
102
|
-
|
103
|
+
东方财富网-行情中心-沪深京板块-概念板块-名称
|
103
104
|
https://quote.eastmoney.com/center/boardlist.html#concept_board
|
104
|
-
:return:
|
105
|
+
:return: 概念板块-名称
|
105
106
|
:rtype: pandas.DataFrame
|
106
107
|
"""
|
107
108
|
url = "https://79.push2.eastmoney.com/api/qt/clist/get"
|
@@ -181,6 +182,55 @@ def stock_board_concept_spot_em() -> pd.DataFrame:
|
|
181
182
|
return temp_df
|
182
183
|
|
183
184
|
|
185
|
+
def stock_board_concept_spot_em(symbol: str = "可燃冰") -> pd.DataFrame:
|
186
|
+
"""
|
187
|
+
东方财富网-行情中心-沪深京板块-概念板块-实时行情
|
188
|
+
https://quote.eastmoney.com/bk/90.BK0818.html
|
189
|
+
:return: 概念板块-实时行情
|
190
|
+
:rtype: pandas.DataFrame
|
191
|
+
"""
|
192
|
+
url = "https://91.push2.eastmoney.com/api/qt/stock/get"
|
193
|
+
field_map = {
|
194
|
+
"f43": "最新",
|
195
|
+
"f44": "最高",
|
196
|
+
"f45": "最低",
|
197
|
+
"f46": "开盘",
|
198
|
+
"f47": "成交量",
|
199
|
+
"f48": "成交额",
|
200
|
+
"f170": "涨跌幅",
|
201
|
+
"f171": "振幅",
|
202
|
+
"f168": "换手率",
|
203
|
+
"f169": "涨跌额",
|
204
|
+
}
|
205
|
+
|
206
|
+
if re.match(pattern=r"^BK\d+", string=symbol):
|
207
|
+
em_code = symbol
|
208
|
+
else:
|
209
|
+
industry_listing = __stock_board_concept_name_em()
|
210
|
+
em_code = industry_listing.query("板块名称 == @symbol")["板块代码"].values[0]
|
211
|
+
params = dict(
|
212
|
+
fields=",".join(field_map.keys()),
|
213
|
+
mpi="1000",
|
214
|
+
invt="2",
|
215
|
+
fltt="1",
|
216
|
+
secid=f"90.{em_code}",
|
217
|
+
ut="fa5fd1943c7b386f172d6893dbfba10b",
|
218
|
+
)
|
219
|
+
r = requests.get(url, params=params)
|
220
|
+
data_dict = r.json()
|
221
|
+
result = pd.DataFrame.from_dict(data_dict["data"], orient="index")
|
222
|
+
result.rename(field_map, inplace=True)
|
223
|
+
result.reset_index(inplace=True)
|
224
|
+
result.columns = ["item", "value"]
|
225
|
+
result["value"] = pd.to_numeric(result["value"], errors="coerce")
|
226
|
+
|
227
|
+
# 各项转换成正常单位. 除了成交量与成交额, 原始数据中已是正常单位(元)
|
228
|
+
result["value"] = result["value"] * 1e-2
|
229
|
+
result.iloc[4, 1] = result.iloc[4, 1] * 1e2
|
230
|
+
result.iloc[5, 1] = result.iloc[5, 1] * 1e2
|
231
|
+
return result
|
232
|
+
|
233
|
+
|
184
234
|
def stock_board_concept_hist_em(
|
185
235
|
symbol: str = "绿色电力",
|
186
236
|
period: str = "daily",
|
@@ -209,7 +259,7 @@ def stock_board_concept_hist_em(
|
|
209
259
|
"weekly": "102",
|
210
260
|
"monthly": "103",
|
211
261
|
}
|
212
|
-
stock_board_concept_em_map =
|
262
|
+
stock_board_concept_em_map = __stock_board_concept_name_em()
|
213
263
|
stock_board_code = stock_board_concept_em_map[
|
214
264
|
stock_board_concept_em_map["板块名称"] == symbol
|
215
265
|
]["板块代码"].values[0]
|
@@ -285,7 +335,7 @@ def stock_board_concept_hist_min_em(
|
|
285
335
|
:return: 分时历史行情
|
286
336
|
:rtype: pandas.DataFrame
|
287
337
|
"""
|
288
|
-
stock_board_concept_em_map =
|
338
|
+
stock_board_concept_em_map = __stock_board_concept_name_em()
|
289
339
|
stock_board_code = stock_board_concept_em_map[
|
290
340
|
stock_board_concept_em_map["板块名称"] == symbol
|
291
341
|
]["板块代码"].values[0]
|
@@ -391,7 +441,7 @@ def stock_board_concept_cons_em(symbol: str = "融资融券") -> pd.DataFrame:
|
|
391
441
|
:return: 板块成份
|
392
442
|
:rtype: pandas.DataFrame
|
393
443
|
"""
|
394
|
-
stock_board_concept_em_map =
|
444
|
+
stock_board_concept_em_map = __stock_board_concept_name_em()
|
395
445
|
stock_board_code = stock_board_concept_em_map[
|
396
446
|
stock_board_concept_em_map["板块名称"] == symbol
|
397
447
|
]["板块代码"].values[0]
|
@@ -490,7 +540,7 @@ if __name__ == "__main__":
|
|
490
540
|
stock_board_concept_em_df = stock_board_concept_name_em()
|
491
541
|
print(stock_board_concept_em_df)
|
492
542
|
|
493
|
-
stock_board_concept_spot_em_df = stock_board_concept_spot_em()
|
543
|
+
stock_board_concept_spot_em_df = stock_board_concept_spot_em(symbol="可燃冰")
|
494
544
|
print(stock_board_concept_spot_em_df)
|
495
545
|
|
496
546
|
stock_board_concept_hist_em_df = stock_board_concept_hist_em(
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date: 2025/2/28
|
4
|
+
Date: 2025/2/28 16:30
|
5
5
|
Desc: 东方财富-沪深板块-行业板块
|
6
6
|
https://quote.eastmoney.com/center/boardlist.html#industry_board
|
7
7
|
"""
|
@@ -14,6 +14,107 @@ import requests
|
|
14
14
|
|
15
15
|
|
16
16
|
@lru_cache()
|
17
|
+
def __stock_board_industry_name_em() -> pd.DataFrame:
|
18
|
+
"""
|
19
|
+
东方财富网-沪深板块-行业板块-名称
|
20
|
+
https://quote.eastmoney.com/center/boardlist.html#industry_board
|
21
|
+
:return: 行业板块-名称
|
22
|
+
:rtype: pandas.DataFrame
|
23
|
+
"""
|
24
|
+
url = "https://17.push2.eastmoney.com/api/qt/clist/get"
|
25
|
+
params = {
|
26
|
+
"pn": "1",
|
27
|
+
"pz": "50000",
|
28
|
+
"po": "1",
|
29
|
+
"np": "2",
|
30
|
+
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
31
|
+
"fltt": "2",
|
32
|
+
"invt": "2",
|
33
|
+
"fid": "f3",
|
34
|
+
"fs": "m:90 t:2 f:!50",
|
35
|
+
"fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,"
|
36
|
+
"f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152,f124,f107,f104,f105,"
|
37
|
+
"f140,f141,f207,f208,f209,f222",
|
38
|
+
"_": "1626075887768",
|
39
|
+
}
|
40
|
+
r = requests.get(url, params=params)
|
41
|
+
data_json = r.json()
|
42
|
+
temp_df = pd.DataFrame(data_json["data"]["diff"]).T
|
43
|
+
temp_df.reset_index(inplace=True)
|
44
|
+
temp_df["index"] = temp_df.index + 1
|
45
|
+
temp_df.columns = [
|
46
|
+
"排名",
|
47
|
+
"-",
|
48
|
+
"最新价",
|
49
|
+
"涨跌幅",
|
50
|
+
"涨跌额",
|
51
|
+
"-",
|
52
|
+
"_",
|
53
|
+
"-",
|
54
|
+
"换手率",
|
55
|
+
"-",
|
56
|
+
"-",
|
57
|
+
"-",
|
58
|
+
"板块代码",
|
59
|
+
"-",
|
60
|
+
"板块名称",
|
61
|
+
"-",
|
62
|
+
"-",
|
63
|
+
"-",
|
64
|
+
"-",
|
65
|
+
"总市值",
|
66
|
+
"-",
|
67
|
+
"-",
|
68
|
+
"-",
|
69
|
+
"-",
|
70
|
+
"-",
|
71
|
+
"-",
|
72
|
+
"-",
|
73
|
+
"-",
|
74
|
+
"上涨家数",
|
75
|
+
"下跌家数",
|
76
|
+
"-",
|
77
|
+
"-",
|
78
|
+
"-",
|
79
|
+
"领涨股票",
|
80
|
+
"-",
|
81
|
+
"-",
|
82
|
+
"领涨股票-涨跌幅",
|
83
|
+
"-",
|
84
|
+
"-",
|
85
|
+
"-",
|
86
|
+
"-",
|
87
|
+
"-",
|
88
|
+
]
|
89
|
+
temp_df = temp_df[
|
90
|
+
[
|
91
|
+
"排名",
|
92
|
+
"板块名称",
|
93
|
+
"板块代码",
|
94
|
+
"最新价",
|
95
|
+
"涨跌额",
|
96
|
+
"涨跌幅",
|
97
|
+
"总市值",
|
98
|
+
"换手率",
|
99
|
+
"上涨家数",
|
100
|
+
"下跌家数",
|
101
|
+
"领涨股票",
|
102
|
+
"领涨股票-涨跌幅",
|
103
|
+
]
|
104
|
+
]
|
105
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
106
|
+
temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
|
107
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
108
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
109
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
110
|
+
temp_df["上涨家数"] = pd.to_numeric(temp_df["上涨家数"], errors="coerce")
|
111
|
+
temp_df["下跌家数"] = pd.to_numeric(temp_df["下跌家数"], errors="coerce")
|
112
|
+
temp_df["领涨股票-涨跌幅"] = pd.to_numeric(
|
113
|
+
temp_df["领涨股票-涨跌幅"], errors="coerce"
|
114
|
+
)
|
115
|
+
return temp_df
|
116
|
+
|
117
|
+
|
17
118
|
def stock_board_industry_name_em() -> pd.DataFrame:
|
18
119
|
"""
|
19
120
|
东方财富网-沪深板块-行业板块-名称
|
@@ -141,9 +242,8 @@ def stock_board_industry_spot_em(symbol: str = "小金属") -> pd.DataFrame:
|
|
141
242
|
if re.match(pattern=r"^BK\d+", string=symbol):
|
142
243
|
em_code = symbol
|
143
244
|
else:
|
144
|
-
industry_listing =
|
245
|
+
industry_listing = __stock_board_industry_name_em()
|
145
246
|
em_code = industry_listing.query("板块名称 == @symbol")["板块代码"].values[0]
|
146
|
-
|
147
247
|
params = dict(
|
148
248
|
fields=",".join(field_map.keys()),
|
149
249
|
mpi="1000",
|
@@ -195,7 +295,7 @@ def stock_board_industry_hist_em(
|
|
195
295
|
"周k": "102",
|
196
296
|
"月k": "103",
|
197
297
|
}
|
198
|
-
stock_board_concept_em_map =
|
298
|
+
stock_board_concept_em_map = __stock_board_industry_name_em()
|
199
299
|
stock_board_code = stock_board_concept_em_map[
|
200
300
|
stock_board_concept_em_map["板块名称"] == symbol
|
201
301
|
]["板块代码"].values[0]
|
@@ -271,7 +371,7 @@ def stock_board_industry_hist_min_em(
|
|
271
371
|
:return: 分时历史行情
|
272
372
|
:rtype: pandas.DataFrame
|
273
373
|
"""
|
274
|
-
stock_board_concept_em_map =
|
374
|
+
stock_board_concept_em_map = __stock_board_industry_name_em()
|
275
375
|
stock_board_code = stock_board_concept_em_map[
|
276
376
|
stock_board_concept_em_map["板块名称"] == symbol
|
277
377
|
]["板块代码"].values[0]
|
@@ -380,11 +480,11 @@ def stock_board_industry_cons_em(symbol: str = "小金属") -> pd.DataFrame:
|
|
380
480
|
:return: 板块成份
|
381
481
|
:rtype: pandas.DataFrame
|
382
482
|
"""
|
383
|
-
stock_board_concept_em_map =
|
483
|
+
stock_board_concept_em_map = __stock_board_industry_name_em()
|
384
484
|
stock_board_code = stock_board_concept_em_map[
|
385
485
|
stock_board_concept_em_map["板块名称"] == symbol
|
386
486
|
]["板块代码"].values[0]
|
387
|
-
url = "
|
487
|
+
url = "https://29.push2.eastmoney.com/api/qt/clist/get"
|
388
488
|
params = {
|
389
489
|
"pn": "1",
|
390
490
|
"pz": "50000",
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date:
|
4
|
+
Date: 2025/3/1 15:00
|
5
5
|
Desc: 同花顺-盈利预测
|
6
6
|
https://basic.10jqka.com.cn/new/600519/worth.html
|
7
7
|
"""
|
@@ -30,44 +30,86 @@ def stock_profit_forecast_ths(
|
|
30
30
|
url = f"https://basic.10jqka.com.cn/new/{symbol}/worth.html"
|
31
31
|
r = requests.get(url, headers=headers)
|
32
32
|
r.encoding = "gbk"
|
33
|
-
if
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
columns_list
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
33
|
+
if "本年度暂无机构做出业绩预测" in r.text:
|
34
|
+
# 处理 `本年度暂无机构做出业绩预测` 的情况
|
35
|
+
if indicator == "预测年报每股收益":
|
36
|
+
return pd.DataFrame()
|
37
|
+
elif indicator == "预测年报净利润":
|
38
|
+
return pd.DataFrame()
|
39
|
+
elif indicator == "业绩预测详表-机构":
|
40
|
+
temp_df = pd.read_html(StringIO(r.text))[0]
|
41
|
+
columns_list = []
|
42
|
+
for item in temp_df.columns:
|
43
|
+
columns_list.append(item[1])
|
44
|
+
columns_list[2] = "预测年报每股收益" + columns_list[2]
|
45
|
+
columns_list[3] = "预测年报每股收益" + columns_list[3]
|
46
|
+
columns_list[4] = "预测年报每股收益" + columns_list[4]
|
47
|
+
columns_list[5] = "预测年报净利润" + columns_list[5]
|
48
|
+
columns_list[6] = "预测年报净利润" + columns_list[6]
|
49
|
+
columns_list[7] = "预测年报净利润" + columns_list[7]
|
50
|
+
temp_df.columns = columns_list
|
51
|
+
temp_df["报告日期"] = pd.to_datetime(
|
52
|
+
temp_df["报告日期"], errors="coerce"
|
53
|
+
).dt.date
|
54
|
+
return temp_df
|
55
|
+
elif indicator == "业绩预测详表-详细指标预测":
|
56
|
+
temp_df = pd.read_html(StringIO(r.text))[1]
|
57
|
+
temp_df.columns = [
|
58
|
+
item.replace("(", "-").replace(")", "") for item in temp_df.columns
|
59
|
+
]
|
60
|
+
return temp_df
|
61
|
+
else:
|
62
|
+
return pd.DataFrame()
|
63
|
+
else:
|
64
|
+
if indicator == "预测年报每股收益":
|
65
|
+
temp_df = pd.read_html(StringIO(r.text))[0]
|
66
|
+
temp_df["年度"] = temp_df["年度"].astype(str)
|
67
|
+
return temp_df
|
68
|
+
elif indicator == "预测年报净利润":
|
69
|
+
temp_df = pd.read_html(StringIO(r.text))[1]
|
70
|
+
temp_df["年度"] = temp_df["年度"].astype(str)
|
71
|
+
return temp_df
|
72
|
+
elif indicator == "业绩预测详表-机构":
|
73
|
+
temp_df = pd.read_html(StringIO(r.text))[2]
|
74
|
+
columns_list = []
|
75
|
+
for item in temp_df.columns:
|
76
|
+
columns_list.append(item[1])
|
77
|
+
columns_list[2] = "预测年报每股收益" + columns_list[2]
|
78
|
+
columns_list[3] = "预测年报每股收益" + columns_list[3]
|
79
|
+
columns_list[4] = "预测年报每股收益" + columns_list[4]
|
80
|
+
columns_list[5] = "预测年报净利润" + columns_list[5]
|
81
|
+
columns_list[6] = "预测年报净利润" + columns_list[6]
|
82
|
+
columns_list[7] = "预测年报净利润" + columns_list[7]
|
83
|
+
temp_df.columns = columns_list
|
84
|
+
temp_df["报告日期"] = pd.to_datetime(temp_df["报告日期"]).dt.date
|
85
|
+
return temp_df
|
86
|
+
elif indicator == "业绩预测详表-详细指标预测":
|
87
|
+
temp_df = pd.read_html(StringIO(r.text))[3]
|
88
|
+
temp_df.columns = [
|
89
|
+
item.replace("(", "-").replace(")", "") for item in temp_df.columns
|
90
|
+
]
|
91
|
+
return temp_df
|
92
|
+
else:
|
93
|
+
return pd.DataFrame()
|
61
94
|
|
62
95
|
|
63
96
|
if __name__ == "__main__":
|
64
|
-
|
65
|
-
"预测年报每股收益"
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
97
|
+
stock_profit_forecast_ths_df = stock_profit_forecast_ths(
|
98
|
+
symbol="600519", indicator="预测年报每股收益"
|
99
|
+
)
|
100
|
+
print(stock_profit_forecast_ths_df)
|
101
|
+
|
102
|
+
stock_profit_forecast_ths_df = stock_profit_forecast_ths(
|
103
|
+
symbol="600519", indicator="预测年报净利润"
|
104
|
+
)
|
105
|
+
print(stock_profit_forecast_ths_df)
|
106
|
+
|
107
|
+
stock_profit_forecast_ths_df = stock_profit_forecast_ths(
|
108
|
+
symbol="600519", indicator="业绩预测详表-机构"
|
109
|
+
)
|
110
|
+
print(stock_profit_forecast_ths_df)
|
111
|
+
|
112
|
+
stock_profit_forecast_ths_df = stock_profit_forecast_ths(
|
113
|
+
symbol="600519", indicator="业绩预测详表-详细指标预测"
|
114
|
+
)
|
115
|
+
print(stock_profit_forecast_ths_df)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: akshare
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.19
|
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
|
@@ -50,7 +50,8 @@ Dynamic: requires-dist
|
|
50
50
|
Dynamic: requires-python
|
51
51
|
Dynamic: summary
|
52
52
|
|
53
|
-
**欢迎加入专注于财经数据和量化投资的知识社区,获取《AKShare
|
53
|
+
**欢迎加入专注于财经数据和量化投资的知识社区,获取《AKShare-财经数据宝典》,其汇集了财经数据的使用经验和指南,还独家分享了
|
54
|
+
众多国内外财经数据源的使用和注意事项,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
|
54
55
|
|
55
56
|
**量化投研视频课程:《PyBroker-入门及实战》已经上架!《PyBroker-进阶及实战》正在更新!**
|
56
57
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=RyTyFqcqJnmNAIYwc10cb_7jsD9FjI4I5SPmUDQU8No,188757
|
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
|
@@ -231,8 +231,8 @@ akshare/stock/__init__.py,sha256=jSa9260d6aNZajaW68chI2mpPkDSXLOgi3eXrqo4MQ8,82
|
|
231
231
|
akshare/stock/cons.py,sha256=0oyUW5Pu-iQ3qgh-TFemM_O5f1fAwVe-PsI4Qa8EYpQ,42956
|
232
232
|
akshare/stock/stock_allotment_cninfo.py,sha256=OVjVdWp2XVRNbJvVgtgVVoBmPBJgBB4RyIIgA_9QHM8,6066
|
233
233
|
akshare/stock/stock_ask_bid_em.py,sha256=nXQhYIpU4k7GUc7nthWC29zVS9GhYb9ppQTLD0gycF4,3438
|
234
|
-
akshare/stock/stock_board_concept_em.py,sha256=
|
235
|
-
akshare/stock/stock_board_industry_em.py,sha256=
|
234
|
+
akshare/stock/stock_board_concept_em.py,sha256=JAyXNCuDf-IdkklRSz7D3rUwTwRM4aoLJgliQeivpSo,18431
|
235
|
+
akshare/stock/stock_board_industry_em.py,sha256=aaMU78BLVxSTQ4Z55212DsfQDBerKD2OX3as1J9-w1s,19041
|
236
236
|
akshare/stock/stock_cg_equity_mortgage.py,sha256=Pui5aWKKPwGuKjF_GNpejDzsMGNPrxiaJviLz3x2e9I,3426
|
237
237
|
akshare/stock/stock_cg_guarantee.py,sha256=ts7qcQhhyN1PHB7Q4XlMn38HhfVvubOvky9RZfmUP94,3844
|
238
238
|
akshare/stock/stock_cg_lawsuit.py,sha256=6Y92pPw0JgyrInteqHuU07G1jwmdX2wjaDtrJN8y6Hg,4129
|
@@ -364,7 +364,7 @@ akshare/stock_fundamental/stock_mda_ym.py,sha256=BXJJ-39I7GzJ7y_8k_pqUjvUrg1bSla
|
|
364
364
|
akshare/stock_fundamental/stock_notice.py,sha256=tGxGz1Usr3qQzgs1Y71imDPkqJz5ooismz3BiaBwQR0,3928
|
365
365
|
akshare/stock_fundamental/stock_profit_forecast_em.py,sha256=_ZlWkyz-FswlICbjk_YiHjRwrlLftm_piQIPFkZMrjE,5701
|
366
366
|
akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py,sha256=dQaqxi0wXOidIuAxjUzZy_gdy16HEi20I3jEdpNM3qc,5179
|
367
|
-
akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=
|
367
|
+
akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=8fzPGyBcxWSvoa7UZke9bDn7P0neSKrkjHAehVgLHJM,4682
|
368
368
|
akshare/stock_fundamental/stock_recommend.py,sha256=44l1uLofwO-nsDB4oAYWpHQA7_qhXLOo1BurjUvmXzY,4501
|
369
369
|
akshare/stock_fundamental/stock_register_em.py,sha256=QxQh7kddjXLainVVugvOCYG8nDyOv31I8npQmXw3Ccs,15643
|
370
370
|
akshare/stock_fundamental/stock_restricted_em.py,sha256=e5G3oiZBf9d_a8quX5nLzn3RggeF4yX3j-h3nAZBRmA,13378
|
@@ -381,8 +381,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
381
381
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
382
382
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
383
383
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
384
|
-
akshare-1.16.
|
385
|
-
akshare-1.16.
|
386
|
-
akshare-1.16.
|
387
|
-
akshare-1.16.
|
388
|
-
akshare-1.16.
|
384
|
+
akshare-1.16.19.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
385
|
+
akshare-1.16.19.dist-info/METADATA,sha256=TeABNu4wzkETOdjWdj6uxV9Om9EfG8HZHUqM2aBaiPE,13847
|
386
|
+
akshare-1.16.19.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
387
|
+
akshare-1.16.19.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
388
|
+
akshare-1.16.19.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|