akshare 1.16.57__py3-none-any.whl → 1.16.59__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/option/option_czce.py +34 -6
- akshare/stock/stock_zh_a_sina.py +14 -20
- akshare/utils/multi_decrypt.py +10 -0
- {akshare-1.16.57.dist-info → akshare-1.16.59.dist-info}/METADATA +1 -1
- {akshare-1.16.57.dist-info → akshare-1.16.59.dist-info}/RECORD +9 -9
- {akshare-1.16.57.dist-info → akshare-1.16.59.dist-info}/WHEEL +1 -1
- {akshare-1.16.57.dist-info → akshare-1.16.59.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.16.57.dist-info → akshare-1.16.59.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3066,9 +3066,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3066
3066
|
1.16.55 fix: fix stock_zh_a_spot_em interface
|
3067
3067
|
1.16.56 fix: fix stock_zh_a_daily interface
|
3068
3068
|
1.16.57 fix: fix stock_market_pe_lg interface
|
3069
|
+
1.16.58 fix: fix stock_zh_a_spot interface
|
3070
|
+
1.16.59 fix: fix option_czce_hist interface
|
3069
3071
|
"""
|
3070
3072
|
|
3071
|
-
__version__ = "1.16.
|
3073
|
+
__version__ = "1.16.59"
|
3072
3074
|
__author__ = "AKFamily"
|
3073
3075
|
|
3074
3076
|
import sys
|
akshare/option/option_czce.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date:
|
4
|
+
Date: 2025/3/22 16:30
|
5
5
|
Desc: 郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
|
6
6
|
http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
|
7
7
|
自 20200101 起,成交量、空盘量、成交额、行权量均为单边计算
|
@@ -12,7 +12,21 @@ http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
|
|
12
12
|
"MA": "20191217"
|
13
13
|
"RM": "20200116"
|
14
14
|
"ZC": "20200630"
|
15
|
+
"OI": "20220826"
|
16
|
+
"PK": "20220826"
|
17
|
+
"PX": "20230915"
|
18
|
+
"SH": "20230915"
|
19
|
+
"SA": "20231020"
|
20
|
+
"PF": "20231020"
|
21
|
+
"SM": "20231020"
|
22
|
+
"SF": "20231020"
|
23
|
+
"UR": "20231020"
|
24
|
+
"AP": "20231020"
|
25
|
+
"CJ": "20240621"
|
26
|
+
"FG": "20240621"
|
27
|
+
"PR": "20241227"
|
15
28
|
"""
|
29
|
+
|
16
30
|
from io import StringIO
|
17
31
|
import warnings
|
18
32
|
|
@@ -24,7 +38,9 @@ def option_czce_hist(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
|
|
24
38
|
"""
|
25
39
|
郑州商品交易所-交易数据-历史行情下载-期权历史行情下载
|
26
40
|
http://www.czce.com.cn/cn/jysj/lshqxz/H770319index_1.htm
|
27
|
-
:param symbol: choice of {"白糖": "SR", "棉花": "CF", "PTA": "TA", "甲醇": "MA", "菜籽粕": "RM",
|
41
|
+
:param symbol: choice of {"白糖": "SR", "棉花": "CF", "PTA": "TA", "甲醇": "MA", "菜籽粕": "RM",
|
42
|
+
"动力煤": "ZC", "菜籽油": "OI", "花生": "PK", "对二甲苯": "PX", "烧碱": "SH", "纯碱": "SA", "短纤": "PF",
|
43
|
+
"锰硅": "SM", "硅铁": "SF", "尿素": "UR", "苹果": "AP", "红枣": "CJ", "玻璃": "FG", "瓶片": "PR"}
|
28
44
|
:type symbol: str
|
29
45
|
:param year: 需要获取数据的年份, 注意品种的上市时间
|
30
46
|
:type year: str
|
@@ -38,17 +54,29 @@ def option_czce_hist(symbol: str = "SR", year: str = "2021") -> pd.DataFrame:
|
|
38
54
|
"MA": "2019",
|
39
55
|
"RM": "2020",
|
40
56
|
"ZC": "2020",
|
57
|
+
"OI": "2022",
|
58
|
+
"PK": "2022",
|
59
|
+
"PX": "2023",
|
60
|
+
"SH": "2023",
|
61
|
+
"SA": "2023",
|
62
|
+
"PF": "2023",
|
63
|
+
"SM": "2023",
|
64
|
+
"SF": "2023",
|
65
|
+
"UR": "2023",
|
66
|
+
"AP": "2023",
|
67
|
+
"CJ": "2024",
|
68
|
+
"FG": "2024",
|
69
|
+
"PR": "2024",
|
41
70
|
}
|
42
71
|
if int(symbol_year_dict[symbol]) > int(year):
|
43
72
|
warnings.warn(f"{year} year, symbol {symbol} is not on trade")
|
44
|
-
return
|
45
|
-
|
46
|
-
url = f'http://www.czce.com.cn/cn/DFSStaticFiles/Option/2021/OptionDataAllHistory/{symbol}OPTIONS{year}.txt'
|
73
|
+
return pd.DataFrame()
|
74
|
+
url = f"http://www.czce.com.cn/cn/DFSStaticFiles/Option/{year}/OptionDataAllHistory/{symbol}OPTIONS{year}.txt"
|
47
75
|
r = requests.get(url)
|
48
76
|
option_df = pd.read_table(StringIO(r.text), skiprows=1, sep="|", low_memory=False)
|
49
77
|
return option_df
|
50
78
|
|
51
79
|
|
52
80
|
if __name__ == "__main__":
|
53
|
-
option_czce_hist_df = option_czce_hist(symbol="
|
81
|
+
option_czce_hist_df = option_czce_hist(symbol="RM", year="2025")
|
54
82
|
print(option_czce_hist_df)
|
akshare/stock/stock_zh_a_sina.py
CHANGED
@@ -10,6 +10,7 @@ import json
|
|
10
10
|
import re
|
11
11
|
|
12
12
|
import pandas as pd
|
13
|
+
import py_mini_racer
|
13
14
|
import requests
|
14
15
|
|
15
16
|
from akshare.stock.cons import (
|
@@ -23,7 +24,6 @@ from akshare.stock.cons import (
|
|
23
24
|
zh_sina_a_stock_amount_url,
|
24
25
|
)
|
25
26
|
from akshare.utils import demjson
|
26
|
-
from akshare.utils.multi_decrypt import execute_js_in_executor
|
27
27
|
from akshare.utils.tqdm import get_tqdm
|
28
28
|
|
29
29
|
|
@@ -175,15 +175,13 @@ def stock_zh_a_daily(
|
|
175
175
|
return _fq_factor(adjust.split("-")[0])
|
176
176
|
|
177
177
|
r = requests.get(zh_sina_a_stock_hist_url.format(symbol))
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
"
|
182
|
-
|
183
|
-
r.text.split("=")[1].split(";")[0].replace('"', ""), # 函数参数
|
184
|
-
)
|
178
|
+
js_code = py_mini_racer.MiniRacer()
|
179
|
+
js_code.eval(hk_js_decode)
|
180
|
+
dict_list = js_code.call(
|
181
|
+
"d", r.text.split("=")[1].split(";")[0].replace('"', "")
|
182
|
+
) # 执行js解密代码
|
185
183
|
data_df = pd.DataFrame(dict_list)
|
186
|
-
data_df.index = pd.to_datetime(data_df["date"]
|
184
|
+
data_df.index = pd.to_datetime(data_df["date"]).dt.date
|
187
185
|
del data_df["date"]
|
188
186
|
try:
|
189
187
|
del data_df["prevclose"]
|
@@ -346,13 +344,12 @@ def stock_zh_a_cdr_daily(
|
|
346
344
|
:return: specific data
|
347
345
|
:rtype: pandas.DataFrame
|
348
346
|
"""
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
"d",
|
354
|
-
|
355
|
-
)
|
347
|
+
res = requests.get(zh_sina_a_stock_hist_url.format(symbol))
|
348
|
+
js_code = py_mini_racer.MiniRacer()
|
349
|
+
js_code.eval(hk_js_decode)
|
350
|
+
dict_list = js_code.call(
|
351
|
+
"d", res.text.split("=")[1].split(";")[0].replace('"', "")
|
352
|
+
) # 执行js解密代码
|
356
353
|
data_df = pd.DataFrame(dict_list)
|
357
354
|
data_df.index = pd.to_datetime(data_df["date"])
|
358
355
|
del data_df["date"]
|
@@ -397,10 +394,7 @@ def stock_zh_a_minute(
|
|
397
394
|
data_json = json.loads(data_text.split("=(")[1].split(");")[0])
|
398
395
|
temp_df = pd.DataFrame(data_json).iloc[:, :6]
|
399
396
|
except: # noqa: E722
|
400
|
-
url =
|
401
|
-
f"https://quotes.sina.cn/cn/api/jsonp_v2.php/var%20_{symbol}_{period}_1658852984203="
|
402
|
-
f"/CN_MarketDataService.getKLineData"
|
403
|
-
)
|
397
|
+
url = f"https://quotes.sina.cn/cn/api/jsonp_v2.php/var%20_{symbol}_{period}_1658852984203=/CN_MarketDataService.getKLineData"
|
404
398
|
params = {
|
405
399
|
"symbol": symbol,
|
406
400
|
"scale": period,
|
akshare/utils/multi_decrypt.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=HEbv8G2scqyBqUsgEWkVoDdfIwIZ0hYB_d3y8J_g3W8,191852
|
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
|
@@ -197,7 +197,7 @@ akshare/option/cons.py,sha256=zTRZ62RFwOcAKfmso-7nZJtT3a8Dt1nQbNnEjSqgjpI,4811
|
|
197
197
|
akshare/option/option_comm_qihuo.py,sha256=kjbdp-94KJJJi1ex5U03abtlgviqwP0Aahb6FwddPkk,3128
|
198
198
|
akshare/option/option_commodity.py,sha256=KQ690k83wKnjYN5Sf3meLx0pvEYAc5dE2tOkv3AK3dk,26758
|
199
199
|
akshare/option/option_commodity_sina.py,sha256=r6qK_K7w3A6Uqp5ZtBb4pW7vH04oMyeCEZLLGqi0jpA,7776
|
200
|
-
akshare/option/option_czce.py,sha256=
|
200
|
+
akshare/option/option_czce.py,sha256=TxmLZn6hxjZa8TyEpwhZazL2m5XbympRHaRjJw1q7lk,2509
|
201
201
|
akshare/option/option_daily_stats_sse_szse.py,sha256=Ip_vE81qbEGt4ocbtWfUT7XGu0HWU0zKkzauZeq9RJA,4962
|
202
202
|
akshare/option/option_em.py,sha256=SV_pBGDE4rer1wZ3wsBsfjtOIIudBAHPuk6_5kPAPBc,5860
|
203
203
|
akshare/option/option_finance.py,sha256=7rnEeHo-7Sddrs36Q4c99CXL_9m8IJzw9S1Aqh3Bw90,12568
|
@@ -281,7 +281,7 @@ akshare/stock/stock_us_pink.py,sha256=BX7-tG4Zs0k2vSYGxHH0Yob-moD6AAu2a-ytZpxgIR
|
|
281
281
|
akshare/stock/stock_us_sina.py,sha256=D4fhJgpmvnlVoeSV2wQQ7H6lig8h6vaJp71o88dZhDg,8200
|
282
282
|
akshare/stock/stock_weibo_nlp.py,sha256=eM7ofsNSrKiYeS0g38Qj9CxT6dkJZrn_pmziIiTqp4U,3286
|
283
283
|
akshare/stock/stock_xq.py,sha256=mPBVg2zA4XkTVAUXeZx8c3nzchm4D1AaMBbC-g87yLQ,4641
|
284
|
-
akshare/stock/stock_zh_a_sina.py,sha256
|
284
|
+
akshare/stock/stock_zh_a_sina.py,sha256=-LbBNkqs2i_AAJ77PylfgXRK26pjResCHfM35_n-7G8,18907
|
285
285
|
akshare/stock/stock_zh_a_special.py,sha256=VInvKbA6u_hJjjUKj7I5pG9rqt3kSZzJrZNfVs2Fqas,10169
|
286
286
|
akshare/stock/stock_zh_a_tick_tx.py,sha256=TJUAWLKAeoLEaVVJQlj0t-1smZGoAO0X0rPsUPVhZZ4,2131
|
287
287
|
akshare/stock/stock_zh_ah_tx.py,sha256=1DfvP1xF9G4jDnqlacZiYIMWZBujxW9Kycre3yr6MhM,9212
|
@@ -387,13 +387,13 @@ akshare/utils/cons.py,sha256=PFZndkG3lMW1Qhg-wqcZmSowFXwQUsYYCLZT4s1Xkwc,225
|
|
387
387
|
akshare/utils/context.py,sha256=Hl4kPUzQ1CecRzu5JvTKpTpiMLfzAzYzG7F5hktlsCQ,934
|
388
388
|
akshare/utils/demjson.py,sha256=xW2z0UGS2zzyH_dzhd765ZveuXRbfjkM7KBiI8H5fJA,241609
|
389
389
|
akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
|
390
|
-
akshare/utils/multi_decrypt.py,sha256=
|
390
|
+
akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
|
391
391
|
akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOeQ,666
|
392
392
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
393
|
-
akshare-1.16.
|
393
|
+
akshare-1.16.59.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
394
394
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
395
395
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
396
|
-
akshare-1.16.
|
397
|
-
akshare-1.16.
|
398
|
-
akshare-1.16.
|
399
|
-
akshare-1.16.
|
396
|
+
akshare-1.16.59.dist-info/METADATA,sha256=xHAVn1deyr5CGklutnkGXcrEpQL4mZICtpHUqnO_NeA,13767
|
397
|
+
akshare-1.16.59.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
398
|
+
akshare-1.16.59.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
399
|
+
akshare-1.16.59.dist-info/RECORD,,
|
File without changes
|
File without changes
|