akshare 1.16.18__py3-none-any.whl → 1.16.20__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 CHANGED
@@ -3027,9 +3027,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3027
3027
  1.16.16 fix: fix stock_board_concept_spot_em interface
3028
3028
  1.16.17 fix: fix stock_research_report_em interface
3029
3029
  1.16.18 fix: fix stock_board_concept_spot_em interface
3030
+ 1.16.19 fix: fix stock_profit_forecast_ths interface
3031
+ 1.16.20 fix: fix stock_lhb_detail_em interface
3030
3032
  """
3031
3033
 
3032
- __version__ = "1.16.18"
3034
+ __version__ = "1.16.20"
3033
3035
  __author__ = "AKFamily"
3034
3036
 
3035
3037
  import sys
@@ -250,14 +250,25 @@ def stock_sse_deal_daily(date: str = "20241216") -> pd.DataFrame:
250
250
  temp_df = pd.DataFrame(data_json["result"])
251
251
  temp_df = temp_df.T
252
252
  temp_df.reset_index(inplace=True)
253
- temp_df.columns = [
254
- "单日情况",
255
- "主板A",
256
- "主板B",
257
- "科创板",
258
- "股票回购",
259
- "股票",
260
- ]
253
+ if len(temp_df.columns) == 5:
254
+ # 20250228
255
+ temp_df.columns = [
256
+ "单日情况",
257
+ "股票",
258
+ "主板A",
259
+ "主板B",
260
+ "科创板",
261
+ ]
262
+ temp_df["股票回购"] = "-"
263
+ else:
264
+ temp_df.columns = [
265
+ "单日情况",
266
+ "主板A",
267
+ "主板B",
268
+ "科创板",
269
+ "股票回购",
270
+ "股票",
271
+ ]
261
272
  temp_df = temp_df[
262
273
  [
263
274
  "单日情况",
@@ -323,5 +334,5 @@ if __name__ == "__main__":
323
334
  stock_sse_summary_df = stock_sse_summary()
324
335
  print(stock_sse_summary_df)
325
336
 
326
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20250221")
337
+ stock_sse_deal_daily_df = stock_sse_deal_daily(date="20250228")
327
338
  print(stock_sse_deal_daily_df)
@@ -903,7 +903,7 @@ def stock_lhb_stock_detail_em(
903
903
 
904
904
  if __name__ == "__main__":
905
905
  stock_lhb_detail_em_df = stock_lhb_detail_em(
906
- start_date="20230403", end_date="20230417"
906
+ start_date="20250201", end_date="20250228"
907
907
  )
908
908
  print(stock_lhb_detail_em_df)
909
909
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/8/28 15:00
4
+ Date: 2025/3/1 15:00
5
5
  Desc: 同花顺-盈利预测
6
6
  https://basic.10jqka.com.cn/new/600519/worth.html
7
7
  """
