akshare 1.14.44__py3-none-any.whl → 1.14.46__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.
Potentially problematic release.
This version of akshare might be problematic. Click here for more details.
- akshare/__init__.py +8 -1
- akshare/option/option_lhb_em.py +62 -56
- akshare/spot/spot_hog_soozhu.py +42 -0
- akshare/stock/stock_intraday_em.py +5 -2
- {akshare-1.14.44.dist-info → akshare-1.14.46.dist-info}/METADATA +1 -1
- {akshare-1.14.44.dist-info → akshare-1.14.46.dist-info}/RECORD +9 -8
- {akshare-1.14.44.dist-info → akshare-1.14.46.dist-info}/WHEEL +1 -1
- {akshare-1.14.44.dist-info → akshare-1.14.46.dist-info}/LICENSE +0 -0
- {akshare-1.14.44.dist-info → akshare-1.14.46.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -2855,9 +2855,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2855
2855
|
1.14.42 fix: fix stock_new_gh_cninfo interface
|
|
2856
2856
|
1.14.43 fix: fix stock_share_change_cninfo interface
|
|
2857
2857
|
1.14.44 fix: fix stock_hk_famous_spot_em interface
|
|
2858
|
+
1.14.45 fix: fix option_lhb_em interface
|
|
2859
|
+
1.14.46 add: add spot_hog_soozhu interface
|
|
2858
2860
|
"""
|
|
2859
2861
|
|
|
2860
|
-
__version__ = "1.14.
|
|
2862
|
+
__version__ = "1.14.46"
|
|
2861
2863
|
__author__ = "AKFamily"
|
|
2862
2864
|
|
|
2863
2865
|
import sys
|
|
@@ -2879,6 +2881,11 @@ if sys.version_info < (3, 9):
|
|
|
2879
2881
|
|
|
2880
2882
|
del sys
|
|
2881
2883
|
|
|
2884
|
+
"""
|
|
2885
|
+
搜猪-生猪大数据-各省均价实时排行榜
|
|
2886
|
+
"""
|
|
2887
|
+
from akshare.spot.spot_hog_soozhu import spot_hog_soozhu
|
|
2888
|
+
|
|
2882
2889
|
"""
|
|
2883
2890
|
知名港股
|
|
2884
2891
|
"""
|
akshare/option/option_lhb_em.py
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/7/30 17:00
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-期权龙虎榜单
|
|
6
6
|
https://data.eastmoney.com/other/qqlhb.html
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import pandas as pd
|
|
10
|
+
import requests
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def option_lhb_em(
|
|
@@ -15,7 +16,7 @@ def option_lhb_em(
|
|
|
15
16
|
trade_date: str = "20220121",
|
|
16
17
|
) -> pd.DataFrame:
|
|
17
18
|
"""
|
|
18
|
-
|
|
19
|
+
东方财富网-数据中心-期货期权-期权龙虎榜单
|
|
19
20
|
https://data.eastmoney.com/other/qqlhb.html
|
|
20
21
|
:param symbol: 期权代码; choice of {"510050", "510300", "159919"}
|
|
21
22
|
:type symbol: str
|
|
@@ -30,7 +31,8 @@ def option_lhb_em(
|
|
|
30
31
|
params = {
|
|
31
32
|
"type": "RPT_IF_BILLBOARD_TD",
|
|
32
33
|
"sty": "ALL",
|
|
33
|
-
"filter": f"""(SECURITY_CODE="{symbol}")(TRADE_DATE='{'-'.join([trade_date[:4],
|
|
34
|
+
"filter": f"""(SECURITY_CODE="{symbol}")(TRADE_DATE='{'-'.join([trade_date[:4],
|
|
35
|
+
trade_date[4:6], trade_date[6:]])}')""",
|
|
34
36
|
"p": "1",
|
|
35
37
|
"pss": "200",
|
|
36
38
|
"source": "IFBILLBOARD",
|
|
@@ -84,12 +86,16 @@ def option_lhb_em(
|
|
|
84
86
|
"占总交易量比例",
|
|
85
87
|
]
|
|
86
88
|
]
|
|
87
|
-
temp_df["交易日期"] = pd.to_datetime(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
temp_df["
|
|
91
|
-
temp_df["
|
|
92
|
-
temp_df["
|
|
89
|
+
temp_df["交易日期"] = pd.to_datetime(
|
|
90
|
+
temp_df["交易日期"], errors="coerce"
|
|
91
|
+
).dt.date
|
|
92
|
+
temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
|
|
93
|
+
temp_df["交易量"] = pd.to_numeric(temp_df["交易量"], errors="coerce")
|
|
94
|
+
temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
|
|
95
|
+
temp_df["净认沽量"] = pd.to_numeric(temp_df["净认沽量"], errors="coerce")
|
|
96
|
+
temp_df["占总交易量比例"] = pd.to_numeric(
|
|
97
|
+
temp_df["占总交易量比例"], errors="coerce"
|
|
98
|
+
)
|
|
93
99
|
temp_df.reset_index(drop=True, inplace=True)
|
|
94
100
|
return temp_df
|
|
95
101
|
elif indicator == "期权持仓情况-认沽持仓量":
|
|
@@ -135,12 +141,16 @@ def option_lhb_em(
|
|
|
135
141
|
"占总交易量比例",
|
|
136
142
|
]
|
|
137
143
|
]
|
|
138
|
-
temp_df["交易日期"] = pd.to_datetime(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
temp_df["
|
|
142
|
-
temp_df["
|
|
143
|
-
temp_df["
|
|
144
|
+
temp_df["交易日期"] = pd.to_datetime(
|
|
145
|
+
temp_df["交易日期"], errors="coerce"
|
|
146
|
+
).dt.date
|
|
147
|
+
temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
|
|
148
|
+
temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"], errors="coerce")
|
|
149
|
+
temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
|
|
150
|
+
temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"], errors="coerce")
|
|
151
|
+
temp_df["占总交易量比例"] = pd.to_numeric(
|
|
152
|
+
temp_df["占总交易量比例"], errors="coerce"
|
|
153
|
+
)
|
|
144
154
|
temp_df.reset_index(drop=True, inplace=True)
|
|
145
155
|
return temp_df
|
|
146
156
|
elif indicator == "期权交易情况-认购交易量":
|
|
@@ -186,43 +196,35 @@ def option_lhb_em(
|
|
|
186
196
|
"占总交易量比例",
|
|
187
197
|
]
|
|
188
198
|
]
|
|
189
|
-
temp_df["交易日期"] = pd.to_datetime(
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
temp_df["
|
|
193
|
-
temp_df["
|
|
194
|
-
temp_df["
|
|
199
|
+
temp_df["交易日期"] = pd.to_datetime(
|
|
200
|
+
temp_df["交易日期"], errors="coerce"
|
|
201
|
+
).dt.date
|
|
202
|
+
temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
|
|
203
|
+
temp_df["交易量"] = pd.to_numeric(temp_df["交易量"], errors="coerce")
|
|
204
|
+
temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
|
|
205
|
+
temp_df["净交易量"] = pd.to_numeric(temp_df["净交易量"], errors="coerce")
|
|
206
|
+
temp_df["占总交易量比例"] = pd.to_numeric(
|
|
207
|
+
temp_df["占总交易量比例"], errors="coerce"
|
|
208
|
+
)
|
|
195
209
|
temp_df.reset_index(drop=True, inplace=True)
|
|
196
210
|
return temp_df
|
|
197
211
|
elif indicator == "期权持仓情况-认购持仓量":
|
|
198
212
|
temp_df = temp_df.iloc[21:, :]
|
|
199
|
-
temp_df.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
"-",
|
|
215
|
-
"-",
|
|
216
|
-
"-",
|
|
217
|
-
"-",
|
|
218
|
-
"-",
|
|
219
|
-
"-",
|
|
220
|
-
"-",
|
|
221
|
-
"持仓量",
|
|
222
|
-
"增减",
|
|
223
|
-
"净持仓量",
|
|
224
|
-
"占总交易量比例",
|
|
225
|
-
]
|
|
213
|
+
temp_df.rename(
|
|
214
|
+
columns={
|
|
215
|
+
"MEMBER_RANK": "名次",
|
|
216
|
+
"MEMBER_NAME_ABBR": "机构",
|
|
217
|
+
"BUY_POSITION": "持仓量",
|
|
218
|
+
"BUY_POSITION_CHANGE": "增减",
|
|
219
|
+
"NET_BUY_POSITION": "净持仓量",
|
|
220
|
+
"BUY_POSITION_RATIO": "占总交易量比例",
|
|
221
|
+
"TRADE_TYPE": "交易类型",
|
|
222
|
+
"TRADE_DATE": "交易日期",
|
|
223
|
+
"SECURITY_CODE": "证券代码",
|
|
224
|
+
"TARGET_NAME": "标的名称",
|
|
225
|
+
},
|
|
226
|
+
inplace=True,
|
|
227
|
+
)
|
|
226
228
|
temp_df = temp_df[
|
|
227
229
|
[
|
|
228
230
|
"交易类型",
|
|
@@ -237,12 +239,16 @@ def option_lhb_em(
|
|
|
237
239
|
"占总交易量比例",
|
|
238
240
|
]
|
|
239
241
|
]
|
|
240
|
-
temp_df["交易日期"] = pd.to_datetime(
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
temp_df["
|
|
244
|
-
temp_df["
|
|
245
|
-
temp_df["
|
|
242
|
+
temp_df["交易日期"] = pd.to_datetime(
|
|
243
|
+
temp_df["交易日期"], errors="coerce"
|
|
244
|
+
).dt.date
|
|
245
|
+
temp_df["名次"] = pd.to_numeric(temp_df["名次"], errors="coerce")
|
|
246
|
+
temp_df["持仓量"] = pd.to_numeric(temp_df["持仓量"], errors="coerce")
|
|
247
|
+
temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
|
|
248
|
+
temp_df["净持仓量"] = pd.to_numeric(temp_df["净持仓量"], errors="coerce")
|
|
249
|
+
temp_df["占总交易量比例"] = pd.to_numeric(
|
|
250
|
+
temp_df["占总交易量比例"], errors="coerce"
|
|
251
|
+
)
|
|
246
252
|
temp_df.reset_index(drop=True, inplace=True)
|
|
247
253
|
return temp_df
|
|
248
254
|
|
|
@@ -259,7 +265,7 @@ if __name__ == "__main__":
|
|
|
259
265
|
print(option_lhb_em_df)
|
|
260
266
|
|
|
261
267
|
option_lhb_em_df = option_lhb_em(
|
|
262
|
-
symbol="
|
|
268
|
+
symbol="159919", indicator="期权持仓情况-认购持仓量", trade_date="20240712"
|
|
263
269
|
)
|
|
264
270
|
print(option_lhb_em_df)
|
|
265
271
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- coding:utf-8 -*-
|
|
2
|
+
# !/usr/bin/env python
|
|
3
|
+
"""
|
|
4
|
+
Date: 2024/7/31 16:30
|
|
5
|
+
Desc: 搜猪-生猪大数据-各省均价实时排行榜
|
|
6
|
+
https://www.soozhu.com/price/data/center/
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import pandas as pd
|
|
10
|
+
import requests
|
|
11
|
+
from bs4 import BeautifulSoup
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def spot_hog_soozhu() -> pd.DataFrame:
|
|
15
|
+
"""
|
|
16
|
+
搜猪-生猪大数据-各省均价实时排行榜
|
|
17
|
+
https://www.soozhu.com/price/data/center/
|
|
18
|
+
:return: 各省均价实时排行榜
|
|
19
|
+
:rtype: pd.DataFrame
|
|
20
|
+
"""
|
|
21
|
+
session = requests.session()
|
|
22
|
+
r = session.get("https://www.soozhu.com/price/data/center/")
|
|
23
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
24
|
+
token = soup.find(name="input", attrs={"name": "csrfmiddlewaretoken"})["value"]
|
|
25
|
+
url = "https://www.soozhu.com/price/data/center/"
|
|
26
|
+
payload = {"act": "mapdata", "csrfmiddlewaretoken": token}
|
|
27
|
+
r = session.post(url, data=payload)
|
|
28
|
+
data_json = r.json()
|
|
29
|
+
temp_df = pd.DataFrame(data_json["vlist"])
|
|
30
|
+
price_list = [item[0] for item in temp_df["value"]]
|
|
31
|
+
pct_list = [item[1] for item in temp_df["value"]]
|
|
32
|
+
big_df = pd.DataFrame([temp_df["name"].values, price_list, pct_list]).T
|
|
33
|
+
big_df.columns = ["省份", "价格", "涨跌幅"]
|
|
34
|
+
big_df["价格"] = pd.to_numeric(big_df["价格"], errors="coerce")
|
|
35
|
+
big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
|
|
36
|
+
big_df["涨跌幅"] = round(big_df["涨跌幅"], 2)
|
|
37
|
+
return big_df
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
if __name__ == "__main__":
|
|
41
|
+
spot_hog_soozhu_df = spot_hog_soozhu()
|
|
42
|
+
print(spot_hog_soozhu_df)
|
|
@@ -5,6 +5,7 @@ Date: 2023/10/14 22:00
|
|
|
5
5
|
Desc: 东财财富-日内分时数据
|
|
6
6
|
https://quote.eastmoney.com/f1.html?newcode=0.000001
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import json
|
|
9
10
|
from functools import lru_cache
|
|
10
11
|
|
|
@@ -130,11 +131,13 @@ def stock_intraday_em(symbol: str = "000001") -> pd.DataFrame:
|
|
|
130
131
|
temp_df = pd.DataFrame(
|
|
131
132
|
[item.split(",") for item in event_json["data"]["details"]]
|
|
132
133
|
)
|
|
133
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
134
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
134
135
|
break
|
|
135
136
|
|
|
136
137
|
big_df.columns = ["时间", "成交价", "手数", "-", "买卖盘性质"]
|
|
137
|
-
big_df[
|
|
138
|
+
big_df["买卖盘性质"] = big_df["买卖盘性质"].map(
|
|
139
|
+
{"2": "买盘", "1": "卖盘", "4": "中性盘"}
|
|
140
|
+
)
|
|
138
141
|
big_df = big_df[["时间", "成交价", "手数", "买卖盘性质"]]
|
|
139
142
|
big_df["成交价"] = pd.to_numeric(big_df["成交价"], errors="coerce")
|
|
140
143
|
big_df["手数"] = pd.to_numeric(big_df["手数"], errors="coerce")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=3XF_Txcce4WrzrTzQs7QyyV49HEa9hhtDmmX9KcN7jQ,180171
|
|
2
2
|
akshare/datasets.py,sha256=oIu1zC7o_LMHY22lQmdM7vCnryHibKrJLBqJwQiitlI,1167
|
|
3
3
|
akshare/air/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
|
|
4
4
|
akshare/air/air_hebei.py,sha256=xIXNGLK7IGYqrkteM9fxnHAwWqk6PCQs6D9-ggZ7byY,4442
|
|
@@ -202,7 +202,7 @@ akshare/option/option_daily_stats_sse_szse.py,sha256=Ip_vE81qbEGt4ocbtWfUT7XGu0H
|
|
|
202
202
|
akshare/option/option_em.py,sha256=Q7t1z5GI4SQ9x9lpS7NClMikT4GP_a9vWcoEc9UIFiU,5949
|
|
203
203
|
akshare/option/option_finance.py,sha256=K91iFIEUVQOWVrJOjMazixkTAxR4_kgHEPeDkK0GOBU,12064
|
|
204
204
|
akshare/option/option_finance_sina.py,sha256=-bFes2XzYE84eMOQZIm_fVCMS17ltBL45J0HAnf5hCg,37848
|
|
205
|
-
akshare/option/option_lhb_em.py,sha256=
|
|
205
|
+
akshare/option/option_lhb_em.py,sha256=VHrV2BWAPE7tj8q7J5Crjm-sey8QarYd1lgxKbkX2CQ,9090
|
|
206
206
|
akshare/option/option_premium_analysis_em.py,sha256=uL-wxwsZu3UbeUmHs5W1x3PBfk0HfVyGubx6FvkeyPg,2471
|
|
207
207
|
akshare/option/option_risk_analysis_em.py,sha256=WYwjXzZhIr8WpwoVKXfAnFA7Ylx_vLQiFDeTxDvrnBk,2577
|
|
208
208
|
akshare/option/option_risk_indicator_sse.py,sha256=W1_mGrk8M9pbbadzSAy5euWMEGn4-cVWBc8Jk_I2WmI,2484
|
|
@@ -228,6 +228,7 @@ akshare/sport/__init__.py,sha256=aMsxmuOMZFkcI8tGmQanhPyPwyBpdeApAWyCtDRKMeg,81
|
|
|
228
228
|
akshare/sport/sport_olympic.py,sha256=CB1cvLpz2BWuadfonhHuQ17Qxt9X_3ks0Zc5Bff2w9k,818
|
|
229
229
|
akshare/sport/sport_olympic_winter.py,sha256=l_NhDpYfUBJMCLDezIa8un1S5Z_R6giv8EsuTRXgt6E,1473
|
|
230
230
|
akshare/spot/__init__.py,sha256=VGuha94pXYoezmMs3F3Q_ofaN8RZIrkJ2NtVv8hWCjY,83
|
|
231
|
+
akshare/spot/spot_hog_soozhu.py,sha256=p34Dr-OhNbn7h786o3n7mQqVzGeO_Jl6kqpiVn0r_l4,1494
|
|
231
232
|
akshare/spot/spot_price_qh.py,sha256=rRv09vR8K0U_x6x8AiLgGluxytIXkLatFNVkFbIh8eQ,3756
|
|
232
233
|
akshare/spot/spot_sge.py,sha256=Ta5EHUlGCSpNDlufIJcwgCErsJEUgH6HJHzYxoYtaMk,6313
|
|
233
234
|
akshare/stock/__init__.py,sha256=jSa9260d6aNZajaW68chI2mpPkDSXLOgi3eXrqo4MQ8,82
|
|
@@ -260,7 +261,7 @@ akshare/stock/stock_industry_pe_cninfo.py,sha256=0OjjsFGG90zJRZEBqaCsjKSpSAgrp3P
|
|
|
260
261
|
akshare/stock/stock_industry_sw.py,sha256=C0FjDg976EA0EksRS3sChbmJOZmOPEOzKCrHVs2YqTg,1441
|
|
261
262
|
akshare/stock/stock_info.py,sha256=AqzLzsTlYTSExBtyrZZBjI-D-VROj9e7Sq37WKHJ7XQ,16314
|
|
262
263
|
akshare/stock/stock_info_em.py,sha256=3um5PdmmXb4aR4N1TZrnqNj8a3FDwbMESlZ70KgWhPo,2555
|
|
263
|
-
akshare/stock/stock_intraday_em.py,sha256=
|
|
264
|
+
akshare/stock/stock_intraday_em.py,sha256=r1DvqVpRMJH_Y14GmgbKXQUWYi_KFhnEvsHD0Mp384o,4532
|
|
264
265
|
akshare/stock/stock_intraday_sina.py,sha256=HMuAAO2Teu4NUrOcBvyJdxYgWx-51qJCdtcqFmFNQg8,2359
|
|
265
266
|
akshare/stock/stock_ipo_summary_cninfo.py,sha256=Ma-54GsOOhRWxilLH-Qmm0VVbpJQGf2XWKaJ8NBSgAY,3847
|
|
266
267
|
akshare/stock/stock_new_cninfo.py,sha256=EOuZowDLQSSHyPAwXcuPXbQkqhbz2nRBZsM7o2ZWILE,5725
|
|
@@ -380,8 +381,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
|
380
381
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
381
382
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
382
383
|
tests/test_func.py,sha256=tfvy_YnYmDra2dkKZ5JvprU1gNW5X9T634PszdSdH1A,944
|
|
383
|
-
akshare-1.14.
|
|
384
|
-
akshare-1.14.
|
|
385
|
-
akshare-1.14.
|
|
386
|
-
akshare-1.14.
|
|
387
|
-
akshare-1.14.
|
|
384
|
+
akshare-1.14.46.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
|
385
|
+
akshare-1.14.46.dist-info/METADATA,sha256=FZHjHRgjuaX6Fc7M0drL5RYLN99jAgTN_Jgd-bfg-Y4,13976
|
|
386
|
+
akshare-1.14.46.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
387
|
+
akshare-1.14.46.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
388
|
+
akshare-1.14.46.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|