akshare 1.16.85__py3-none-any.whl → 1.16.87__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,11 @@ 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
3097
+ 1.16.87 fix: fix stock_zygc_em interface
3096
3098
  """
3097
3099
 
3098
- __version__ = "1.16.85"
3100
+ __version__ = "1.16.87"
3099
3101
  __author__ = "AKFamily"
3100
3102
 
3101
3103
  import sys
@@ -3669,15 +3671,10 @@ from akshare.bond.bond_cbond import (
3669
3671
  """
3670
3672
  from akshare.stock_feature.stock_classify_sina import stock_classify_sina
3671
3673
 
3672
- """
3673
- 管理层讨论与分析
3674
- """
3675
- from akshare.stock_fundamental.stock_mda_ym import stock_mda_ym
3676
-
3677
3674
  """
3678
3675
  主营构成
3679
3676
  """
3680
- from akshare.stock_fundamental.stock_zygc import stock_zygc_ym, stock_zygc_em
3677
+ from akshare.stock_fundamental.stock_zygc import stock_zygc_em
3681
3678
 
3682
3679
  """
3683
3680
  人民币汇率中间价
@@ -4076,11 +4073,6 @@ from akshare.reits.reits_basic import reits_realtime_em, reits_hist_em
4076
4073
  from akshare.stock_feature.stock_ttm_lyr import stock_a_ttm_lyr
4077
4074
  from akshare.stock_feature.stock_all_pb import stock_a_all_pb
4078
4075
 
4079
- """
4080
- 奥运奖牌
4081
- """
4082
- from akshare.sport.sport_olympic import sport_olympic_hist
4083
-
4084
4076
  """
4085
4077
  宏观-加拿大
4086
4078
  """
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,69 +1,13 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2024/9/3 16:30
4
+ Date: 2025/5/6 14:30
5
5
  Desc: 主营构成
6
6
  https://emweb.securities.eastmoney.com/PC_HSF10/BusinessAnalysis/Index?type=web&code=SH688041#
7
- https://f10.emoney.cn/f10/zbyz/1000001
8
7
  """
9
8
 
10
- from io import StringIO
11
-
12
9
  import pandas as pd
13
10
  import requests
14
- from bs4 import BeautifulSoup
15
-
16
-
17
- def stock_zygc_ym(symbol: str = "000001") -> pd.DataFrame:
18
- """
19
- 益盟-F10-主营构成
20
- https://f10.emoney.cn/f10/zbyz/1000001
21
- :param symbol: 股票代码
22
- :type symbol: str
23
- :return: 主营构成
24
- :rtype: pandas.DataFrame
25
- """
26
- url = f"http://f10.emoney.cn/f10/zygc/{symbol}"
27
- r = requests.get(url)
28
- soup = BeautifulSoup(r.text, features="lxml")
29
- year_list = [
30
- item.text.strip()
31
- for item in soup.find(attrs={"class": "swlab_t"}).find_all("li")
32
- ]
33
- big_df = pd.DataFrame()
34
- for i, item in enumerate(year_list, 2):
35
- temp_df = pd.read_html(StringIO(r.text), header=0)[i]
36
- temp_df.columns = [
37
- "分类方向",
38
- "分类",
39
- "营业收入",
40
- "营业收入-同比增长",
41
- "营业收入-占主营收入比",
42
- "营业成本",
43
- "营业成本-同比增长",
44
- "营业成本-占主营成本比",
45
- "毛利率",
46
- "毛利率-同比增长",
47
- ]
48
- temp_df["报告期"] = item
49
- big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
50
-
51
- big_df = big_df[
52
- [
53
- "报告期",
54
- "分类方向",
55
- "分类",
56
- "营业收入",
57
- "营业收入-同比增长",
58
- "营业收入-占主营收入比",
59
- "营业成本",
60
- "营业成本-同比增长",
61
- "营业成本-占主营成本比",
62
- "毛利率",
63
- "毛利率-同比增长",
64
- ]
65
- ]
66
- return big_df
67
11
 