@@ -30,44 +30,86 @@ def stock_profit_forecast_ths(
30
30
  url = f"https://basic.10jqka.com.cn/new/{symbol}/worth.html"
31
31
  r = requests.get(url, headers=headers)
32
32
  r.encoding = "gbk"
33
- if indicator == "预测年报每股收益":
34
- temp_df = pd.read_html(StringIO(r.text))[0]
35
- temp_df["年度"] = temp_df["年度"].astype(str)
36
- return temp_df
37
- if indicator == "预测年报净利润":
38
- temp_df = pd.read_html(StringIO(r.text))[1]
39
- temp_df["年度"] = temp_df["年度"].astype(str)
40
- return temp_df
41
- if indicator == "业绩预测详表-机构":
42
- temp_df = pd.read_html(StringIO(r.text))[2]
43
- columns_list = []
44
- for item in temp_df.columns:
45
- columns_list.append(item[1])
46
- columns_list[2] = "预测年报每股收益" + columns_list[2]
47
- columns_list[3] = "预测年报每股收益" + columns_list[3]
48
- columns_list[4] = "预测年报每股收益" + columns_list[4]
49
- columns_list[5] = "预测年报净利润" + columns_list[5]
50
- columns_list[6] = "预测年报净利润" + columns_list[6]
51
- columns_list[7] = "预测年报净利润" + columns_list[7]
52
- temp_df.columns = columns_list
53
- temp_df["报告日期"] = pd.to_datetime(temp_df["报告日期"]).dt.date
54
- return temp_df
55
- if indicator == "业绩预测详表-详细指标预测":
56
- temp_df = pd.read_html(StringIO(r.text))[3]
57
- temp_df.columns = [
58
- item.replace("(", "-").replace(")", "") for item in temp_df.columns
59
- ]
60
- return temp_df
33
+ if "本年度暂无机构做出业绩预测" in r.text:
34
+ # 处理 `本年度暂无机构做出业绩预测` 的情况
35
+ if indicator == "预测年报每股收益":
36
+ return pd.DataFrame()
37
+ elif indicator == "预测年报净利润":
38
+ return pd.DataFrame()
39
+ elif indicator == "业绩预测详表-机构":
40
+ temp_df = pd.read_html(StringIO(r.text))[0]
41
+ columns_list = []
42
+ for item in temp_df.columns:
43
+ columns_list.append(item[1])
44
+ columns_list[2] = "预测年报每股收益" + columns_list[2]
45
+ columns_list[3] = "预测年报每股收益" + columns_list[3]
46
+ columns_list[4] = "预测年报每股收益" + columns_list[4]
47
+ columns_list[5] = "预测年报净利润" + columns_list[5]
48
+ columns_list[6] = "预测年报净利润" + columns_list[6]
49
+ columns_list[7] = "预测年报净利润" + columns_list[7]
50
+ temp_df.columns = columns_list
51
+ temp_df["报告日期"] = pd.to_datetime(
52
+ temp_df["报告日期"], errors="coerce"
53
+ ).dt.date
54
+ return temp_df
55
+ elif indicator == "业绩预测详表-详细指标预测":
56
+ temp_df = pd.read_html(StringIO(r.text))[1]
57
+ temp_df.columns = [
58
+ item.replace("(", "-").replace(")", "") for item in temp_df.columns
59
+ ]
60
+ return temp_df
61
+ else:
62
+ return pd.DataFrame()
63
+ else:
64
+ if indicator == "预测年报每股收益":
65
+ temp_df = pd.read_html(StringIO(r.text))[0]
66
+ temp_df["年度"] = temp_df["年度"].astype(str)
67
+ return temp_df
68
+ elif indicator == "预测年报净利润":
69
+ temp_df = pd.read_html(StringIO(r.text))[1]
70
+ temp_df["年度"] = temp_df["年度"].astype(str)
71
+ return temp_df
72
+ elif indicator == "业绩预测详表-机构":
73
+ temp_df = pd.read_html(StringIO(r.text))[2]
74
+ columns_list = []
75
+ for item in temp_df.columns:
76
+ columns_list.append(item[1])
77
+ columns_list[2] = "预测年报每股收益" + columns_list[2]
78
+ columns_list[3] = "预测年报每股收益" + columns_list[3]
79
+ columns_list[4] = "预测年报每股收益" + columns_list[4]
80
+ columns_list[5] = "预测年报净利润" + columns_list[5]
81
+ columns_list[6] = "预测年报净利润" + columns_list[6]
82
+ columns_list[7] = "预测年报净利润" + columns_list[7]
83
+ temp_df.columns = columns_list
84
+ temp_df["报告日期"] = pd.to_datetime(temp_df["报告日期"]).dt.date
85
+ return temp_df
86
+ elif indicator == "业绩预测详表-详细指标预测":
87
+ temp_df = pd.read_html(StringIO(r.text))[3]
88
+ temp_df.columns = [
89
+ item.replace("(", "-").replace(")", "") for item in temp_df.columns
90
+ ]
91
+ return temp_df
92
+ else:
93
+ return pd.DataFrame()
61
94
 
62
95
 
63
96
  if __name__ == "__main__":
64
- for _item in [
65
- "预测年报每股收益",
66
- "预测年报净利润",
67
- "业绩预测详表-机构",
68
- "业绩预测详表-详细指标预测",
69
- ]:
70
- stock_profit_forecast_ths_df = stock_profit_forecast_ths(
71
- symbol="600519", indicator=_item
72
- )
73
- print(stock_profit_forecast_ths_df)
97
+ stock_profit_forecast_ths_df = stock_profit_forecast_ths(
98
+ symbol="600519", indicator="预测年报每股收益"
99
+ )
100
+ print(stock_profit_forecast_ths_df)
101
+
102
+ stock_profit_forecast_ths_df = stock_profit_forecast_ths(
103
+ symbol="600519", indicator="预测年报净利润"
104
+ )
105
+ print(stock_profit_forecast_ths_df)
106
+
107
+ stock_profit_forecast_ths_df = stock_profit_forecast_ths(
108
+ symbol="600519", indicator="业绩预测详表-机构"
109
+ )
110
+ print(stock_profit_forecast_ths_df)
111
+
112
+ stock_profit_forecast_ths_df = stock_profit_forecast_ths(
113
+ symbol="600519", indicator="业绩预测详表-详细指标预测"
114
+ )
115
+ print(stock_profit_forecast_ths_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.16.18
3
+ Version: 1.16.20
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
@@ -50,7 +50,8 @@ Dynamic: requires-dist
50
50
  Dynamic: requires-python
51
51
  Dynamic: summary
52
52
 
53
- **欢迎加入专注于财经数据和量化投资的知识社区,获取《AKShare-财经数据宝典》,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
53
+ **欢迎加入专注于财经数据和量化投资的知识社区,获取《AKShare-财经数据宝典》,其汇集了财经数据的使用经验和指南,还独家分享了
54
+ 众多国内外财经数据源的使用和注意事项,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
54
55
 
55
56
  **量化投研视频课程:《PyBroker-入门及实战》已经上架!《PyBroker-进阶及实战》正在更新!**
56
57
 
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=7KwD4mtIrWqpTY0Pu66f4m5MfAQ4IU0eN5Ay4VGsx5A,188704
1
+ akshare/__init__.py,sha256=46qg0rM4gm8paobTX2m7fuFxtNBRnaKw-IBcPxLYCck,188804
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
@@ -268,7 +268,7 @@ akshare/stock/stock_repurchase_em.py,sha256=XVAUD_yd48wqxbMbfU0Ne2SNFOSG9NBklUhf
268
268
  akshare/stock/stock_share_changes_cninfo.py,sha256=siy4PiZgYuNQn5jUUg2G7CyZ_yvuXNi3MVUDFhe5npY,4923
269
269
  akshare/stock/stock_share_hold.py,sha256=sKiWH69n8_MQohi0qZ3Br-WQRq9I7S0USrb-tMVinb0,11028
270
270
  akshare/stock/stock_stop.py,sha256=hK6U02jyVyRe2BPmzxBDw1kujy7XgUo_Ky_rjewtBaE,1191
271
- akshare/stock/stock_summary.py,sha256=rtJImzACxpGRqYGe9-yNTzsSZDlsG1Uns18sDIgunZY,11204
271
+ akshare/stock/stock_summary.py,sha256=sbq-YDdBAD2I_5vIqnCne3P2kVZ9kAMnhhhYa_WuhP8,11496
272
272
  akshare/stock/stock_us_famous.py,sha256=C0JjmaLi1D4fFtTmPSYOnIvetW2mSbRCalwHjZnv638,3658
273
273
  akshare/stock/stock_us_js.py,sha256=wwZpRvVHqjxwd0cb2O5vtRW8Zw90Kdl5O4XNwoevN64,2502
274
274
  akshare/stock/stock_us_pink.py,sha256=BX7-tG4Zs0k2vSYGxHH0Yob-moD6AAu2a-ytZpxgIRQ,3065
@@ -324,7 +324,7 @@ akshare/stock_feature/stock_inner_trade_xq.py,sha256=jsARS5It6_UNn3WL8vnTK4F90Rx
324
324
  akshare/stock_feature/stock_irm_cninfo.py,sha256=xD028gllzaHYj6xU9pRKvSLI_gIkVhCTnFH0dSPv1gY,6112
325
325
  akshare/stock_feature/stock_jgdy_em.py,sha256=B39Il7p1a_hx0FXL4zo_Xsxi10Z8W7_EZv8f9nNnwXg,6080
326
326
  akshare/stock_feature/stock_lh_yybpm.py,sha256=7VlqA-UGbfiQ4ez7Ah9znIfUcVI-7Fxxz_V03JO8LTY,3614
327
- akshare/stock_feature/stock_lhb_em.py,sha256=vDUeuJp9mRHmgrtjLPLXG-IFb4VVzXkr2-Q4UBzEtzc,34334
327
+ akshare/stock_feature/stock_lhb_em.py,sha256=G0JamQXJaujiayqMu0XBSTtSXLFsjuA2SL7ifk1bzBo,34334
328
328
  akshare/stock_feature/stock_lhb_sina.py,sha256=W5F5aPlxAmHzzxcf1AAiJuMVtTK9PlYMo_XamCZ5N1o,9232
329
329
  akshare/stock_feature/stock_margin_em.py,sha256=B8TDj3exQFQNupVYYExm0umyHAwhaTly3KVhno7KH8k,3357
330
330
  akshare/stock_feature/stock_margin_sse.py,sha256=yTc4sP7qyqe6qfeJpw2B3_m2Dc5XU3StP5r7VIqRGxM,6864
@@ -364,7 +364,7 @@ akshare/stock_fundamental/stock_mda_ym.py,sha256=BXJJ-39I7GzJ7y_8k_pqUjvUrg1bSla
364
364
  akshare/stock_fundamental/stock_notice.py,sha256=tGxGz1Usr3qQzgs1Y71imDPkqJz5ooismz3BiaBwQR0,3928
365
365
  akshare/stock_fundamental/stock_profit_forecast_em.py,sha256=_ZlWkyz-FswlICbjk_YiHjRwrlLftm_piQIPFkZMrjE,5701
366
366
  akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py,sha256=dQaqxi0wXOidIuAxjUzZy_gdy16HEi20I3jEdpNM3qc,5179
367
- akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=ZTShEB5w1y5j6TsHzWT8QR8oatbBTdE1H0IIxPLHn9s,2656
367
+ akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=8fzPGyBcxWSvoa7UZke9bDn7P0neSKrkjHAehVgLHJM,4682
368
368
  akshare/stock_fundamental/stock_recommend.py,sha256=44l1uLofwO-nsDB4oAYWpHQA7_qhXLOo1BurjUvmXzY,4501
369
369
  akshare/stock_fundamental/stock_register_em.py,sha256=QxQh7kddjXLainVVugvOCYG8nDyOv31I8npQmXw3Ccs,15643
370
370
  akshare/stock_fundamental/stock_restricted_em.py,sha256=e5G3oiZBf9d_a8quX5nLzn3RggeF4yX3j-h3nAZBRmA,13378
@@ -381,8 +381,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
381
381
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
382
382
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
383
383
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
384
- akshare-1.16.18.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
385
- akshare-1.16.18.dist-info/METADATA,sha256=6vz1edzPefOIGHI7gk223yqPpj4-GHDm_LvIdCia_JE,13720
386
- akshare-1.16.18.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
387
- akshare-1.16.18.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
388
- akshare-1.16.18.dist-info/RECORD,,
384
+ akshare-1.16.20.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
385
+ akshare-1.16.20.dist-info/METADATA,sha256=G01f-2gY7bqRe1D_yWCZ8buTGZNhGuBbqZ1lYGliv18,13847
386
+ akshare-1.16.20.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
387
+ akshare-1.16.20.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
388
+ akshare-1.16.20.dist-info/RECORD,,