akshare 1.16.86__py3-none-any.whl → 1.16.88__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
@@ -3094,9 +3094,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3094
3094
  1.16.84 fix: fix stock_fhps_detail_ths interface
3095
3095
  1.16.85 fix: fix stock_dividend_cninfo interface
3096
3096
  1.16.86 fix: fix index_yw interface
3097
+ 1.16.87 fix: fix stock_zygc_em interface
3098
+ 1.16.88 fix: fix futures_inventory_99 interface
3097
3099
  """
3098
3100
 
3099
- __version__ = "1.16.86"
3101
+ __version__ = "1.16.88"
3100
3102
  __author__ = "AKFamily"
3101
3103
 
3102
3104
  import sys
@@ -3670,15 +3672,10 @@ from akshare.bond.bond_cbond import (
3670
3672
  """
3671
3673
  from akshare.stock_feature.stock_classify_sina import stock_classify_sina
3672
3674
 
3673
- """
3674
- 管理层讨论与分析
3675
- """
3676
- from akshare.stock_fundamental.stock_mda_ym import stock_mda_ym
3677
-
3678
3675
  """
3679
3676
  主营构成
3680
3677
  """
3681
- from akshare.stock_fundamental.stock_zygc import stock_zygc_ym, stock_zygc_em
3678
+ from akshare.stock_fundamental.stock_zygc import stock_zygc_em
3682
3679
 
3683
3680
  """
3684
3681
  人民币汇率中间价
@@ -4077,11 +4074,6 @@ from akshare.reits.reits_basic import reits_realtime_em, reits_hist_em
4077
4074
  from akshare.stock_feature.stock_ttm_lyr import stock_a_ttm_lyr
4078
4075
  from akshare.stock_feature.stock_all_pb import stock_a_all_pb
4079
4076
 
4080
- """
4081
- 奥运奖牌
4082
- """
4083
- from akshare.sport.sport_olympic import sport_olympic_hist
4084
-
4085
4077
  """
4086
4078
  宏观-加拿大
4087
4079
  """
@@ -4338,11 +4330,6 @@ from akshare.index.index_drewry import drewry_wci_index
4338
4330
  from akshare.index.index_kq_fz import index_kq_fz
4339
4331
  from akshare.index.index_kq_ss import index_kq_fashion
4340
4332
 
4341
- """
4342
- 问财-热门股票
4343
- """
4344
- from akshare.stock_feature.stock_wencai import stock_hot_rank_wc
4345
-
4346
4333
  """
4347
4334
  新发基金
