akshare 1.16.69__py3-none-any.whl → 1.16.71__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 +8 -1
- akshare/stock/stock_hsgt_em.py +5 -21
- akshare/stock_fundamental/stock_gbjg_em.py +80 -0
- {akshare-1.16.69.dist-info → akshare-1.16.71.dist-info}/METADATA +1 -1
- {akshare-1.16.69.dist-info → akshare-1.16.71.dist-info}/RECORD +8 -7
- {akshare-1.16.69.dist-info → akshare-1.16.71.dist-info}/WHEEL +0 -0
- {akshare-1.16.69.dist-info → akshare-1.16.71.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.16.69.dist-info → akshare-1.16.71.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3078,9 +3078,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3078
3078
|
1.16.67 fix: fix stock_individual_basic_info_xq interface
|
3079
3079
|
1.16.68 fix: fix option_dce_daily interface
|
3080
3080
|
1.16.69 fix: fix stock_individual_spot_xq interface
|
3081
|
+
1.16.70 fix: fix stock_zh_ah_spot_em interface
|
3082
|
+
1.16.71 add: add stock_zh_a_gbjg_em interface
|
3081
3083
|
"""
|
3082
3084
|
|
3083
|
-
__version__ = "1.16.
|
3085
|
+
__version__ = "1.16.71"
|
3084
3086
|
__author__ = "AKFamily"
|
3085
3087
|
|
3086
3088
|
import sys
|
@@ -3102,6 +3104,11 @@ if sys.version_info < (3, 9):
|
|
3102
3104
|
|
3103
3105
|
del sys
|
3104
3106
|
|
3107
|
+
"""
|
3108
|
+
东方财富-A股数据-股本结构
|
3109
|
+
"""
|
3110
|
+
from akshare.stock_fundamental.stock_gbjg_em import stock_zh_a_gbjg_em
|
3111
|
+
|
3105
3112
|
"""
|
3106
3113
|
异步接口
|
3107
3114
|
"""
|
akshare/stock/stock_hsgt_em.py
CHANGED
@@ -12,6 +12,7 @@ import pandas as pd
|
|
12
12
|
import requests
|
13
13
|
|
14
14
|
from akshare.utils.tqdm import get_tqdm
|
15
|
+
from akshare.utils.func import fetch_paginated_data
|
15
16
|
|
16
17
|
|
17
18
|
def stock_zh_ah_spot_em() -> pd.DataFrame:
|
@@ -30,15 +31,13 @@ def stock_zh_ah_spot_em() -> pd.DataFrame:
|
|
30
31
|
"fields": "f193,f191,f192,f12,f13,f14,f1,f2,f4,f3,f152,f186,f190,f187,f189,f188",
|
31
32
|
"fid": "f3",
|
32
33
|
"pn": "1",
|
33
|
-
"pz": "
|
34
|
+
"pz": "100",
|
34
35
|
"po": "1",
|
35
36
|
"dect": "1",
|
36
37
|
"ut": "fa5fd1943c7b386f172d6893dbfba10b",
|
37
38
|
"wbp2u": "|0|0|0|web",
|
38
39
|
}
|
39
|
-
|
40
|
-
data_json = r.json()
|
41
|
-
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
40
|
+
temp_df = fetch_paginated_data(url, params)
|
42
41
|
temp_df.reset_index(inplace=True)
|
43
42
|
temp_df["index"] = temp_df["index"].astype(int) + 1
|
44
43
|
temp_df.rename(
|
@@ -95,28 +94,13 @@ def stock_hsgt_sh_hk_spot_em() -> pd.DataFrame:
|
|
95
94
|
"fields": "f12,f13,f14,f19,f1,f2,f4,f3,f152,f17,f18,f15,f16,f5,f6",
|
96
95
|
"fid": "f12",
|
97
96
|
"pn": "1",
|
98
|
-
"pz": "
|
97
|
+
"pz": "100",
|
99
98
|
"po": "1",
|
100
99
|
"dect": "1",
|
101
100
|
"ut": "fa5fd1943c7b386f172d6893dbfba10b",
|
102
101
|
"wbp2u": "|0|0|0|web",
|
103
102
|
}
|
104
|
-
|
105
|
-
data_json = r.json()
|
106
|
-
total_page = math.ceil(data_json["data"]["total"] / 200)
|
107
|
-
temp_list = []
|
108
|
-
tqdm = get_tqdm()
|
109
|
-
for page in tqdm(range(1, total_page + 1), leave=False):
|
110
|
-
params.update(
|
111
|
-
{
|
112
|
-
"pn": page,
|
113
|
-
}
|
114
|
-
)
|
115
|
-
r = requests.get(url, params=params, timeout=15)
|
116
|
-
data_json = r.json()
|
117
|
-
inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
|
118
|
-
temp_list.append(inner_temp_df)
|
119
|
-
temp_df = pd.concat(temp_list, ignore_index=True)
|
103
|
+
temp_df = fetch_paginated_data(url, params)
|
120
104
|
temp_df.rename(
|
121
105
|
columns={
|
122
106
|
"f12": "代码",
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding:utf-8 -*-
|
3
|
+
"""
|
4
|
+
Date: 2025/4/3 18:00
|
5
|
+
Desc: 东方财富-A股数据-股本结构
|
6
|
+
https://emweb.securities.eastmoney.com/pc_hsf10/pages/index.html?type=web&code=SH603392&color=b#/gbjg/gbjg
|
7
|
+
"""
|
8
|
+
|
9
|
+
import requests
|
10
|
+
import pandas as pd
|
11
|
+
|
12
|
+
|
13
|
+
def stock_zh_a_gbjg_em(symbol: str = "603392.SH") -> pd.DataFrame:
|
14
|
+
"""
|
15
|
+
东方财富-A股数据-股本结构
|
16
|
+
https://emweb.securities.eastmoney.com/pc_hsf10/pages/index.html#/gbjg
|
17
|
+
:param symbol: 股票代码
|
18
|
+
:type symbol: str
|
19
|
+
:return: 股本结构
|
20
|
+
:rtype: pandas.DataFrame
|
21
|
+
"""
|
22
|
+
url = "https://datacenter.eastmoney.com/securities/api/data/v1/get"
|
23
|
+
params = {
|
24
|
+
"reportName": "RPT_F10_EH_EQUITY",
|
25
|
+
"columns": "SECUCODE,SECURITY_CODE,END_DATE,TOTAL_SHARES,LIMITED_SHARES,LIMITED_OTHARS,"
|
26
|
+
"LIMITED_DOMESTIC_NATURAL,LIMITED_STATE_LEGAL,LIMITED_OVERSEAS_NOSTATE,LIMITED_OVERSEAS_NATURAL,"
|
27
|
+
"UNLIMITED_SHARES,LISTED_A_SHARES,B_FREE_SHARE,H_FREE_SHARE,FREE_SHARES,LIMITED_A_SHARES,"
|
28
|
+
"NON_FREE_SHARES,LIMITED_B_SHARES,OTHER_FREE_SHARES,LIMITED_STATE_SHARES,"
|
29
|
+
"LIMITED_DOMESTIC_NOSTATE,LOCK_SHARES,LIMITED_FOREIGN_SHARES,LIMITED_H_SHARES,"
|
30
|
+
"SPONSOR_SHARES,STATE_SPONSOR_SHARES,SPONSOR_SOCIAL_SHARES,RAISE_SHARES,"
|
31
|
+
"RAISE_STATE_SHARES,RAISE_DOMESTIC_SHARES,RAISE_OVERSEAS_SHARES,CHANGE_REASON",
|
32
|
+
"quoteColumns": "",
|
33
|
+
"filter": f'(SECUCODE="{symbol}")',
|
34
|
+
"pageNumber": "1",
|
35
|
+
"pageSize": "20",
|
36
|
+
"sortTypes": "-1",
|
37
|
+
"sortColumns": "END_DATE",
|
38
|
+
"source": "HSF10",
|
39
|
+
"client": "PC",
|
40
|
+
"v": "047483522105257925"
|
41
|
+
}
|
42
|
+
r = requests.get(url, params=params)
|
43
|
+
data_json = r.json()
|
44
|
+
temp_df = pd.DataFrame(data_json['result']['data'])
|
45
|
+
temp_df.rename(columns={
|
46
|
+
"END_DATE": "变更日期",
|
47
|
+
"TOTAL_SHARES": "总股本",
|
48
|
+
"LISTED_A_SHARES": "已上市流通A股",
|
49
|
+
"FREE_SHARES": "已流通股份",
|
50
|
+
"CHANGE_REASON": "变动原因",
|
51
|
+
"LIMITED_A_SHARES": "流通受限股份",
|
52
|
+
"LIMITED_OTHARS": "其他内资持股(受限)",
|
53
|
+
"LIMITED_DOMESTIC_NOSTATE": "境内法人持股(受限)",
|
54
|
+
"LIMITED_DOMESTIC_NATURAL": "境内自然人持股(受限)",
|
55
|
+
}, inplace=True)
|
56
|
+
temp_df = temp_df[[
|
57
|
+
"变更日期",
|
58
|
+
"总股本",
|
59
|
+
"流通受限股份",
|
60
|
+
"其他内资持股(受限)",
|
61
|
+
"境内法人持股(受限)",
|
62
|
+
"境内自然人持股(受限)",
|
63
|
+
"已流通股份",
|
64
|
+
"已上市流通A股",
|
65
|
+
"变动原因",
|
66
|
+
]]
|
67
|
+
temp_df["变更日期"] = pd.to_datetime(temp_df["变更日期"], errors="coerce").dt.date
|
68
|
+
temp_df["总股本"] = pd.to_numeric(temp_df["总股本"], errors="coerce")
|
69
|
+
temp_df["流通受限股份"] = pd.to_numeric(temp_df["流通受限股份"], errors="coerce")
|
70
|
+
temp_df["其他内资持股(受限)"] = pd.to_numeric(temp_df["其他内资持股(受限)"], errors="coerce")
|
71
|
+
temp_df["境内法人持股(受限)"] = pd.to_numeric(temp_df["境内法人持股(受限)"], errors="coerce")
|
72
|
+
temp_df["境内自然人持股(受限)"] = pd.to_numeric(temp_df["境内自然人持股(受限)"], errors="coerce")
|
73
|
+
temp_df["已流通股份"] = pd.to_numeric(temp_df["已流通股份"], errors="coerce")
|
74
|
+
temp_df["已上市流通A股"] = pd.to_numeric(temp_df["已上市流通A股"], errors="coerce")
|
75
|
+
return temp_df
|
76
|
+
|
77
|
+
|
78
|
+
if __name__ == '__main__':
|
79
|
+
stock_zh_a_gbjg_em_df = stock_zh_a_gbjg_em(symbol="603392.SH")
|
80
|
+
print(stock_zh_a_gbjg_em_df)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=O2lWGJ_cLV9jzHH7uCfsmrGZScc6-HCkD1PdqPQAjYo,192774
|
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
|
@@ -256,7 +256,7 @@ akshare/stock/stock_hold_num_cninfo.py,sha256=JY9LcZMhhTiCHfQJv4pwMrLrpUxTKGLE4o
|
|
256
256
|
akshare/stock/stock_hot_rank_em.py,sha256=WMbadW1CFU3ppZHMSPjG2HtXgs7PgYGugNqmyrRQQe4,7349
|
257
257
|
akshare/stock/stock_hot_search_baidu.py,sha256=Zex1iZB2qaqsxYPj6EmuzAXLbAa53W8LcePivGwrwAs,1769
|
258
258
|
akshare/stock/stock_hot_up_em.py,sha256=aSV1QIpTeLLkuHbB6GP10A8VFXCfcqLV3HumRTdjiIA,2524
|
259
|
-
akshare/stock/stock_hsgt_em.py,sha256=
|
259
|
+
akshare/stock/stock_hsgt_em.py,sha256=4ce45dgoI93o4J0PjmcgIr-QqcUiCyyff8XTdSuqdes,5223
|
260
260
|
akshare/stock/stock_industry.py,sha256=gG8FwylKstLgL_lvM0CWSQgcsd7pe-a4oCSdzCr4bEo,5768
|
261
261
|
akshare/stock/stock_industry_cninfo.py,sha256=dJ19zPeKRTbUrAoa8fpBB25caZuIjX92RePG8Pz-9h8,6560
|
262
262
|
akshare/stock/stock_industry_pe_cninfo.py,sha256=0OjjsFGG90zJRZEBqaCsjKSpSAgrp3PpXzMtom_ll_s,4287
|
@@ -368,6 +368,7 @@ akshare/stock_fundamental/stock_finance_hk_em.py,sha256=cCiaWX6ZyKe4W2H9qe-ttpMe
|
|
368
368
|
akshare/stock_fundamental/stock_finance_sina.py,sha256=432EjGHWFtG0L32PNSC_HWpVLDntabNt9koyUtNG77E,30718
|
369
369
|
akshare/stock_fundamental/stock_finance_ths.py,sha256=nS9bt_hzklzh7pBTCH1PjOa69OUcNZ41Z_zSHiz9Y1U,11527
|
370
370
|
akshare/stock_fundamental/stock_finance_us_em.py,sha256=thRKe9OIfZFQ0q_kAM2kJXCKXGhyPFjHKiiGEK95K2g,9799
|
371
|
+
akshare/stock_fundamental/stock_gbjg_em.py,sha256=oKzX9BSMphRSrx0eAyLZ7qfdz-wT-4P2-03fLu_desA,3573
|
371
372
|
akshare/stock_fundamental/stock_hold.py,sha256=hiJx2i3hCW7Kl7kMs4Kh1QNvsg-sIUORvgQaeGjOB-Y,5472
|
372
373
|
akshare/stock_fundamental/stock_ipo_declare.py,sha256=INsQCHRz-j992mg8x71AiIPsLBSr5e_J03EuWmoP0kc,1810
|
373
374
|
akshare/stock_fundamental/stock_kcb_detail_sse.py,sha256=U2w4wUuOTnavqNEmOdQbTZfnEkDdSs91s82YdA6rwNQ,941
|
@@ -392,10 +393,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
|
|
392
393
|
akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
|
393
394
|
akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
|
394
395
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
395
|
-
akshare-1.16.
|
396
|
+
akshare-1.16.71.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
396
397
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
397
398
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
398
|
-
akshare-1.16.
|
399
|
-
akshare-1.16.
|
400
|
-
akshare-1.16.
|
401
|
-
akshare-1.16.
|
399
|
+
akshare-1.16.71.dist-info/METADATA,sha256=BILN03NBoNu_pjqie6WvwHecj-KdCVF4w0TnArr3ag8,12591
|
400
|
+
akshare-1.16.71.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
401
|
+
akshare-1.16.71.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
402
|
+
akshare-1.16.71.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|