68
12
 
69
13
  def stock_zygc_em(symbol: str = "SH688041") -> pd.DataFrame:
@@ -128,8 +72,5 @@ def stock_zygc_em(symbol: str = "SH688041") -> pd.DataFrame:
128
72
 
129
73
 
130
74
  if __name__ == "__main__":
131
- stock_zygc_ym_df = stock_zygc_ym(symbol="000338")
132
- print(stock_zygc_ym_df)
133
-
134
75
  stock_zygc_em_df = stock_zygc_em(symbol="SH688041")
135
76
  print(stock_zygc_em_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.16.85
3
+ Version: 1.16.87
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=bQAkRGzJALOIC0dmOW8BaN-lLH0YRZLpWoUOC22cvLA,193633
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
@@ -227,8 +227,6 @@ akshare/rate/__init__.py,sha256=qbRx0IhTYi5ZakakyP1xD7dwHmqqkuAvBh0Z1kQr3MQ,82
227
227
  akshare/rate/repo_rate.py,sha256=lxSEMOeWsf-cVfJfZ7XBfSqOwYYQSJKp3iamCWubfjg,4295
228
228
  akshare/reits/__init__.py,sha256=icmIWDUbQg5O-0SJCvf44FzvypneQrb3D-s540_kFk8,81
229
229
  akshare/reits/reits_basic.py,sha256=HrVz8z9EUBkKuHDvsZlL2gjR9Ff3Ea082RnVi-DY7aY,7326
230
- akshare/sport/__init__.py,sha256=TIyl-1_2DZrmL1bW5qKjQ11C1E-wtgenA7JHCkWMjeA,80
231
- akshare/sport/sport_olympic.py,sha256=InkuHz4So8r-0101rUzdro58zsgtr5SLuSxWjiObRG8,819
232
230
  akshare/spot/__init__.py,sha256=BvXm1zCReGMWbcANKydbK9uvYzNU-cbReuUYbdDqunI,82
233
231
  akshare/spot/spot_hog_soozhu.py,sha256=IEt7zrDs0ptAKgMA7QRIk45jcMLcA_LGq6Y3lKLFTi0,9397
234
232
  akshare/spot/spot_price_qh.py,sha256=rRv09vR8K0U_x6x8AiLgGluxytIXkLatFNVkFbIh8eQ,3756
@@ -242,7 +240,7 @@ akshare/stock/stock_board_industry_em.py,sha256=9QfIxNb5EN5xOYEVXcKr1sQVrpt9muSn
242
240
  akshare/stock/stock_cg_equity_mortgage.py,sha256=Pui5aWKKPwGuKjF_GNpejDzsMGNPrxiaJviLz3x2e9I,3426
243
241
  akshare/stock/stock_cg_guarantee.py,sha256=ts7qcQhhyN1PHB7Q4XlMn38HhfVvubOvky9RZfmUP94,3844
244
242
  akshare/stock/stock_cg_lawsuit.py,sha256=6Y92pPw0JgyrInteqHuU07G1jwmdX2wjaDtrJN8y6Hg,4129
245
- akshare/stock/stock_dividend_cninfo.py,sha256=_DguykUF2IxQLOP2SZT6ZT_-Kaw_ct6nBcnnS5bAXZA,3578
243
+ akshare/stock/stock_dividend_cninfo.py,sha256=BLaCQ4dghegpO8hgTcrs7LeV48OsMFX2N50exdti5nQ,3635
246
244
  akshare/stock/stock_dzjy_em.py,sha256=o0ss5hZhMTxOALKBfSmd36P26PD4i7QzkdCq50VAzVo,22556
247
245
  akshare/stock/stock_fund_em.py,sha256=pdUOUcvJ1Ofrrhr8Esc_siZcRDiD35T2kScx0pPgEKA,48975
248
246
  akshare/stock/stock_fund_hold.py,sha256=WstyW_tQuNj2pTEYJ2XMV6I1IQXEZl6EnXEsV26G7Gs,6022
@@ -275,7 +273,7 @@ akshare/stock/stock_repurchase_em.py,sha256=oOefrlTUo7gJsREaTHdj5HKr_sQeVamU43AT
275
273
  akshare/stock/stock_share_changes_cninfo.py,sha256=siy4PiZgYuNQn5jUUg2G7CyZ_yvuXNi3MVUDFhe5npY,4923
276
274
  akshare/stock/stock_share_hold.py,sha256=PSPiU4gHKe2UGPI_bCgm-Uw-DlQy1VOXAHwWYpiLVNo,10998
277
275
  akshare/stock/stock_stop.py,sha256=WRFvnldImkwNI8b8Y3kAdS6Ua69DUG5s5nlKHZav7R0,1161
278
- akshare/stock/stock_summary.py,sha256=iA-RqKPViHTCKoqYx6Pd3tfJ6vxD7I8rXKlajTlAI8I,11436
276
+ akshare/stock/stock_summary.py,sha256=0GNC0dlThpn9fE7Etd7HMvMHOsjFX_bME0WY-nKKpfU,11745
279
277
  akshare/stock/stock_us_famous.py,sha256=03qlwpDQT3EJSSDuGuzemP3TU2QwLZBOXotaOgDe1dQ,3628
280
278
  akshare/stock/stock_us_js.py,sha256=VleGUb7K-NjmW3jMPRc2jwHXM0CMq4IzVM9kUpwURDQ,2503
281
279
  akshare/stock/stock_us_pink.py,sha256=b48o56E6Ur1Z_50gPvaZo8ZyegePwVJs8z8KMSqHg0U,3035
@@ -374,7 +372,6 @@ akshare/stock_fundamental/stock_hold.py,sha256=hiJx2i3hCW7Kl7kMs4Kh1QNvsg-sIUORv
374
372
  akshare/stock_fundamental/stock_ipo_declare.py,sha256=INsQCHRz-j992mg8x71AiIPsLBSr5e_J03EuWmoP0kc,1810
375
373
  akshare/stock_fundamental/stock_kcb_detail_sse.py,sha256=U2w4wUuOTnavqNEmOdQbTZfnEkDdSs91s82YdA6rwNQ,941
376
374
  akshare/stock_fundamental/stock_kcb_sse.py,sha256=cDCBlCm7PJB1zA9XISpkd2FqzAJnhkfbp21au8Mliy8,1536
377
- akshare/stock_fundamental/stock_mda_ym.py,sha256=BXJJ-39I7GzJ7y_8k_pqUjvUrg1bSlaMu3cPMgV0cvY,1180
378
375
  akshare/stock_fundamental/stock_notice.py,sha256=tGxGz1Usr3qQzgs1Y71imDPkqJz5ooismz3BiaBwQR0,3928
379
376
  akshare/stock_fundamental/stock_profit_forecast_em.py,sha256=_ZlWkyz-FswlICbjk_YiHjRwrlLftm_piQIPFkZMrjE,5701
380
377
  akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py,sha256=U0A5oRquM_a4Uz92e17ZPM8h-4_le6Q5N4bFi1yV9Fw,5462
@@ -382,7 +379,7 @@ akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=8fzPGyBcxWSvoa7UZk
382
379
  akshare/stock_fundamental/stock_recommend.py,sha256=50sdN8zYzBQHkVowSjuyMYgqGMTJe8tB8NXu50jrOXw,4617
383
380
  akshare/stock_fundamental/stock_register_em.py,sha256=QxQh7kddjXLainVVugvOCYG8nDyOv31I8npQmXw3Ccs,15643
384
381
  akshare/stock_fundamental/stock_restricted_em.py,sha256=e5G3oiZBf9d_a8quX5nLzn3RggeF4yX3j-h3nAZBRmA,13378
385
- akshare/stock_fundamental/stock_zygc.py,sha256=6a7wfpWdL5UgzW7V28nEAQwXvlfQJwYj6wSa55HV02s,4471
382
+ akshare/stock_fundamental/stock_zygc.py,sha256=so3v6SfM5rUgdWYeIJP8t3VbpgbYNNnzrFfOYRdTpO0,2727
386
383
  akshare/stock_fundamental/stock_zyjs_ths.py,sha256=5aniSf9Wp-j0fsCna9dBU8SA2M4CHTpN-GABUv6YWUM,1538
387
384
  akshare/tool/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
388
385
  akshare/tool/trade_date_hist.py,sha256=o9021QHdOEVucjynFl0jLEi1PEMlNxvDKnMsFSwRfqg,1431
@@ -394,10 +391,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
394
391
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
395
392
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
396
393
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
397
- akshare-1.16.85.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
394
+ akshare-1.16.87.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
398
395
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
399
396
  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,,
397
+ akshare-1.16.87.dist-info/METADATA,sha256=iuBGrg-_qyQpkl9mk7jQEZe80Zph23IYGMGlZ--riC8,11902
398
+ akshare-1.16.87.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
399
+ akshare-1.16.87.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
400
+ akshare-1.16.87.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.1.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
akshare/sport/__init__.py DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2021/8/2 16:47
5
- Desc:
6
- """
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2021/8/2 16:47
5
- Desc: 运动-奥运会
6
- https://www.kaggle.com/marcogdepinto/let-s-discover-more-about-the-olympic-games
7
- """
8
-
9
- import pandas as pd
10
-
11
-
12
- def sport_olympic_hist() -> pd.DataFrame:
13
- """
14
- 运动-奥运会-奖牌数据
15
- https://www.kaggle.com/marcogdepinto/let-s-discover-more-about-the-olympic-games
16
- :return: 奥运会-奖牌数据
17
- :rtype: pandas.DataFrame
18
- """
19
- url = "https://jfds-1252952517.cos.ap-chengdu.myqcloud.com/akshare/data/data_olympic/athlete_events.zip"
20
- temp_df = pd.read_csv(url)
21
- columns_list = [item.lower() for item in temp_df.columns.tolist()]
22
- temp_df.columns = columns_list
23
- return temp_df
24
-
25
-
26
- if __name__ == "__main__":
27
- sport_olympic_hist_df = sport_olympic_hist()
28
- print(sport_olympic_hist_df)
@@ -1,42 +0,0 @@
1
- # -*- coding:utf-8 -*-
2
- # !/usr/bin/env python
3
- """
4
- Date: 2024/9/3 21:00
5
- Desc: 益盟-F10-管理层讨论与分析
6
- https://f10.emoney.cn/f10/zbyz/1000001
7
- """
8
-
9
- import pandas as pd
10
- import requests
11
- from bs4 import BeautifulSoup
12
-
13
-
14
- def stock_mda_ym(symbol: str = "000001") -> pd.DataFrame:
15
- """
16
- 益盟-F10-管理层讨论与分析
17
- https://f10.emoney.cn/f10/zbyz/1000001
18
- :param symbol: 股票代码
19
- :type symbol: str
20
- :return: 管理层讨论与分析
21
- :rtype: pandas.DataFrame
22
- """
23
- url = f"http://f10.emoney.cn/f10/zygc/{symbol}"
24
- r = requests.get(url)
25
- soup = BeautifulSoup(r.text, features="lxml")
26
- year_list = [
27
- item.text.strip()
28
- for item in soup.find(attrs={"class": "swlab_t"}).find_all("li")
29
- ]
30
- talk_list = [
31
- item.text.strip().replace("\xa0", " ")
32
- for item in soup.find_all(attrs={"class": "cnt"})
33
- ]
34
- big_df = pd.DataFrame([year_list, talk_list]).T
35
- big_df.columns = ["报告期", "内容"]
36
- big_df.sort_values(by=["报告期"], ignore_index=True, inplace=True)
37
- return big_df
38
-
39
-
40
- if __name__ == "__main__":
41
- stock_mda_ym_df = stock_mda_ym(symbol="000001")
42
- print(stock_mda_ym_df)