akshare 1.16.17__py3-none-any.whl → 1.16.18__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 +2 -1
- akshare/stock/stock_board_concept_em.py +59 -9
- akshare/stock/stock_board_industry_em.py +107 -7
- {akshare-1.16.17.dist-info → akshare-1.16.18.dist-info}/METADATA +1 -1
- {akshare-1.16.17.dist-info → akshare-1.16.18.dist-info}/RECORD +8 -8
- {akshare-1.16.17.dist-info → akshare-1.16.18.dist-info}/LICENSE +0 -0
- {akshare-1.16.17.dist-info → akshare-1.16.18.dist-info}/WHEEL +0 -0
- {akshare-1.16.17.dist-info → akshare-1.16.18.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3026,9 +3026,10 @@ 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
|
3029
3030
|
"""
|
3030
3031
|
|
3031
|
-
__version__ = "1.16.
|
3032
|
+
__version__ = "1.16.18"
|
3032
3033
|
__author__ = "AKFamily"
|
3033
3034
|
|
3034
3035
|
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,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=7KwD4mtIrWqpTY0Pu66f4m5MfAQ4IU0eN5Ay4VGsx5A,188704
|
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
|
@@ -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.18.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
385
|
+
akshare-1.16.18.dist-info/METADATA,sha256=6vz1edzPefOIGHI7gk223yqPpj4-GHDm_LvIdCia_JE,13720
|
386
|
+
akshare-1.16.18.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
387
|
+
akshare-1.16.18.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
388
|
+
akshare-1.16.18.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|