akshare 1.16.85__py3-none-any.whl → 1.16.86__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 CHANGED
@@ -3093,9 +3093,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3093
3093
  1.16.83 fix: fix stock_individual_info_em interface
3094
3094
  1.16.84 fix: fix stock_fhps_detail_ths interface
3095
3095
  1.16.85 fix: fix stock_dividend_cninfo interface
3096
+ 1.16.86 fix: fix index_yw interface
3096
3097
  """
3097
3098
 
3098
- __version__ = "1.16.85"
3099
+ __version__ = "1.16.86"
3099
3100
  __author__ = "AKFamily"
3100
3101
 
3101
3102
  import sys
akshare/index/index_yw.py CHANGED
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/4/17 19:17
4
+ Date: 2025/5/3
5
5
  Desc: 义乌小商品指数
6
- https://www.ywindex.com/Home/Product/index/
6
+ 目前可以通过这些接口直接请求到 JSON 数据
7
+ 周价格指数:https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/history/piweek?gcCode=
8
+ 月价格指数:https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/history/month?gcCode=
9
+ 月景气指数:https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/history/bi?gcCode=
10
+ 上涨:https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/get/rise
11
+ 下跌:https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/get/drop
7
12
  """
8
13
 
9
14
  import pandas as pd
10
15
  import requests
11
- from bs4 import BeautifulSoup
12
16
 
13
17
 
14
18
  def index_yw(symbol: str = "月景气指数") -> pd.DataFrame:
@@ -21,85 +25,58 @@ def index_yw(symbol: str = "月景气指数") -> pd.DataFrame:
21
25
  :rtype: pandas.DataFrame
