akshare 1.12.99__py3-none-any.whl → 1.15.73__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.

Files changed (236) hide show
  1. akshare/__init__.py +442 -138
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +29 -43
  4. akshare/air/sunrise_tad.py +32 -17
  5. akshare/bank/bank_cbirc_2020.py +12 -9
  6. akshare/bond/bond_cb_ths.py +17 -9
  7. akshare/bond/bond_china.py +38 -39
  8. akshare/bond/bond_china_money.py +75 -48
  9. akshare/bond/bond_info_cm.py +28 -8
  10. akshare/bond/bond_issue_cninfo.py +73 -30
  11. akshare/bond/bond_zh_cov.py +1 -1
  12. akshare/bond/bond_zh_sina.py +57 -51
  13. akshare/cal/__init__.py +0 -0
  14. akshare/cal/rv.py +170 -0
  15. akshare/cost/cost_living.py +7 -5
  16. akshare/currency/currency_safe.py +7 -6
  17. akshare/data/cninfo.js +15 -0
  18. akshare/datasets.py +10 -21
  19. akshare/economic/macro_bank.py +95 -653
  20. akshare/economic/macro_china.py +772 -1024
  21. akshare/economic/macro_china_hk.py +65 -243
  22. akshare/economic/macro_china_nbs.py +24 -7
  23. akshare/economic/macro_constitute.py +17 -12
  24. akshare/economic/macro_euro.py +13 -6
  25. akshare/economic/macro_finance_ths.py +133 -0
  26. akshare/economic/macro_info_ws.py +100 -0
  27. akshare/economic/macro_japan.py +5 -4
  28. akshare/economic/macro_other.py +12 -9
  29. akshare/economic/macro_usa.py +376 -1940
  30. akshare/economic/marco_cnbs.py +11 -6
  31. akshare/energy/energy_carbon.py +94 -125
  32. akshare/event/migration.py +3 -2
  33. akshare/exceptions.py +43 -0
  34. akshare/file_fold/calendar.json +245 -2
  35. akshare/fortune/fortune_500.py +15 -48
  36. akshare/fund/fund_amac.py +157 -75
  37. akshare/fund/fund_em.py +191 -184
  38. akshare/fund/fund_etf_em.py +16 -15
  39. akshare/fund/fund_etf_sina.py +71 -23
  40. akshare/fund/fund_etf_ths.py +93 -0
  41. akshare/fund/fund_fee_em.py +98 -0
  42. akshare/fund/fund_portfolio_em.py +60 -50
  43. akshare/fund/fund_rank_em.py +91 -82
  44. akshare/fund/fund_report_cninfo.py +63 -48
  45. akshare/fund/fund_scale_sina.py +20 -10
  46. akshare/fund/fund_xq.py +139 -109
  47. akshare/futures/cons.py +8 -31
  48. akshare/futures/cot.py +185 -137
  49. akshare/futures/futures_basis.py +97 -32
  50. akshare/futures/futures_comm_ctp.py +37 -0
  51. akshare/futures/futures_comm_qihuo.py +74 -45
  52. akshare/futures/futures_daily_bar.py +121 -184
  53. akshare/futures/futures_hf_em.py +66 -61
  54. akshare/futures/futures_hq_sina.py +79 -61
  55. akshare/futures/futures_index_ccidx.py +6 -3
  56. akshare/futures/futures_inventory_99.py +61 -272
  57. akshare/futures/futures_news_shmet.py +4 -2
  58. akshare/futures/futures_roll_yield.py +12 -25
  59. akshare/futures/futures_spot_stock_em.py +19 -13
  60. akshare/futures/futures_stock_js.py +14 -12
  61. akshare/futures/futures_to_spot.py +38 -33
  62. akshare/futures/futures_warehouse_receipt.py +75 -71
  63. akshare/futures/futures_zh_sina.py +5 -5
  64. akshare/futures/symbol_var.py +18 -13
  65. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  66. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  67. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  68. akshare/futures_derivative/futures_cot_sina.py +26 -19
  69. akshare/futures_derivative/futures_spot_sys.py +21 -8
  70. akshare/fx/currency_investing.py +19 -285
  71. akshare/index/index_cflp.py +29 -26
  72. akshare/index/index_cni.py +86 -88
  73. akshare/index/index_cons.py +26 -10
  74. akshare/index/index_cx.py +248 -47
  75. akshare/index/index_drewry.py +17 -16
  76. akshare/index/index_option_qvix.py +329 -0
  77. akshare/index/index_research_fund_sw.py +134 -0
  78. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  79. akshare/index/index_spot.py +9 -5
  80. akshare/index/index_stock_hk.py +35 -16
  81. akshare/index/index_stock_us_sina.py +1 -1
  82. akshare/index/index_stock_zh.py +180 -89
  83. akshare/index/index_stock_zh_csindex.py +15 -369
  84. akshare/index/index_sw.py +62 -34
  85. akshare/index/index_yw.py +46 -23
  86. akshare/index/index_zh_a_scope.py +48 -0
  87. akshare/index/index_zh_em.py +6 -4
  88. akshare/interest_rate/interbank_rate_em.py +14 -9
  89. akshare/movie/artist_yien.py +32 -5
  90. akshare/movie/movie_yien.py +92 -18
  91. akshare/movie/video_yien.py +28 -5
  92. akshare/news/news_baidu.py +78 -44
  93. akshare/news/news_cctv.py +38 -38
  94. akshare/news/news_stock.py +6 -3
  95. akshare/nlp/nlp_interface.py +7 -8
  96. akshare/option/cons.py +11 -11
  97. akshare/option/option_comm_qihuo.py +86 -0
  98. akshare/option/option_commodity.py +178 -51
  99. akshare/option/option_daily_stats_sse_szse.py +146 -0
  100. akshare/option/option_em.py +147 -138
  101. akshare/option/option_finance_sina.py +160 -137
  102. akshare/option/option_lhb_em.py +62 -56
  103. akshare/option/option_risk_indicator_sse.py +17 -14
  104. akshare/other/other_car_cpca.py +934 -0
  105. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  106. akshare/qdii/__init__.py +0 -0
  107. akshare/qdii/qdii_jsl.py +233 -0
  108. akshare/request.py +117 -0
  109. akshare/spot/spot_hog_soozhu.py +232 -0
  110. akshare/spot/spot_price_qh.py +121 -0
  111. akshare/spot/spot_sge.py +63 -10
  112. akshare/stock/stock_allotment_cninfo.py +10 -9
  113. akshare/stock/stock_board_concept_em.py +23 -14
  114. akshare/stock/stock_board_industry_em.py +40 -34
  115. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  116. akshare/stock/stock_cg_guarantee.py +41 -51
  117. akshare/stock/stock_cg_lawsuit.py +36 -35
  118. akshare/stock/stock_dividend_cninfo.py +12 -6
  119. akshare/stock/stock_dzjy_em.py +347 -260
  120. akshare/stock/stock_fund_em.py +332 -84
  121. akshare/stock/stock_hk_famous.py +108 -0
  122. akshare/stock/stock_hk_sina.py +8 -7
  123. akshare/stock/stock_hold_control_cninfo.py +100 -15
  124. akshare/stock/stock_hold_control_em.py +4 -3
  125. akshare/stock/stock_hold_num_cninfo.py +18 -12
  126. akshare/stock/stock_hot_rank_em.py +2 -1
  127. akshare/stock/stock_hot_search_baidu.py +5 -2
  128. akshare/stock/stock_industry_cninfo.py +24 -18
  129. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  130. akshare/stock/stock_industry_sw.py +9 -10
  131. akshare/stock/stock_info.py +25 -15
  132. akshare/stock/stock_info_em.py +5 -2
  133. akshare/stock/stock_intraday_em.py +5 -2
  134. akshare/stock/stock_intraday_sina.py +22 -18
  135. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  136. akshare/stock/stock_new_cninfo.py +32 -19
  137. akshare/stock/stock_news_cx.py +39 -0
  138. akshare/stock/stock_profile_cninfo.py +9 -8
  139. akshare/stock/stock_rank_forecast.py +8 -6
  140. akshare/stock/stock_share_changes_cninfo.py +18 -14
  141. akshare/stock/stock_share_hold.py +24 -19
  142. akshare/stock/stock_summary.py +54 -26
  143. akshare/stock/stock_us_famous.py +15 -6
  144. akshare/stock/stock_us_pink.py +7 -5
  145. akshare/stock/stock_us_sina.py +15 -12
  146. akshare/stock/stock_xq.py +38 -12
  147. akshare/stock/stock_zh_a_sina.py +53 -78
  148. akshare/stock/stock_zh_b_sina.py +32 -55
  149. akshare/stock/stock_zh_kcb_report.py +11 -9
  150. akshare/stock/stock_zh_kcb_sina.py +67 -64
  151. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  152. akshare/stock_feature/stock_a_high_low.py +5 -2
  153. akshare/stock_feature/stock_a_indicator.py +12 -9
  154. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  155. akshare/stock_feature/stock_account_em.py +58 -40
  156. akshare/stock_feature/stock_analyst_em.py +36 -27
  157. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  158. akshare/stock_feature/stock_comment_em.py +118 -85
  159. akshare/stock_feature/stock_concept_futu.py +183 -0
  160. akshare/stock_feature/stock_cyq_em.py +58 -54
  161. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  162. akshare/stock_feature/stock_esg_sina.py +216 -11
  163. akshare/stock_feature/stock_fhps_em.py +60 -25
  164. akshare/stock_feature/stock_fhps_ths.py +25 -6
  165. akshare/stock_feature/stock_fund_flow.py +38 -25
  166. akshare/stock_feature/stock_gdfx_em.py +180 -95
  167. akshare/stock_feature/stock_gdhs.py +73 -49
  168. akshare/stock_feature/stock_gpzy_em.py +78 -46
  169. akshare/stock_feature/stock_hist_em.py +55 -23
  170. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  171. akshare/stock_feature/stock_hsgt_em.py +184 -452
  172. akshare/stock_feature/stock_info.py +52 -29
  173. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  174. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  175. akshare/stock_feature/stock_jgdy_em.py +41 -38
  176. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  177. akshare/stock_feature/stock_lhb_em.py +135 -71
  178. akshare/stock_feature/stock_lhb_sina.py +93 -46
  179. akshare/stock_feature/stock_margin_em.py +102 -0
  180. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  181. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  182. akshare/stock_feature/stock_market_legu.py +13 -8
  183. akshare/stock_feature/stock_pankou_em.py +72 -34
  184. akshare/stock_feature/stock_report_em.py +244 -54
  185. akshare/stock_feature/stock_research_report_em.py +48 -19
  186. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  187. akshare/stock_feature/stock_sy_em.py +86 -33
  188. akshare/stock_feature/stock_technology_ths.py +152 -120
  189. akshare/stock_feature/stock_tfp_em.py +35 -13
  190. akshare/stock_feature/stock_three_report_em.py +119 -77
  191. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  192. akshare/stock_feature/stock_value_em.py +83 -0
  193. akshare/stock_feature/stock_wencai.py +21 -9
  194. akshare/stock_feature/stock_yjyg_em.py +63 -28
  195. akshare/stock_feature/stock_zf_pg.py +61 -38
  196. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  197. akshare/stock_feature/stock_ztb_em.py +62 -40
  198. akshare/stock_fundamental/stock_finance.py +150 -58
  199. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  200. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  201. akshare/stock_fundamental/stock_notice.py +29 -15
  202. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  203. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  204. akshare/stock_fundamental/stock_register_em.py +448 -0
  205. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  206. akshare/stock_fundamental/stock_zygc.py +10 -8
  207. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  208. akshare/tool/trade_date_hist.py +4 -3
  209. akshare/utils/cons.py +10 -0
  210. akshare/utils/context.py +43 -0
  211. akshare/utils/demjson.py +2 -2
  212. akshare/utils/func.py +26 -0
  213. akshare/utils/tqdm.py +13 -3
  214. {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/METADATA +52 -69
  215. akshare-1.15.73.dist-info/RECORD +385 -0
  216. {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/WHEEL +1 -1
  217. tests/test_func.py +3 -5
  218. akshare/bond/bond_futures.py +0 -50
  219. akshare/bond/bond_investing.py +0 -139
  220. akshare/crypto/crypto_hist_investing.py +0 -249
  221. akshare/fortune/fortune_it_juzi.py +0 -123
  222. akshare/futures/futures_international.py +0 -170
  223. akshare/futures/futures_news_baidu.py +0 -54
  224. akshare/futures/inventory_data.py +0 -100
  225. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  226. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  227. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  228. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  229. akshare/index/index_fear_greed_funddb.py +0 -71
  230. akshare/index/index_investing.py +0 -232
  231. akshare/sport/sport_olympic_winter.py +0 -39
  232. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  233. akshare/stock_fundamental/stock_register.py +0 -292
  234. akshare-1.12.99.dist-info/RECORD +0 -374
  235. {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/LICENSE +0 -0
  236. {akshare-1.12.99.dist-info → akshare-1.15.73.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/11/29 17:00
4
+ Date: 2024/11/22 21:30
5
5
  Desc: 首页-行情中心-涨停板行情-涨停股池
6
6
  https://quote.eastmoney.com/ztb/detail#type=ztgc
7
7
 
@@ -14,13 +14,14 @@ https://quote.eastmoney.com/ztb/detail#type=ztgc
14
14
  6. 跌停股池:包含当日当前跌停的所有A股股票。
15
15
  注:涨停板行情专题统计不包含ST股票及科创板股票。
16
16
  """
17
+
17
18
  from datetime import datetime, timedelta
18
19
 
19
20
  import pandas as pd
20
21
  import requests
21
22
 
22
23
 
23
- def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
24
+ def stock_zt_pool_em(date: str = "20241008") -> pd.DataFrame:
24
25
  """
25
26
  东方财富网-行情中心-涨停板行情-涨停股池
26
27
  https://quote.eastmoney.com/ztb/detail#type=ztgc
@@ -29,7 +30,7 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
29
30
  :return: 涨停股池
30
31
  :rtype: pandas.DataFrame
31
32
  """
32
- url = "http://push2ex.eastmoney.com/getTopicZTPool"
33
+ url = "https://push2ex.eastmoney.com/getTopicZTPool"
33
34
  params = {
34
35
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
35
36
  "dpt": "wz.ztzt",
@@ -43,6 +44,8 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
43
44
  data_json = r.json()
44
45
  if data_json["data"] is None:
45
46
  return pd.DataFrame()
47
+ if len(data_json["data"]["pool"]) == 0:
48
+ return pd.DataFrame()
46
49
  temp_df = pd.DataFrame(data_json["data"]["pool"])
47
50
  temp_df.reset_index(inplace=True)
48
51
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -66,9 +69,9 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
66
69
  "涨停统计",
67
70
  ]
68
71
  temp_df["涨停统计"] = (
69
- temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
70
- + "/"
71
- + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
72
+ temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
73
+ + "/"
74
+ + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
72
75
  )
73
76
  temp_df = temp_df[
74
77
  [
@@ -105,7 +108,7 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
105
108
  return temp_df
106
109
 
107
110
 
108
- def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
111
+ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
109
112
  """
110
113
  东方财富网-行情中心-涨停板行情-昨日涨停股池
111
114
  https://quote.eastmoney.com/ztb/detail#type=zrzt
@@ -119,7 +122,7 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
119
122
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
120
123
  "dpt": "wz.ztzt",
121
124
  "Pageindex": "0",
122
- "pagesize": "170",
125
+ "pagesize": "5000",
123
126
  "sort": "zs:desc",
124
127
  "date": date,
125
128
  "_": "1621590489736",
@@ -128,6 +131,8 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
128
131
  data_json = r.json()
129
132
  if data_json["data"] is None:
130
133
  return pd.DataFrame()
134
+ if len(data_json["data"]["pool"]) == 0:
135
+ return pd.DataFrame()
131
136
  temp_df = pd.DataFrame(data_json["data"]["pool"])
132
137
  temp_df.reset_index(inplace=True)
133
138
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -151,9 +156,9 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
151
156
  "涨停统计",
152
157
  ]
153
158
  temp_df["涨停统计"] = (
154
- temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
155
- + "/"
156
- + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
159
+ temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
160
+ + "/"
161
+ + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
157
162
  )
158
163
  temp_df = temp_df[
159
164
  [
@@ -181,7 +186,7 @@ def stock_zt_pool_previous_em(date: str = "20231129") -> pd.DataFrame:
181
186
  return temp_df
182
187
 
183
188
 
184
- def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
189
+ def stock_zt_pool_strong_em(date: str = "20241231") -> pd.DataFrame:
185
190
  """
186
191
  东方财富网-行情中心-涨停板行情-强势股池
187
192
  https://quote.eastmoney.com/ztb/detail#type=qsgc
@@ -190,12 +195,12 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
190
195
  :return: 强势股池
191
196
  :rtype: pandas.DataFrame
192
197
  """
193
- url = "http://push2ex.eastmoney.com/getTopicQSPool"
198
+ url = "https://push2ex.eastmoney.com/getTopicQSPool"
194
199
  params = {
195
200
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
196
201
  "dpt": "wz.ztzt",
197
202
  "Pageindex": "0",
198
- "pagesize": "170",
203
+ "pagesize": "5000",
199
204
  "sort": "zdp:desc",
200
205
  "date": date,
201
206
  "_": "1621590489736",
@@ -204,6 +209,8 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
204
209
  data_json = r.json()
205
210
  if data_json["data"] is None:
206
211
  return pd.DataFrame()
212
+ if len(data_json["data"]["pool"]) == 0:
213
+ return pd.DataFrame()
207
214
  temp_df = pd.DataFrame(data_json["data"]["pool"])
208
215
  temp_df.reset_index(inplace=True)
209
216
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -228,9 +235,9 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
228
235
  "所属行业",
229
236
  ]
230
237
  temp_df["涨停统计"] = (
231
- temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
232
- + "/"
233
- + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
238
+ temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
239
+ + "/"
240
+ + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
234
241
  )
235
242
  temp_df = temp_df[
236
243
  [
@@ -254,10 +261,22 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
254
261
  ]
255
262
  temp_df["最新价"] = temp_df["最新价"] / 1000
256
263
  temp_df["涨停价"] = temp_df["涨停价"] / 1000
264
+ explained_map = {1: "60日新高", 2: "近期多次涨停", 3: "60日新高且近期多次涨停"}
265
+ temp_df["入选理由"] = temp_df["入选理由"].apply(lambda x: explained_map[x])
266
+ temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
267
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
268
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
269
+ temp_df["涨停价"] = pd.to_numeric(temp_df["涨停价"], errors="coerce")
270
+ temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
271
+ temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
272
+ temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
273
+ temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
274
+ temp_df["涨速"] = pd.to_numeric(temp_df["涨速"], errors="coerce")
275
+ temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
257
276
  return temp_df
258
277
 
259
278
 
260
- def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
279
+ def stock_zt_pool_sub_new_em(date: str = "20241231") -> pd.DataFrame:
261
280
  """
262
281
  东方财富网-行情中心-涨停板行情-次新股池
263
282
  https://quote.eastmoney.com/ztb/detail#type=cxgc
@@ -266,19 +285,19 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
266
285
  :return: 次新股池
267
286
  :rtype: pandas.DataFrame
268
287
  """
269
- url = "http://push2ex.eastmoney.com/getTopicCXPooll"
288
+ url = "https://push2ex.eastmoney.com/getTopicCXPooll"
270
289
  params = {
271
290
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
272
291
  "dpt": "wz.ztzt",
273
292
  "Pageindex": "0",
274
- "pagesize": "170",
293
+ "pagesize": "5000",
275
294
  "sort": "ods:asc",
276
295
  "date": date,
277
296
  "_": "1621590489736",
278
297
  }
279
298
  r = requests.get(url, params=params)
280
299
  data_json = r.json()
281
- if data_json["data"]["pool"] == 0:
300
+ if len(data_json["data"]["pool"]) == 0:
282
301
  return pd.DataFrame()
283
302
  temp_df = pd.DataFrame(data_json["data"]["pool"])
284
303
  temp_df.reset_index(inplace=True)
@@ -305,9 +324,9 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
305
324
  "所属行业",
306
325
  ]
307
326
  temp_df["涨停统计"] = (
308
- temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
309
- + "/"
310
- + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
327
+ temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
328
+ + "/"
329
+ + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
311
330
  )
312
331
  temp_df = temp_df[
313
332
  [
@@ -332,13 +351,14 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
332
351
  temp_df["最新价"] = temp_df["最新价"] / 1000
333
352
  temp_df["涨停价"] = temp_df["涨停价"] / 1000
334
353
  temp_df.loc[temp_df["涨停价"] > 100000, "涨停价"] = pd.NA
335
- temp_df['开板日期'] = pd.to_datetime(temp_df['开板日期'], format='%Y%m%d')
336
- temp_df['上市日期'] = pd.to_datetime(temp_df['上市日期'], format='%Y%m%d')
354
+ temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d").dt.date
355
+ temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d").dt.date
337
356
  temp_df.loc[temp_df["上市日期"] == 0, "上市日期"] = pd.NaT
357
+ temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
338
358
  return temp_df
339
359
 
340
360
 
341
- def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
361
+ def stock_zt_pool_zbgc_em(date: str = "20241011") -> pd.DataFrame:
342
362
  """
343
363
  东方财富网-行情中心-涨停板行情-炸板股池
344
364
  https://quote.eastmoney.com/ztb/detail#type=zbgc
@@ -352,12 +372,12 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
352
372
  if int(date) < int(thirty_days_ago_str):
353
373
  raise ValueError("炸板股池只能获取最近 30 个交易日的数据")
354
374
 
355
- url = "http://push2ex.eastmoney.com/getTopicZBPool"
375
+ url = "https://push2ex.eastmoney.com/getTopicZBPool"
356
376
  params = {
357
377
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
358
378
  "dpt": "wz.ztzt",
359
379
  "Pageindex": "0",
360
- "pagesize": "170",
380
+ "pagesize": "5000",
361
381
  "sort": "fbt:asc",
362
382
  "date": date,
363
383
  "_": "1621590489736",
@@ -366,6 +386,8 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
366
386
  data_json = r.json()
367
387
  if data_json["data"] is None:
368
388
  return pd.DataFrame()
389
+ if len(data_json["data"]["pool"]) == 0:
390
+ return pd.DataFrame()
369
391
  temp_df = pd.DataFrame(data_json["data"]["pool"])
370
392
  temp_df.reset_index(inplace=True)
371
393
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -389,9 +411,9 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
389
411
  "所属行业",
390
412
  ]
391
413
  temp_df["涨停统计"] = (
392
- temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
393
- + "/"
394
- + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
414
+ temp_df["涨停统计"].apply(lambda x: dict(x)["days"]).astype(str)
415
+ + "/"
416
+ + temp_df["涨停统计"].apply(lambda x: dict(x)["ct"]).astype(str)
395
417
  )
396
418
  temp_df = temp_df[
397
419
  [
@@ -419,7 +441,7 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
419
441
  return temp_df
420
442
 
421
443
 
422
- def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
444
+ def stock_zt_pool_dtgc_em(date: str = "20241011") -> pd.DataFrame:
423
445
  """
424
446
  东方财富网-行情中心-涨停板行情-跌停股池
425
447
  https://quote.eastmoney.com/ztb/detail#type=dtgc
@@ -433,7 +455,7 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
433
455
  if int(date) < int(thirty_days_ago_str):
434
456
  raise ValueError("跌停股池只能获取最近 30 个交易日的数据")
435
457
 
436
- url = "http://push2ex.eastmoney.com/getTopicDTPool"
458
+ url = "https://push2ex.eastmoney.com/getTopicDTPool"
437
459
  params = {
438
460
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
439
461
  "dpt": "wz.ztzt",
@@ -507,20 +529,20 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
507
529
 
508
530
 
509
531
  if __name__ == "__main__":
510
- stock_zt_pool_em_df = stock_zt_pool_em(date="20231129")
532
+ stock_zt_pool_em_df = stock_zt_pool_em(date="20241008")
511
533
  print(stock_zt_pool_em_df)
512
534
 
513
- stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20231129")
535
+ stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20240415")
514
536
  print(stock_zt_pool_previous_em_df)
515
537
 
516
- stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20231129")
538
+ stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20241231")
517
539
  print(stock_zt_pool_strong_em_df)
518
540
 
519
- stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20231129")
541
+ stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241231")
520
542
  print(stock_zt_pool_sub_new_em_df)
521
543
 
522
- stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20231129")
544
+ stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
523
545
  print(stock_zt_pool_zbgc_em_df)
524
546
 
525
- stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20231129")
547
+ stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20241011")
526
548
  print(stock_zt_pool_dtgc_em_df)