akshare 1.15.87__py3-none-any.whl → 1.15.89__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/fund/fund_etf_em.py +19 -5
- akshare/stock/stock_info_em.py +9 -3
- akshare/stock_feature/stock_hist_em.py +66 -19
- {akshare-1.15.87.dist-info → akshare-1.15.89.dist-info}/METADATA +1 -1
- {akshare-1.15.87.dist-info → akshare-1.15.89.dist-info}/RECORD +9 -9
- {akshare-1.15.87.dist-info → akshare-1.15.89.dist-info}/LICENSE +0 -0
- {akshare-1.15.87.dist-info → akshare-1.15.89.dist-info}/WHEEL +0 -0
- {akshare-1.15.87.dist-info → akshare-1.15.89.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -2997,9 +2997,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2997
2997
|
1.15.85 fix: fix stock_gddh_em interface
|
|
2998
2998
|
1.15.86 fix: fix stock_zdhtmx_em interface
|
|
2999
2999
|
1.15.87 fix: fix futures_index_ccidx interface
|
|
3000
|
+
1.15.88 fix: fix stock_zh_a_spot_em interface
|
|
3001
|
+
1.15.89 fix: fix stock_individual_info_em interface
|
|
3000
3002
|
"""
|
|
3001
3003
|
|
|
3002
|
-
__version__ = "1.15.
|
|
3004
|
+
__version__ = "1.15.89"
|
|
3003
3005
|
__author__ = "AKFamily"
|
|
3004
3006
|
|
|
3005
3007
|
import sys
|
akshare/fund/fund_etf_em.py
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/2/15 22:00
|
|
5
5
|
Desc: 东方财富-ETF行情
|
|
6
6
|
https://quote.eastmoney.com/sh513500.html
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from functools import lru_cache
|
|
10
|
-
|
|
10
|
+
import math
|
|
11
11
|
import pandas as pd
|
|
12
12
|
import requests
|
|
13
|
+
from akshare.utils.tqdm import get_tqdm
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
@lru_cache()
|
|
@@ -23,7 +24,7 @@ def _fund_etf_code_id_map_em() -> dict:
|
|
|
23
24
|
url = "https://88.push2.eastmoney.com/api/qt/clist/get"
|
|
24
25
|
params = {
|
|
25
26
|
"pn": "1",
|
|
26
|
-
"pz": "
|
|
27
|
+
"pz": "200",
|
|
27
28
|
"po": "1",
|
|
28
29
|
"np": "1",
|
|
29
30
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -35,9 +36,22 @@ def _fund_etf_code_id_map_em() -> dict:
|
|
|
35
36
|
"fields": "f12,f13",
|
|
36
37
|
"_": "1672806290972",
|
|
37
38
|
}
|
|
38
|
-
r = requests.get(url,
|
|
39
|
+
r = requests.get(url, params=params, timeout=15)
|
|
39
40
|
data_json = r.json()
|
|
40
|
-
|
|
41
|
+
total_page = math.ceil(data_json["data"]["total"] / 200)
|
|
42
|
+
temp_list = []
|
|
43
|
+
tqdm = get_tqdm()
|
|
44
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
45
|
+
params.update(
|
|
46
|
+
{
|
|
47
|
+
"pn": page,
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
r = requests.get(url, params=params, timeout=15)
|
|
51
|
+
data_json = r.json()
|
|
52
|
+
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
53
|
+
temp_list.append(inner_temp_df)
|
|
54
|
+
temp_df = pd.concat(temp_list, ignore_index=True)
|
|
41
55
|
temp_dict = dict(zip(temp_df["f12"], temp_df["f13"]))
|
|
42
56
|
return temp_dict
|
|
43
57
|
|
akshare/stock/stock_info_em.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/2/15 22:00
|
|
5
5
|
Desc: 东方财富网-个股-股票信息
|
|
6
6
|
https://quote.eastmoney.com/concept/sh603777.html?from=classic
|
|
7
7
|
"""
|
|
@@ -26,12 +26,18 @@ def stock_individual_info_em(
|
|
|
26
26
|
:rtype: pandas.DataFrame
|
|
27
27
|
"""
|
|
28
28
|
code_id_dict = code_id_map_em()
|
|
29
|
-
url = "
|
|
29
|
+
url = "https://push2.eastmoney.com/api/qt/stock/get"
|
|
30
30
|
params = {
|
|
31
31
|
"ut": "fa5fd1943c7b386f172d6893dbfba10b",
|
|
32
32
|
"fltt": "2",
|
|
33
33
|
"invt": "2",
|
|
34
|
-
"fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,
|
|
34
|
+
"fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,"
|
|
35
|
+
"f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,"
|
|
36
|
+
"f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,"
|
|
37
|
+
"f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,"
|
|
38
|
+
"f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,"
|
|
39
|
+
"f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,"
|
|
40
|
+
"f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
|
|
35
41
|
"secid": f"{code_id_dict[symbol]}.{symbol}",
|
|
36
42
|
"_": "1640157544804",
|
|
37
43
|
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/2/15 21:00
|
|
5
5
|
Desc: 东方财富网-行情首页-沪深京 A 股
|
|
6
6
|
https://quote.eastmoney.com/
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from functools import lru_cache
|
|
10
|
-
|
|
10
|
+
import math
|
|
11
11
|
import pandas as pd
|
|
12
12
|
import requests
|
|
13
|
+
from akshare.utils.tqdm import get_tqdm
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def stock_zh_a_spot_em() -> pd.DataFrame:
|
|
@@ -22,7 +23,7 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
|
|
|
22
23
|
url = "https://82.push2.eastmoney.com/api/qt/clist/get"
|
|
23
24
|
params = {
|
|
24
25
|
"pn": "1",
|
|
25
|
-
"pz": "
|
|
26
|
+
"pz": "200",
|
|
26
27
|
"po": "1",
|
|
27
28
|
"np": "1",
|
|
28
29
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -34,11 +35,22 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
|
|
|
34
35
|
"f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
|
|
35
36
|
"_": "1623833739532",
|
|
36
37
|
}
|
|
37
|
-
r = requests.get(url,
|
|
38
|
+
r = requests.get(url, params=params, timeout=15)
|
|
38
39
|
data_json = r.json()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
total_page = math.ceil(data_json["data"]["total"] / 200)
|
|
41
|
+
temp_list = []
|
|
42
|
+
tqdm = get_tqdm()
|
|
43
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
44
|
+
params.update(
|
|
45
|
+
{
|
|
46
|
+
"pn": page,
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
r = requests.get(url, params=params, timeout=15)
|
|
50
|
+
data_json = r.json()
|
|
51
|
+
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
52
|
+
temp_list.append(inner_temp_df)
|
|
53
|
+
temp_df = pd.concat(temp_list, ignore_index=True)
|
|
42
54
|
temp_df.columns = [
|
|
43
55
|
"_",
|
|
44
56
|
"最新价",
|
|
@@ -950,7 +962,7 @@ def code_id_map_em() -> dict:
|
|
|
950
962
|
url = "https://80.push2.eastmoney.com/api/qt/clist/get"
|
|
951
963
|
params = {
|
|
952
964
|
"pn": "1",
|
|
953
|
-
"pz": "
|
|
965
|
+
"pz": "200",
|
|
954
966
|
"po": "1",
|
|
955
967
|
"np": "1",
|
|
956
968
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -963,15 +975,27 @@ def code_id_map_em() -> dict:
|
|
|
963
975
|
}
|
|
964
976
|
r = requests.get(url, timeout=15, params=params)
|
|
965
977
|
data_json = r.json()
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
978
|
+
total_page = math.ceil(data_json["data"]["total"] / 200)
|
|
979
|
+
temp_list = []
|
|
980
|
+
tqdm = get_tqdm()
|
|
981
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
982
|
+
params.update(
|
|
983
|
+
{
|
|
984
|
+
"pn": page,
|
|
985
|
+
}
|
|
986
|
+
)
|
|
987
|
+
r = requests.get(url, params=params, timeout=15)
|
|
988
|
+
data_json = r.json()
|
|
989
|
+
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
990
|
+
temp_list.append(inner_temp_df)
|
|
991
|
+
temp_df = pd.concat(temp_list, ignore_index=True)
|
|
969
992
|
temp_df["market_id"] = 1
|
|
970
993
|
temp_df.columns = ["sh_code", "sh_id"]
|
|
971
994
|
code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
|
|
995
|
+
|
|
972
996
|
params = {
|
|
973
997
|
"pn": "1",
|
|
974
|
-
"pz": "
|
|
998
|
+
"pz": "200",
|
|
975
999
|
"po": "1",
|
|
976
1000
|
"np": "1",
|
|
977
1001
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -984,14 +1008,26 @@ def code_id_map_em() -> dict:
|
|
|
984
1008
|
}
|
|
985
1009
|
r = requests.get(url, timeout=15, params=params)
|
|
986
1010
|
data_json = r.json()
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
1011
|
+
total_page = math.ceil(data_json["data"]["total"] / 200)
|
|
1012
|
+
temp_list = []
|
|
1013
|
+
tqdm = get_tqdm()
|
|
1014
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
1015
|
+
params.update(
|
|
1016
|
+
{
|
|
1017
|
+
"pn": page,
|
|
1018
|
+
}
|
|
1019
|
+
)
|
|
1020
|
+
r = requests.get(url, params=params, timeout=15)
|
|
1021
|
+
data_json = r.json()
|
|
1022
|
+
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
1023
|
+
temp_list.append(inner_temp_df)
|
|
1024
|
+
temp_df_sz = pd.concat(temp_list, ignore_index=True)
|
|
990
1025
|
temp_df_sz["sz_id"] = 0
|
|
991
1026
|
code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
|
|
1027
|
+
|
|
992
1028
|
params = {
|
|
993
1029
|
"pn": "1",
|
|
994
|
-
"pz": "
|
|
1030
|
+
"pz": "200",
|
|
995
1031
|
"po": "1",
|
|
996
1032
|
"np": "1",
|
|
997
1033
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
|
@@ -1004,9 +1040,20 @@ def code_id_map_em() -> dict:
|
|
|
1004
1040
|
}
|
|
1005
1041
|
r = requests.get(url, timeout=15, params=params)
|
|
1006
1042
|
data_json = r.json()
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1043
|
+
total_page = math.ceil(data_json["data"]["total"] / 200)
|
|
1044
|
+
temp_list = []
|
|
1045
|
+
tqdm = get_tqdm()
|
|
1046
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
1047
|
+
params.update(
|
|
1048
|
+
{
|
|
1049
|
+
"pn": page,
|
|
1050
|
+
}
|
|
1051
|
+
)
|
|
1052
|
+
r = requests.get(url, params=params, timeout=15)
|
|
1053
|
+
data_json = r.json()
|
|
1054
|
+
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
1055
|
+
temp_list.append(inner_temp_df)
|
|
1056
|
+
temp_df_sz = pd.concat(temp_list, ignore_index=True)
|
|
1010
1057
|
temp_df_sz["bj_id"] = 0
|
|
1011
1058
|
code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["bj_id"])))
|
|
1012
1059
|
return code_id_dict
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=LyFCn2ZECu3MwtTWc49B6LDVoBm114cd9q8DcISB1xY,187028
|
|
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
|
|
@@ -86,7 +86,7 @@ akshare/fund/fund_amac.py,sha256=Dml3EgpJhmVgkttb0OdaWN41ynOCIbJ0-1qAPDWF0oo,338
|
|
|
86
86
|
akshare/fund/fund_announcement.py,sha256=g5rcIC9vQ4HapZd0b7cDbFYzHu9V6bOKhwxRHVfmv8k,1848
|
|
87
87
|
akshare/fund/fund_aum_em.py,sha256=dy1R1-0X48H8S-LPiuggNA5M-6MvQ08fnp5bytvCGPQ,3518
|
|
88
88
|
akshare/fund/fund_em.py,sha256=nX0VA5JeiF-zRr1J10X-U9-pJj5KFDUAbovN1DWjvTo,40450
|
|
89
|
-
akshare/fund/fund_etf_em.py,sha256=
|
|
89
|
+
akshare/fund/fund_etf_em.py,sha256=Zr_pN1NfhpT_T8dvKYOXbK7fABsfwq05MlY6rUG7RyI,17878
|
|
90
90
|
akshare/fund/fund_etf_sina.py,sha256=YV2KrqKMF_h8kgrywvWvRJx2oy62lhgizvHFk40E4Rk,7042
|
|
91
91
|
akshare/fund/fund_etf_ths.py,sha256=vb_jy0h2-Kz2dNWUrwBYxPB0MAotv0KZgnFhE98ohSM,3432
|
|
92
92
|
akshare/fund/fund_fee_em.py,sha256=rkA2qVEhuWBUTFlvEP-zY_4Fw7_vL9cDx9hR-P38yDk,4157
|
|
@@ -256,7 +256,7 @@ akshare/stock/stock_industry_cninfo.py,sha256=dJ19zPeKRTbUrAoa8fpBB25caZuIjX92Re
|
|
|
256
256
|
akshare/stock/stock_industry_pe_cninfo.py,sha256=0OjjsFGG90zJRZEBqaCsjKSpSAgrp3PpXzMtom_ll_s,4287
|
|
257
257
|
akshare/stock/stock_industry_sw.py,sha256=C0FjDg976EA0EksRS3sChbmJOZmOPEOzKCrHVs2YqTg,1441
|
|
258
258
|
akshare/stock/stock_info.py,sha256=AqzLzsTlYTSExBtyrZZBjI-D-VROj9e7Sq37WKHJ7XQ,16314
|
|
259
|
-
akshare/stock/stock_info_em.py,sha256=
|
|
259
|
+
akshare/stock/stock_info_em.py,sha256=F-K8ZzWW70KTzShP82semh8RKklUEot2zxuzNDum20I,2615
|
|
260
260
|
akshare/stock/stock_intraday_em.py,sha256=r1DvqVpRMJH_Y14GmgbKXQUWYi_KFhnEvsHD0Mp384o,4532
|
|
261
261
|
akshare/stock/stock_intraday_sina.py,sha256=HMuAAO2Teu4NUrOcBvyJdxYgWx-51qJCdtcqFmFNQg8,2359
|
|
262
262
|
akshare/stock/stock_ipo_summary_cninfo.py,sha256=Ma-54GsOOhRWxilLH-Qmm0VVbpJQGf2XWKaJ8NBSgAY,3847
|
|
@@ -311,7 +311,7 @@ akshare/stock_feature/stock_gdhs.py,sha256=Z6ZMy1A03BqMu9TghcIu2Sd_wwEtpIH7qawHu
|
|
|
311
311
|
akshare/stock_feature/stock_gdzjc_em.py,sha256=SHJH5iS3_NhvjTqRXF0vPooZl0s_ASeyZmNCC50ZYqs,4426
|
|
312
312
|
akshare/stock_feature/stock_gpzy_em.py,sha256=FgyjVgdoxrtMM7WwxdQJxK0mYGJklIHaT9KmMCFmEPM,17869
|
|
313
313
|
akshare/stock_feature/stock_gxl_lg.py,sha256=I8TpDEpFzadZSSyZisyIk6163mJlRxup91dmlBH4t4U,2641
|
|
314
|
-
akshare/stock_feature/stock_hist_em.py,sha256=
|
|
314
|
+
akshare/stock_feature/stock_hist_em.py,sha256=ibI1uQvI-UwkQ9dvSWLMmGdOLbr9u_e083SUxbV20_8,70766
|
|
315
315
|
akshare/stock_feature/stock_hist_tx.py,sha256=WpLsbkG2didSx7lYNkSbTWNTrLhUKbcopfD18WO2Rlc,3397
|
|
316
316
|
akshare/stock_feature/stock_hk_valuation_baidu.py,sha256=_sErx4UhNsSXJgXyPfrL0aPxkW53Mg1zH9gEKoziaCA,1968
|
|
317
317
|
akshare/stock_feature/stock_hot_xq.py,sha256=NmoH4x-0hiDztj-YwzMFVIyOICQ2wUUBbhjt91q-tq4,9112
|
|
@@ -380,8 +380,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
|
380
380
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
381
381
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
382
382
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
|
383
|
-
akshare-1.15.
|
|
384
|
-
akshare-1.15.
|
|
385
|
-
akshare-1.15.
|
|
386
|
-
akshare-1.15.
|
|
387
|
-
akshare-1.15.
|
|
383
|
+
akshare-1.15.89.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
|
384
|
+
akshare-1.15.89.dist-info/METADATA,sha256=cpy6yZYevRY0g9zZIsVxMQZ-zbXaDn9Eyekxplwr6S8,13679
|
|
385
|
+
akshare-1.15.89.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
386
|
+
akshare-1.15.89.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
387
|
+
akshare-1.15.89.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|