22
26
  """
23
27
  import urllib3
24
-
25
- # 禁用InsecureRequestWarning
26
28
  urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
27
- name_num_dict = {
28
- "周价格指数": 1,
29
- "月价格指数": 3,
30
- "月景气指数": 5,
31
- }
32
- url = "https://www.ywindex.com/Home/Product/index/"
33
- res = requests.get(url, verify=False)
34
- soup = BeautifulSoup(res.text, features="lxml")
35
- table_name = (
36
- soup.find_all(attrs={"class": "tablex"})[name_num_dict[symbol]]
37
- .get_text()
38
- .split("\n\n\n\n\n")[2]
39
- .split("\n")
40
- )
41
- table_content = (
42
- soup.find_all(attrs={"class": "tablex"})[name_num_dict[symbol]]
43
- .get_text()
44
- .split("\n\n\n\n\n")[3]
45
- .split("\n\n")
46
- )
29
+
47
30
  if symbol == "月景气指数":
48
- table_df = pd.DataFrame([item.split("\n") for item in table_content]).iloc[
49
- :, :5
50
- ]
51
- table_df.columns = ["期数", "景气指数", "规模指数", "效益指数", "市场信心指数"]
52
- table_df["期数"] = pd.to_datetime(table_df["期数"], errors="coerce").dt.date
53
- table_df["景气指数"] = pd.to_numeric(table_df["景气指数"], errors="coerce")
54
- table_df["规模指数"] = pd.to_numeric(table_df["规模指数"], errors="coerce")
55
- table_df["效益指数"] = pd.to_numeric(table_df["效益指数"], errors="coerce")
56
- table_df["市场信心指数"] = pd.to_numeric(
57
- table_df["市场信心指数"], errors="coerce"
58
- )
59
- table_df.sort_values(["期数"], inplace=True, ignore_index=True)
60
- return table_df
61
- elif symbol == "周价格指数":
62
- table_df = pd.DataFrame([item.split("\n") for item in table_content]).iloc[
63
- :, :6
64
- ]
65
- table_df.columns = table_name
66
- table_df["期数"] = pd.to_datetime(table_df["期数"], errors="coerce").dt.date
67
- table_df["价格指数"] = pd.to_numeric(table_df["价格指数"], errors="coerce")
68
- table_df["场内价格指数"] = pd.to_numeric(
69
- table_df["场内价格指数"], errors="coerce"
70
- )
71
- table_df["网上价格指数"] = pd.to_numeric(
72
- table_df["网上价格指数"], errors="coerce"
73
- )
74
- table_df["订单价格指数"] = pd.to_numeric(
75
- table_df["订单价格指数"], errors="coerce"
76
- )
77
- table_df["出口价格指数"] = pd.to_numeric(
78
- table_df["出口价格指数"], errors="coerce"
31
+ url = "https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/history/bi?gcCode="
32
+ r = requests.get(url, verify=False)
33
+ data_json = r.json()
34
+ temp_df = pd.DataFrame(data_json["data"])
35
+ temp_df = temp_df[["indextimeno", "totalindex", "scopeindex", "benifitindex", "confidentindex"]]
36
+ temp_df.columns = ["期数", "景气指数", "规模指数", "效益指数", "市场信心指数"]
37
+ temp_df["期数"] = pd.to_datetime(temp_df["期数"], errors="coerce").dt.date
38
+ temp_df["景气指数"] = pd.to_numeric(temp_df["景气指数"], errors="coerce")
39
+ temp_df["规模指数"] = pd.to_numeric(temp_df["规模指数"], errors="coerce")
40
+ temp_df["效益指数"] = pd.to_numeric(temp_df["效益指数"], errors="coerce")
41
+ temp_df["市场信心指数"] = pd.to_numeric(
42
+ temp_df["市场信心指数"], errors="coerce"
79
43
  )
80
- table_df.sort_values(["期数"], inplace=True, ignore_index=True)
81
- return table_df
82
- elif symbol == "月价格指数":
83
- table_df = pd.DataFrame([item.split("\n") for item in table_content]).iloc[
84
- :, :6
85
- ]
86
- table_df.columns = table_name
87
- table_df["期数"] = pd.to_datetime(table_df["期数"], errors="coerce").dt.date
88
- table_df["价格指数"] = pd.to_numeric(table_df["价格指数"], errors="coerce")
89
- table_df["场内价格指数"] = pd.to_numeric(
90
- table_df["场内价格指数"], errors="coerce"
44
+ temp_df.sort_values(["期数"], inplace=True, ignore_index=True)
45
+ return temp_df
46
+ else:
47
+ symbol_map = {
48
+ "周价格指数": "piweek",
49
+ "月价格指数": "month"
50
+ }
51
+ url = f"https://apiserver.chinagoods.com/yiwuindex/v1/active/industry/class/history/{symbol_map[symbol]}?gcCode="
52
+ r = requests.get(url, verify=False)
53
+ data_json = r.json()
54
+ columns_name = {
55
+ "indextimeno": "期数",
56
+ "totalpriceindex": "价格指数",
57
+ "stockdealpriceindex": "场内价格指数",
58
+ "netdealpriceindex": "网上价格指数",
59
+ "orderdealpriceindex": "订单价格指数",
60
+ "outdealpriceindex": "出口价格指数",
61
+ }
62
+ temp_df = pd.DataFrame(data_json["data"])
63
+ temp_df.columns = [columns_name[name] for name in temp_df.columns]
64
+ temp_df["期数"] = pd.to_datetime(temp_df["期数"], errors="coerce").dt.date
65
+ temp_df["价格指数"] = pd.to_numeric(temp_df["价格指数"], errors="coerce")
66
+ temp_df["场内价格指数"] = pd.to_numeric(
67
+ temp_df["场内价格指数"], errors="coerce"
91
68
  )
92
- table_df["网上价格指数"] = pd.to_numeric(
93
- table_df["网上价格指数"], errors="coerce"
69
+ temp_df["网上价格指数"] = pd.to_numeric(
70
+ temp_df["网上价格指数"], errors="coerce"
94
71
  )
95
- table_df["订单价格指数"] = pd.to_numeric(
96
- table_df["订单价格指数"], errors="coerce"
72
+ temp_df["订单价格指数"] = pd.to_numeric(
73
+ temp_df["订单价格指数"], errors="coerce"
97
74
  )
98
- table_df["出口价格指数"] = pd.to_numeric(
99
- table_df["出口价格指数"], errors="coerce"
75
+ temp_df["出口价格指数"] = pd.to_numeric(
76
+ temp_df["出口价格指数"], errors="coerce"
100
77
  )
101
- table_df.sort_values(["期数"], inplace=True, ignore_index=True)
102
- return table_df
78
+ temp_df.sort_values(by=["期数"], inplace=True, ignore_index=True)
79
+ return temp_df
103
80
 
104
81
 
105
82
  if __name__ == "__main__":
@@ -111,3 +88,4 @@ if __name__ == "__main__":
111
88
 
112
89
  index_yw_df = index_yw(symbol="月景气指数")
113
90
  print(index_yw_df)
91
+
@@ -1,7 +1,7 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2024/6/5 17:00
4
+ Date: 2025/5/4 22:00
5
5
  Desc: 巨潮资讯-个股-历史分红
6
6
  https://webapi.cninfo.com.cn/#/company?companyid=600009
7
7
  """