4348
4335
  """
@@ -63,8 +63,8 @@ def futures_inventory_99(symbol: str = "豆一") -> pd.DataFrame:
63
63
  url = "https://centerapi.fx168api.com/app/qh/api/stock/trend"
64
64
  headers = {
65
65
  "Content-Type": "application/json;charset=UTF-8",
66
- "_pcc": "hETmls1NpL1IyIXZ9gvqY6OlNkEbubzrds3DFH3FsVji+P68lhdgcwW/nIksenplYqUWWqpFigd2ZZMDE/8gDnFthohx"
67
- "w9cQHAfT2LLYZbuvxS+Zb23EolKGY8/C5pGMcNaW34IVrjVX6ppreh7ARBHYLGxcrCU2rZZCyY4W3HU=",
66
+ "_pcc": "LI/Plcxt5u0d6SXBG+V8r8ggHkJKdadqRZVRYFgSpGwd0uqai7mxRiIuxOLw2frHjfSAuUCLt0x83cGIAnz"
67
+ "YABkMimnxECEEOXhOsf+Ee46JMg2RKfBo9s/21mMcrNAM/c87n891YOardxRZEosPXMQjHOfRvhQkuRTYe/8Wgjw=",
68
68
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
69
69
  "Chrome/58.0.3029.110 Safari/537.3",
70
70
  "referer": "https://www.99qh.com",
@@ -255,7 +255,7 @@ if __name__ == "__main__":
255
255
  print(news_trade_notify_suspend_baidu_df)
256
256
 
257
257
  news_trade_notify_dividend_baidu_df = news_trade_notify_dividend_baidu(
258
- date="20241107"
258
+ date="20250506"
259
259
  )
260
260
  print(news_trade_notify_dividend_baidu_df)
261
261
 
@@ -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.86
3
+ Version: 1.16.88
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=p9CY21caPV_wzpw9NMjD6olWW5UJAYlphGf3LvKd85Y,193786
1
+ akshare/__init__.py,sha256=rOXFVQhh7PmYXWr14_PBEWJS_3xwflIZReo60Ppr9UU,193587
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
@@ -120,7 +120,7 @@ akshare/futures/futures_hf_em.py,sha256=eCksGjWRRWXUT61ulzc2UifjTQzC8BNOKqKq7JB2
120
120
  akshare/futures/futures_hist_em.py,sha256=Q8I20qRjp2ujiJMCCNBvTHXmrIth22p2k6KpvbkC3dk,6472
121
121
  akshare/futures/futures_hq_sina.py,sha256=HZBAve1yxp1fnwgEy_2CqVoniTXRkt8KI3REt0N0TiY,9575
122
122
  akshare/futures/futures_index_ccidx.py,sha256=_kgWioCOpFNn8WUcL5qKHGb3rUHzrbrx2AszprKpBh4,4460
123
- akshare/futures/futures_inventory_99.py,sha256=xjrGBtoPg3JiqpAWOpQ54yEMUm9jIgbp2HSY62E2qWM,3397
123
+ akshare/futures/futures_inventory_99.py,sha256=ubCWSRObXeOJaniXsSKOWW4cf5FxBTlXhSRaOqmld6c,3405
124
124
  akshare/futures/futures_inventory_em.py,sha256=OwgONgg3Tu1WCIADcH6LpahDedAPz0iQcmNJb4ma5Dw,2620
125
125
  akshare/futures/futures_news_shmet.py,sha256=1epZ3MwDc-T2n1ie4SSDfvUaBiMpSL0Q_xb2VoZ_llU,2465
126
126
  akshare/futures/futures_roll_yield.py,sha256=RiwN0yYwzYy8zGhmTopBwJ37aUQ7Llwh3eQRzn0apaE,6135
@@ -188,7 +188,7 @@ akshare/movie/jm.js,sha256=Emr0kB7KvhBaeVYFwYJ84Ra6EBThVIE_RVPKkOO7uvk,117171
188
188
  akshare/movie/movie_yien.py,sha256=BP3eGmGeTJerlIIF-sOq-TsssZiKM-DiX3vwV3dwi8o,13574
189
189
  akshare/movie/video_yien.py,sha256=2JsyKTwiP4RTuDNzQR6d9V9fzMnByH2ATJFzdtPyXSQ,3524
190
190
  akshare/news/__init__.py,sha256=B7G1wejQ9jRov6hXKLh9xy4F-UcfPps3AgVLDZnKM4w,82
191
- akshare/news/news_baidu.py,sha256=WjrRWkPZRdJ00o4w3M_rB8s2Yxd2OWdDRCJm8QCIOeU,8276
191
+ akshare/news/news_baidu.py,sha256=ZmC1Sq1sxb8Ottmzth-zjf_39Ri08oAzLB35dRNM7Xk,8276
192
192
  akshare/news/news_cctv.py,sha256=MRODE1qilypQijyCZedgC1Ctju_3ySdJlhT2nuJcuwc,7389
193
193
  akshare/news/news_stock.py,sha256=0M1BDmSJ8T6qykgv5YLN7qruNQkm7bU4KbbcaA-Mv7Y,2866
194
194
  akshare/nlp/__init__.py,sha256=F-1D7ifZQ4RiE2zsQuPc4Aj_C7RhqxGPvObcRNcLPGs,79
@@ -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
@@ -352,7 +350,6 @@ akshare/stock_feature/stock_tfp_em.py,sha256=nN4gcK6hOe4tIA-nOoY_lMNC7qY7o9Ga35_
352
350
  akshare/stock_feature/stock_three_report_em.py,sha256=Menwk2QMf9LDZAHoXTythrzyYICxVo1HvRgo8AXPdX8,24163
353
351
  akshare/stock_feature/stock_ttm_lyr.py,sha256=RwKMgI_A3rDRIITd_idmvlFSkn4DTUPNVfPjISSTZYw,1110
354
352
  akshare/stock_feature/stock_value_em.py,sha256=RA842dkeChSEoS3yN9fiGxS3eDzYjeUdrpXbnteyzZY,2576
355
- akshare/stock_feature/stock_wencai.py,sha256=KPwt72SOnK4dHh2vpWOHYynkj8Vrbv3AW-EXK7d3NZY,4343
356
353
  akshare/stock_feature/stock_yjbb_em.py,sha256=hQBr1aj808AdA88Y_dpuR7G1mb487hcRamD31UZus-s,4689
357
354
  akshare/stock_feature/stock_yjyg_cninfo.py,sha256=BmED451W-vBhRg7d1EF1IPHmhyLotPzRODitYmJQHH0,2885
358
355
  akshare/stock_feature/stock_yjyg_em.py,sha256=lM0byeglQQ2vLwNJnjd6EegnZ7Fy-jFZmDwRXLM6OnA,12184
@@ -374,7 +371,6 @@ akshare/stock_fundamental/stock_hold.py,sha256=hiJx2i3hCW7Kl7kMs4Kh1QNvsg-sIUORv
374
371
  akshare/stock_fundamental/stock_ipo_declare.py,sha256=INsQCHRz-j992mg8x71AiIPsLBSr5e_J03EuWmoP0kc,1810
375
372
  akshare/stock_fundamental/stock_kcb_detail_sse.py,sha256=U2w4wUuOTnavqNEmOdQbTZfnEkDdSs91s82YdA6rwNQ,941
376
373
  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
374
  akshare/stock_fundamental/stock_notice.py,sha256=tGxGz1Usr3qQzgs1Y71imDPkqJz5ooismz3BiaBwQR0,3928
379
375
  akshare/stock_fundamental/stock_profit_forecast_em.py,sha256=_ZlWkyz-FswlICbjk_YiHjRwrlLftm_piQIPFkZMrjE,5701
380
376
  akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py,sha256=U0A5oRquM_a4Uz92e17ZPM8h-4_le6Q5N4bFi1yV9Fw,5462
@@ -382,7 +378,7 @@ akshare/stock_fundamental/stock_profit_forecast_ths.py,sha256=8fzPGyBcxWSvoa7UZk
382
378
  akshare/stock_fundamental/stock_recommend.py,sha256=50sdN8zYzBQHkVowSjuyMYgqGMTJe8tB8NXu50jrOXw,4617
383
379
  akshare/stock_fundamental/stock_register_em.py,sha256=QxQh7kddjXLainVVugvOCYG8nDyOv31I8npQmXw3Ccs,15643
384
380
  akshare/stock_fundamental/stock_restricted_em.py,sha256=e5G3oiZBf9d_a8quX5nLzn3RggeF4yX3j-h3nAZBRmA,13378
385
- akshare/stock_fundamental/stock_zygc.py,sha256=6a7wfpWdL5UgzW7V28nEAQwXvlfQJwYj6wSa55HV02s,4471
381
+ akshare/stock_fundamental/stock_zygc.py,sha256=so3v6SfM5rUgdWYeIJP8t3VbpgbYNNnzrFfOYRdTpO0,2727
386
382
  akshare/stock_fundamental/stock_zyjs_ths.py,sha256=5aniSf9Wp-j0fsCna9dBU8SA2M4CHTpN-GABUv6YWUM,1538
387
383
  akshare/tool/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
388
384
  akshare/tool/trade_date_hist.py,sha256=o9021QHdOEVucjynFl0jLEi1PEMlNxvDKnMsFSwRfqg,1431
@@ -394,10 +390,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
394
390
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
395
391
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
396
392
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
397
- akshare-1.16.86.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
393
+ akshare-1.16.88.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
398
394
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
399
395
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
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,,
396
+ akshare-1.16.88.dist-info/METADATA,sha256=l5pQ3HkshMpt6i7grMMQ0ZpOYwkhzgpV5Q2FbwQMD_8,11902
397
+ akshare-1.16.88.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
398
+ akshare-1.16.88.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
399
+ akshare-1.16.88.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.2.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,116 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2024/9/21 18:00
5
- Desc: 问财-热门股票排名
6
- https://www.iwencai.com/unifiedwap/home/index
7
- """
8
-
9
- import pandas as pd
10
- import requests
11
-
12
- from akshare.utils.cons import headers
13
- from akshare.utils.tqdm import get_tqdm
14
-
15
-
16
- def stock_hot_rank_wc(date: str = "20240920") -> pd.DataFrame:
17
- """
18
- 问财-热门股票排名
19
- https://www.iwencai.com/unifiedwap/result?w=%E7%83%AD%E9%97%A85000%E8%82%A1%E7%A5%A8&querytype=stock&issugs&sign=1620126514335
20
- :param date: 查询日期
21
- :type date: str
22
- :return: 热门股票排名
23
- :rtype: pandas.DataFrame
24
- """
25
- url = "https://www.iwencai.com/gateway/urp/v7/landing/getDataList"
26
- params = {
27
- "query": "热门5000股票",
28
- "urp_sort_way": "desc",
29
- "urp_sort_index": f"个股热度[{date}]",
30
- "page": "1",
31
- "perpage": "100",
32
- "addheaderindexes": "",
33
- "condition": '[{"chunkedResult":"热门5000股票","opName":"and","opProperty":"","uiText":'
34
- '"个股热度排名<=5000且个股热度从大到小排名","sonSize":3,"queryText":'
35
- '"个股热度排名<=5000且个股热度从大到小排名","relatedSize":3},'
36
- '{"reportType":"NATURAL_DAILY","dateType":"+区间","indexName":'
37
- '"个股热度排名","indexProperties":["nodate 1","交易日期 20230817",'
38
- '"<=5000"],"valueType":"_整型数值","domain":"abs_股票领域","sonSize"'
39
- ':0,"relatedSize":0,"source":"new_parser","tag":"个股热度排名","type"'
40
- ':"index","indexPropertiesMap":{"<=":"5000","交易日期":"20230817","nodate":"1"}},'
41
- '{"opName":"sort","opProperty":"从大到小排名","sonSize":1,"relatedSize":0},'
42
- '{"reportType":"NATURAL_DAILY","dateType":"+区间","indexName":"个股热度",'
43
- '"indexProperties":["nodate 1","起始交易日期 20230817","截止交易日期 20230817"],'
44
- '"valueType":"_浮点型数值","domain":"abs_股票领域","sonSize":0,"relatedSize":0,'
45
- '"source":"new_parser","tag":"个股热度","type":"index","indexPropertiesMap":'
46
- '{"起始交易日期":"20230817","截止交易日期":"20230817","nodate":"1"}}]'.replace(
47
- "20230817", date
48
- ),
49
- "codelist": "",
50
- "indexnamelimit": "",
51
- "ret": "json_all",
52
- "source": "Ths_iwencai_Xuangu",
53
- "date_range[0]": date,
54
- "date_range[1]": date,
55
- "urp_use_sort": "1",
56
- "uuids[0]": "24087",
57
- "query_type": "stock",
58
- "comp_id": "6836372",
59
- "business_cat": "soniu",
60
- "uuid": "24087",
61
- }
62
- big_df = pd.DataFrame()
63
- tqdm = get_tqdm()
64
- for page in tqdm(range(1, 51), leave=False):
65
- params.update(
66
- {
67
- "page": page,
68
- }
69
- )
70
- r = requests.get(url, params=params, headers=headers)
71
- data_json = r.json()
72
- temp_df = pd.DataFrame(data_json["answer"]["components"][0]["data"]["datas"])
73
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
74
-
75
- big_df.reset_index(inplace=True)
76
- big_df["index"] = range(1, len(big_df) + 1)
77
- try:
78
- rank_date_str = big_df.columns[1].split("[")[1].strip("]")
79
- except: # noqa: E722
80
- try:
81
- rank_date_str = big_df.columns[2].split("[")[1].strip("]")
82
- except: # noqa: E722
83
- rank_date_str = date
84
- big_df.rename(
85
- columns={
86
- "index": "序号",
87
- f"个股热度排名[{rank_date_str}]": "个股热度排名",
88
- f"个股热度[{rank_date_str}]": "个股热度",
89
- "code": "股票代码",
90
- "market_code": "_",
91
- "最新涨跌幅": "涨跌幅",
92
- "最新价": "现价",
93
- "股票代码": "_",
94
- },
95
- inplace=True,
96
- )
97
- big_df = big_df[
98
- [
99
- "序号",
100
- "股票代码",
101
- "股票简称",
102
- "现价",
103
- "涨跌幅",
104
- "个股热度",
105
- "个股热度排名",
106
- ]
107
- ]
108
- big_df["涨跌幅"] = big_df["涨跌幅"].astype(float).round(2)
109
- big_df["排名日期"] = rank_date_str
110
- big_df["现价"] = pd.to_numeric(big_df["现价"], errors="coerce")
111
- return big_df
112
-
113
-
114
- if __name__ == "__main__":
115
- stock_hot_rank_wc_df = stock_hot_rank_wc(date="20240920")
116
- print(stock_hot_rank_wc_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)