@@ -72,6 +72,7 @@ def stock_dividend_cninfo(symbol: str = "600009") -> pd.DataFrame:
72
72
  "F023D": "派息日",
73
73
  "F025D": "股份到账日",
74
74
  "F007V": "实施方案分红说明",
75
+ "F001V": "报告时间",
75
76
  }, inplace=True)
76
77
 
77
78
  temp_df["实施方案公告日期"] = pd.to_datetime(
@@ -97,6 +98,7 @@ def stock_dividend_cninfo(symbol: str = "600009") -> pd.DataFrame:
97
98
  "派息日",
98
99
  "股份到账日",
99
100
  "实施方案分红说明",
101
+ "报告时间",
100
102
  ]]
101
103
  return temp_df
102
104
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/9/1 16:00
4
+ Date: 2025/5/5 00:00
5
5
  Desc: 股票数据-总貌-市场总貌
6
6
  股票数据-总貌-成交概括
7
7
  https://www.szse.cn/market/overview/index.html
@@ -228,6 +228,8 @@ def stock_sse_deal_daily(date: str = "20241216") -> pd.DataFrame:
228
228
  """
229
229
  上海证券交易所-数据-股票数据-成交概况-股票成交概况-每日股票情况
230
230
  https://www.sse.com.cn/market/stockdata/overview/day/
231
+ :param date: 交易日
232
+ :type date: str
231
233
  :return: 每日股票情况
232
234
  :rtype: pandas.DataFrame
233
235
  """
@@ -258,6 +260,16 @@ def stock_sse_deal_daily(date: str = "20241216") -> pd.DataFrame:
258
260
  "科创板",
259
261
  ]
260
262
  temp_df["股票回购"] = "-"
263
+ elif len(temp_df.columns) == 4:
264
+ # 20220104
265
+ temp_df.columns = [
266
+ "单日情况",
267
+ "主板A",
268
+ "主板B",
269
+ "科创板",
270
+ ]
271
+ temp_df["股票"] = "-"
272
+ temp_df["股票回购"] = "-"
261
273
  else:
262
274
  temp_df.columns = [
263
275
  "单日情况",
@@ -332,5 +344,5 @@ if __name__ == "__main__":
332
344
  stock_sse_summary_df = stock_sse_summary()
333
345
  print(stock_sse_summary_df)
334
346
 
335
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20250228")
347
+ stock_sse_deal_daily_df = stock_sse_deal_daily(date="20220104")
336
348
  print(stock_sse_deal_daily_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.16.85
3
+ Version: 1.16.86
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=LNOcSAT2d50FYa2yRSHRgMgcpYB70kXGTk3ACnEEuBM,193750
1
+ akshare/__init__.py,sha256=p9CY21caPV_wzpw9NMjD6olWW5UJAYlphGf3LvKd85Y,193786
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
@@ -177,7 +177,7 @@ akshare/index/index_stock_zh.py,sha256=2gr4gGJ6N6Is5cYx3_JDtDPkiriRlieFrIE6mVYi7
177
177
  akshare/index/index_stock_zh_csindex.py,sha256=sRVoDD-fitqAMuDs0XPm1oCz2nZ2QTkvNswL1WvXpwo,4164
178
178
  akshare/index/index_sugar.py,sha256=u-huRz_WLCc2xHKRDrI3BHD7lm0XrMkQQwcEfS3FMvo,5104
179
179
  akshare/index/index_sw.py,sha256=hETMmFszQb7JDY8UHjLK8szfwkr7Ui_6QcseOoEfxaI,10456
180
- akshare/index/index_yw.py,sha256=6FF38kooLQulnMTqAd1__TNWip4XC1VA72k3T049xYc,4319
180
+ akshare/index/index_yw.py,sha256=_T3BVcP4ZpiIbTPhnXxa2TWudtqJBFXdtFNF8DTL9NQ,3970
181
181
  akshare/index/index_zh_a_scope.py,sha256=4Ej2Gnqtd66EBiI67sQZKhblcIJXdD5CoMIJYD_KwYU,1367
182
182
  akshare/index/index_zh_em.py,sha256=YliKV790ypLdw9oEZ23xVVl6sbGiGxB2grmVXpSHSeA,14090
183
183
  akshare/interest_rate/__init__.py,sha256=O6dl1roEQUWwtXgRpa6wOABUU7MH0YmFDrkfhBpYOX4,81
@@ -242,7 +242,7 @@ akshare/stock/stock_board_industry_em.py,sha256=9QfIxNb5EN5xOYEVXcKr1sQVrpt9muSn
242
242
  akshare/stock/stock_cg_equity_mortgage.py,sha256=Pui5aWKKPwGuKjF_GNpejDzsMGNPrxiaJviLz3x2e9I,3426
243
243
  akshare/stock/stock_cg_guarantee.py,sha256=ts7qcQhhyN1PHB7Q4XlMn38HhfVvubOvky9RZfmUP94,3844
244
244
  akshare/stock/stock_cg_lawsuit.py,sha256=6Y92pPw0JgyrInteqHuU07G1jwmdX2wjaDtrJN8y6Hg,4129
245
- akshare/stock/stock_dividend_cninfo.py,sha256=_DguykUF2IxQLOP2SZT6ZT_-Kaw_ct6nBcnnS5bAXZA,3578
245
+ akshare/stock/stock_dividend_cninfo.py,sha256=BLaCQ4dghegpO8hgTcrs7LeV48OsMFX2N50exdti5nQ,3635
246
246
  akshare/stock/stock_dzjy_em.py,sha256=o0ss5hZhMTxOALKBfSmd36P26PD4i7QzkdCq50VAzVo,22556
247
247
  akshare/stock/stock_fund_em.py,sha256=pdUOUcvJ1Ofrrhr8Esc_siZcRDiD35T2kScx0pPgEKA,48975
248
248
  akshare/stock/stock_fund_hold.py,sha256=WstyW_tQuNj2pTEYJ2XMV6I1IQXEZl6EnXEsV26G7Gs,6022
@@ -275,7 +275,7 @@ akshare/stock/stock_repurchase_em.py,sha256=oOefrlTUo7gJsREaTHdj5HKr_sQeVamU43AT
275
275
  akshare/stock/stock_share_changes_cninfo.py,sha256=siy4PiZgYuNQn5jUUg2G7CyZ_yvuXNi3MVUDFhe5npY,4923
276
276
  akshare/stock/stock_share_hold.py,sha256=PSPiU4gHKe2UGPI_bCgm-Uw-DlQy1VOXAHwWYpiLVNo,10998
277
277
  akshare/stock/stock_stop.py,sha256=WRFvnldImkwNI8b8Y3kAdS6Ua69DUG5s5nlKHZav7R0,1161
278
- akshare/stock/stock_summary.py,sha256=iA-RqKPViHTCKoqYx6Pd3tfJ6vxD7I8rXKlajTlAI8I,11436
278
+ akshare/stock/stock_summary.py,sha256=0GNC0dlThpn9fE7Etd7HMvMHOsjFX_bME0WY-nKKpfU,11745
279
279
  akshare/stock/stock_us_famous.py,sha256=03qlwpDQT3EJSSDuGuzemP3TU2QwLZBOXotaOgDe1dQ,3628
280
280
  akshare/stock/stock_us_js.py,sha256=VleGUb7K-NjmW3jMPRc2jwHXM0CMq4IzVM9kUpwURDQ,2503
281
281
  akshare/stock/stock_us_pink.py,sha256=b48o56E6Ur1Z_50gPvaZo8ZyegePwVJs8z8KMSqHg0U,3035
@@ -394,10 +394,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
394
394
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
395
395
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
396
396
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
397
- akshare-1.16.85.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
397
+ akshare-1.16.86.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
398
398
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
399
399
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
400
- akshare-1.16.85.dist-info/METADATA,sha256=WhhnSXHtHUeQfARpEJik3wHXxaP4wFV6W7J91PWCoFg,11902
401
- akshare-1.16.85.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
402
- akshare-1.16.85.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
403
- akshare-1.16.85.dist-info/RECORD,,
400
+ akshare-1.16.86.dist-info/METADATA,sha256=kvhLqCJxMNmZnw8PqR32QtVQdCGyb4JBEl9pMR1AL7g,11902
401
+ akshare-1.16.86.dist-info/WHEEL,sha256=7ciDxtlje1X8OhobNuGgi1t-ACdFSelPnSmDPrtlobY,91
402
+ akshare-1.16.86.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
403
+ akshare-1.16.86.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.1.0)
2
+ Generator: setuptools (80.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5