akshare 1.13.46__py3-none-any.whl → 1.17.99__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.
Files changed (388) hide show
  1. akshare/__init__.py +757 -161
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +3 -7
  4. akshare/air/cons.py +1 -0
  5. akshare/air/crypto.js +1 -1
  6. akshare/air/outcrypto.js +1 -1
  7. akshare/air/sunrise_tad.py +32 -17
  8. akshare/article/cons.py +1 -0
  9. akshare/article/epu_index.py +4 -3
  10. akshare/article/ff_factor.py +19 -8
  11. akshare/article/fred_md.py +4 -1
  12. akshare/article/risk_rv.py +3 -8
  13. akshare/bank/bank_cbirc_2020.py +11 -11
  14. akshare/bank/cons.py +7 -6
  15. akshare/bond/bond_buy_back_em.py +228 -0
  16. akshare/bond/bond_cb_sina.py +1 -0
  17. akshare/bond/bond_cb_ths.py +17 -9
  18. akshare/bond/bond_cbond.py +19 -14
  19. akshare/bond/bond_china.py +38 -39
  20. akshare/bond/bond_china_money.py +75 -48
  21. akshare/bond/bond_convert.py +10 -9
  22. akshare/bond/bond_em.py +37 -17
  23. akshare/bond/bond_info_cm.py +28 -8
  24. akshare/bond/bond_issue_cninfo.py +73 -30
  25. akshare/bond/bond_summary.py +38 -37
  26. akshare/bond/bond_zh_cov.py +31 -40
  27. akshare/bond/bond_zh_sina.py +61 -51
  28. akshare/bond/cons.py +14 -11
  29. akshare/cal/__init__.py +0 -0
  30. akshare/cal/rv.py +170 -0
  31. akshare/cost/cost_living.py +7 -5
  32. akshare/crypto/__init__.py +1 -1
  33. akshare/crypto/crypto_bitcoin_cme.py +9 -7
  34. akshare/crypto/crypto_hold.py +4 -2
  35. akshare/currency/currency.py +1 -0
  36. akshare/currency/currency_china_bank_sina.py +11 -6
  37. akshare/currency/currency_safe.py +7 -6
  38. akshare/data/__init__.py +1 -1
  39. akshare/data/cninfo.js +1 -1
  40. akshare/datasets.py +10 -21
  41. akshare/economic/cons.py +10 -3
  42. akshare/economic/macro_australia.py +74 -69
  43. akshare/economic/macro_bank.py +95 -653
  44. akshare/economic/macro_canada.py +92 -81
  45. akshare/economic/macro_china.py +163 -117
  46. akshare/economic/macro_china_hk.py +0 -1
  47. akshare/economic/macro_china_nbs.py +24 -7
  48. akshare/economic/macro_euro.py +103 -56
  49. akshare/economic/macro_finance_ths.py +135 -0
  50. akshare/economic/macro_germany.py +1 -1
  51. akshare/economic/macro_info_ws.py +100 -0
  52. akshare/economic/macro_japan.py +0 -1
  53. akshare/economic/macro_other.py +1 -6
  54. akshare/economic/macro_swiss.py +2 -3
  55. akshare/economic/macro_uk.py +1 -1
  56. akshare/economic/macro_usa.py +7 -9
  57. akshare/economic/marco_cnbs.py +11 -6
  58. akshare/energy/energy_carbon.py +94 -126
  59. akshare/energy/energy_oil_em.py +1 -2
  60. akshare/event/cons.py +1 -0
  61. akshare/event/migration.py +3 -2
  62. akshare/exceptions.py +43 -0
  63. akshare/file_fold/calendar.json +245 -2
  64. akshare/forex/__init__.py +0 -0
  65. akshare/forex/cons.py +192 -0
  66. akshare/forex/forex_em.py +149 -0
  67. akshare/fortune/fortune_500.py +15 -48
  68. akshare/fortune/fortune_bloomberg.py +6 -3
  69. akshare/fortune/fortune_forbes_500.py +3 -6
  70. akshare/fortune/fortune_hurun.py +2 -1
  71. akshare/fortune/fortune_xincaifu_500.py +17 -14
  72. akshare/fund/fund_amac.py +38 -15
  73. akshare/fund/fund_announcement_em.py +145 -0
  74. akshare/fund/fund_aum_em.py +49 -35
  75. akshare/fund/fund_em.py +251 -220
  76. akshare/fund/fund_etf_em.py +44 -35
  77. akshare/fund/fund_etf_sina.py +76 -27
  78. akshare/fund/fund_etf_ths.py +95 -0
  79. akshare/fund/fund_fee_em.py +172 -0
  80. akshare/fund/fund_fhsp_em.py +42 -32
  81. akshare/fund/fund_init_em.py +8 -5
  82. akshare/fund/fund_lof_em.py +12 -19
  83. akshare/fund/fund_manager.py +25 -11
  84. akshare/fund/fund_overview_em.py +42 -0
  85. akshare/fund/fund_portfolio_em.py +78 -66
  86. akshare/fund/fund_position_lg.py +19 -8
  87. akshare/fund/fund_rank_em.py +90 -84
  88. akshare/fund/fund_rating.py +33 -12
  89. akshare/fund/fund_report_cninfo.py +63 -48
  90. akshare/fund/fund_scale_em.py +24 -13
  91. akshare/fund/fund_scale_sina.py +20 -10
  92. akshare/fund/fund_xq.py +3 -2
  93. akshare/futures/cons.py +141 -46
  94. akshare/futures/cot.py +89 -88
  95. akshare/futures/futures_basis.py +99 -33
  96. akshare/futures/futures_comex_em.py +1 -0
  97. akshare/futures/futures_comm_ctp.py +13 -2
  98. akshare/futures/futures_contract_detail.py +59 -9
  99. akshare/futures/futures_daily_bar.py +75 -62
  100. akshare/futures/futures_foreign.py +14 -8
  101. akshare/futures/futures_hf_em.py +215 -61
  102. akshare/futures/futures_hist_em.py +191 -0
  103. akshare/futures/futures_hq_sina.py +79 -61
  104. akshare/futures/futures_index_ccidx.py +24 -82
  105. akshare/futures/futures_inventory_99.py +70 -272
  106. akshare/futures/futures_inventory_em.py +14 -11
  107. akshare/futures/futures_news_shmet.py +2 -2
  108. akshare/futures/futures_roll_yield.py +11 -24
  109. akshare/futures/futures_rule.py +7 -3
  110. akshare/futures/futures_rule_em.py +38 -0
  111. akshare/futures/futures_settlement_price_sgx.py +21 -6
  112. akshare/futures/futures_stock_js.py +1 -2
  113. akshare/futures/futures_to_spot.py +43 -39
  114. akshare/futures/futures_warehouse_receipt.py +53 -48
  115. akshare/futures/futures_zh_sina.py +4 -4
  116. akshare/futures/receipt.py +298 -165
  117. akshare/futures/requests_fun.py +16 -3
  118. akshare/futures/symbol_var.py +32 -13
  119. akshare/futures_derivative/cons.py +100 -103
  120. akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
  121. akshare/futures_derivative/futures_contract_info_czce.py +2 -0
  122. akshare/futures_derivative/futures_contract_info_dce.py +43 -17
  123. akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
  124. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  125. akshare/futures_derivative/futures_contract_info_shfe.py +7 -8
  126. akshare/futures_derivative/futures_cot_sina.py +28 -19
  127. akshare/futures_derivative/futures_index_sina.py +25 -13
  128. akshare/fx/cons.py +12 -7
  129. akshare/fx/currency_investing.py +19 -285
  130. akshare/fx/fx_c_swap_cm.py +62 -0
  131. akshare/fx/fx_quote.py +3 -2
  132. akshare/fx/fx_quote_baidu.py +2 -1
  133. akshare/hf/__init__.py +1 -1
  134. akshare/hf/hf_sp500.py +8 -7
  135. akshare/index/cons.py +132 -28
  136. akshare/index/index_cflp.py +29 -26
  137. akshare/index/index_cni.py +89 -91
  138. akshare/index/index_cons.py +26 -10
  139. akshare/index/index_csindex.py +68 -0
  140. akshare/index/index_cx.py +263 -62
  141. akshare/index/index_drewry.py +17 -16
  142. akshare/index/index_eri.py +1 -0
  143. akshare/index/index_global_em.py +167 -0
  144. akshare/index/index_global_sina.py +82 -0
  145. akshare/index/index_kq_fz.py +17 -14
  146. akshare/index/index_kq_ss.py +1 -0
  147. akshare/index/index_option_qvix.py +351 -16
  148. akshare/index/index_research_sw.py +38 -38
  149. akshare/index/index_spot.py +9 -5
  150. akshare/index/index_stock_hk.py +6 -10
  151. akshare/index/index_stock_us_sina.py +1 -1
  152. akshare/index/index_stock_zh.py +193 -101
  153. akshare/index/index_stock_zh_csindex.py +15 -369
  154. akshare/index/index_sugar.py +18 -4
  155. akshare/index/index_sw.py +62 -34
  156. akshare/index/index_yw.py +53 -75
  157. akshare/index/index_zh_em.py +15 -82
  158. akshare/interest_rate/interbank_rate_em.py +14 -10
  159. akshare/movie/artist_yien.py +32 -5
  160. akshare/movie/jm.js +0 -1
  161. akshare/movie/movie_yien.py +92 -18
  162. akshare/movie/video_yien.py +28 -5
  163. akshare/news/__init__.py +1 -1
  164. akshare/news/news_baidu.py +395 -220
  165. akshare/news/news_cctv.py +38 -38
  166. akshare/news/news_stock.py +49 -13
  167. akshare/nlp/nlp_interface.py +7 -8
  168. akshare/option/cons.py +12 -12
  169. akshare/option/option_comm_qihuo.py +86 -0
  170. akshare/option/option_commodity.py +355 -211
  171. akshare/option/option_commodity_sina.py +22 -26
  172. akshare/option/option_contract_info_ctp.py +63 -0
  173. akshare/option/option_current_sse.py +61 -0
  174. akshare/option/option_current_szse.py +84 -0
  175. akshare/option/option_czce.py +37 -9
  176. akshare/option/option_daily_stats_sse_szse.py +145 -0
  177. akshare/option/option_em.py +4 -8
  178. akshare/option/option_finance.py +60 -12
  179. akshare/option/option_finance_sina.py +28 -26
  180. akshare/option/option_lhb_em.py +62 -57
  181. akshare/option/option_margin.py +62 -0
  182. akshare/option/option_premium_analysis_em.py +58 -53
  183. akshare/option/option_risk_analysis_em.py +11 -8
  184. akshare/option/option_risk_indicator_sse.py +18 -16
  185. akshare/option/option_value_analysis_em.py +62 -55
  186. akshare/other/__init__.py +1 -1
  187. akshare/other/other_car_cpca.py +20 -20
  188. akshare/pro/__init__.py +0 -1
  189. akshare/pro/client.py +6 -4
  190. akshare/pro/cons.py +3 -2
  191. akshare/pro/data_pro.py +6 -5
  192. akshare/qdii/__init__.py +0 -0
  193. akshare/qdii/qdii_jsl.py +233 -0
  194. akshare/qhkc/__init__.py +1 -6
  195. akshare/qhkc/qhkc_api.py +64 -22
  196. akshare/qhkc_web/__init__.py +1 -6
  197. akshare/qhkc_web/qhkc_fund.py +10 -6
  198. akshare/qhkc_web/qhkc_index.py +28 -14
  199. akshare/qhkc_web/qhkc_tool.py +62 -59
  200. akshare/rate/__init__.py +1 -1
  201. akshare/rate/repo_rate.py +36 -32
  202. akshare/reits/__init__.py +1 -1
  203. akshare/reits/reits_basic.py +149 -13
  204. akshare/request.py +117 -0
  205. akshare/spot/__init__.py +1 -1
  206. akshare/spot/spot_hog_soozhu.py +232 -0
  207. akshare/spot/spot_price_qh.py +121 -0
  208. akshare/spot/spot_sge.py +70 -9
  209. akshare/stock/cons.py +60 -23
  210. akshare/stock/stock_allotment_cninfo.py +10 -9
  211. akshare/stock/stock_ask_bid_em.py +3 -78
  212. akshare/stock/stock_board_concept_em.py +160 -35
  213. akshare/stock/stock_board_industry_em.py +163 -70
  214. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  215. akshare/stock/stock_cg_guarantee.py +41 -51
  216. akshare/stock/stock_cg_lawsuit.py +36 -35
  217. akshare/stock/stock_dividend_cninfo.py +36 -16
  218. akshare/stock/stock_dzjy_em.py +347 -260
  219. akshare/stock/stock_fund_em.py +73 -64
  220. akshare/stock/stock_fund_hold.py +1 -2
  221. akshare/stock/stock_gsrl_em.py +1 -0
  222. akshare/stock/stock_hk_comparison_em.py +175 -0
  223. akshare/stock/stock_hk_famous.py +107 -0
  224. akshare/stock/stock_hk_fhpx_ths.py +2 -1
  225. akshare/stock/stock_hk_hot_rank_em.py +1 -0
  226. akshare/stock/stock_hk_sina.py +91 -42
  227. akshare/stock/stock_hold_control_cninfo.py +100 -15
  228. akshare/stock/stock_hold_control_em.py +4 -5
  229. akshare/stock/stock_hold_num_cninfo.py +18 -12
  230. akshare/stock/stock_hot_rank_em.py +4 -1
  231. akshare/stock/stock_hot_search_baidu.py +32 -19
  232. akshare/stock/stock_hot_up_em.py +4 -1
  233. akshare/stock/stock_hsgt_em.py +155 -0
  234. akshare/stock/stock_industry.py +1 -0
  235. akshare/stock/stock_industry_cninfo.py +25 -20
  236. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  237. akshare/stock/stock_industry_sw.py +5 -9
  238. akshare/stock/stock_info.py +31 -19
  239. akshare/stock/stock_info_em.py +17 -11
  240. akshare/stock/stock_intraday_em.py +9 -80
  241. akshare/stock/stock_intraday_sina.py +2 -2
  242. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  243. akshare/stock/stock_new_cninfo.py +32 -19
  244. akshare/stock/stock_news_cx.py +39 -0
  245. akshare/stock/stock_profile_cninfo.py +9 -8
  246. akshare/stock/stock_profile_em.py +302 -0
  247. akshare/stock/stock_rank_forecast.py +8 -6
  248. akshare/stock/stock_repurchase_em.py +7 -2
  249. akshare/stock/stock_share_changes_cninfo.py +18 -14
  250. akshare/stock/stock_share_hold.py +24 -20
  251. akshare/stock/stock_stop.py +6 -6
  252. akshare/stock/stock_summary.py +153 -417
  253. akshare/stock/stock_us_famous.py +19 -11
  254. akshare/stock/stock_us_js.py +3 -2
  255. akshare/stock/stock_us_pink.py +38 -27
  256. akshare/stock/stock_us_sina.py +15 -12
  257. akshare/stock/stock_weibo_nlp.py +18 -20
  258. akshare/stock/stock_xq.py +36 -9
  259. akshare/stock/stock_zh_a_sina.py +58 -80
  260. akshare/stock/stock_zh_a_special.py +240 -243
  261. akshare/stock/stock_zh_a_tick_tx.py +11 -3
  262. akshare/stock/stock_zh_ah_tx.py +23 -26
  263. akshare/stock/stock_zh_b_sina.py +32 -55
  264. akshare/stock/stock_zh_comparison_em.py +250 -0
  265. akshare/stock/stock_zh_kcb_report.py +11 -9
  266. akshare/stock/stock_zh_kcb_sina.py +67 -64
  267. akshare/stock_a/__init__.py +0 -0
  268. akshare/stock_a/stock_board_concept_name_em.py +170 -0
  269. akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
  270. akshare/stock_a/stock_zh_a_spot.py +212 -0
  271. akshare/stock_feature/cons.py +1 -0
  272. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  273. akshare/stock_feature/stock_a_high_low.py +5 -2
  274. akshare/stock_feature/stock_a_indicator.py +15 -57
  275. akshare/stock_feature/stock_a_pe_and_pb.py +39 -9
  276. akshare/stock_feature/stock_account_em.py +0 -1
  277. akshare/stock_feature/stock_all_pb.py +2 -1
  278. akshare/stock_feature/stock_analyst_em.py +36 -30
  279. akshare/stock_feature/stock_board_concept_ths.py +144 -252
  280. akshare/stock_feature/stock_board_industry_ths.py +137 -401
  281. akshare/stock_feature/stock_buffett_index_lg.py +10 -8
  282. akshare/stock_feature/stock_classify_sina.py +3 -6
  283. akshare/stock_feature/stock_comment_em.py +81 -144
  284. akshare/stock_feature/stock_concept_futu.py +183 -0
  285. akshare/stock_feature/stock_congestion_lg.py +2 -1
  286. akshare/stock_feature/stock_cyq_em.py +5 -11
  287. akshare/stock_feature/stock_disclosure_cninfo.py +20 -10
  288. akshare/stock_feature/stock_dxsyl_em.py +121 -74
  289. akshare/stock_feature/stock_ebs_lg.py +5 -4
  290. akshare/stock_feature/stock_esg_sina.py +33 -15
  291. akshare/stock_feature/stock_fhps_em.py +62 -26
  292. akshare/stock_feature/stock_fhps_ths.py +34 -7
  293. akshare/stock_feature/stock_fund_flow.py +38 -25
  294. akshare/stock_feature/stock_gddh_em.py +19 -11
  295. akshare/stock_feature/stock_gdfx_em.py +226 -113
  296. akshare/stock_feature/stock_gdhs.py +75 -50
  297. akshare/stock_feature/stock_gdzjc_em.py +21 -10
  298. akshare/stock_feature/stock_gpzy_em.py +78 -46
  299. akshare/stock_feature/stock_gxl_lg.py +3 -2
  300. akshare/stock_feature/stock_hist_em.py +158 -237
  301. akshare/stock_feature/stock_hist_tx.py +13 -10
  302. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  303. akshare/stock_feature/stock_hot_xq.py +4 -6
  304. akshare/stock_feature/stock_hsgt_em.py +269 -97
  305. akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
  306. akshare/stock_feature/stock_hsgt_min_em.py +13 -16
  307. akshare/stock_feature/stock_info.py +8 -81
  308. akshare/stock_feature/stock_inner_trade_xq.py +38 -31
  309. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  310. akshare/stock_feature/stock_jgdy_em.py +43 -40
  311. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  312. akshare/stock_feature/stock_lhb_em.py +165 -35
  313. akshare/stock_feature/stock_lhb_sina.py +93 -46
  314. akshare/stock_feature/stock_margin_em.py +101 -0
  315. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -17
  316. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +7 -7
  317. akshare/stock_feature/stock_market_legu.py +4 -2
  318. akshare/stock_feature/stock_pankou_em.py +71 -35
  319. akshare/stock_feature/stock_qsjy_em.py +13 -4
  320. akshare/stock_feature/stock_report_em.py +152 -8
  321. akshare/stock_feature/stock_research_report_em.py +55 -20
  322. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  323. akshare/stock_feature/stock_sy_em.py +20 -15
  324. akshare/stock_feature/stock_technology_ths.py +152 -120
  325. akshare/stock_feature/stock_tfp_em.py +37 -14
  326. akshare/stock_feature/stock_three_report_em.py +120 -78
  327. akshare/stock_feature/stock_ttm_lyr.py +18 -9
  328. akshare/stock_feature/stock_value_em.py +83 -0
  329. akshare/stock_feature/stock_yjbb_em.py +58 -32
  330. akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
  331. akshare/stock_feature/stock_yjyg_em.py +1 -1
  332. akshare/stock_feature/stock_yzxdr_em.py +24 -22
  333. akshare/stock_feature/stock_zdhtmx_em.py +20 -6
  334. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  335. akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
  336. akshare/stock_feature/stock_ztb_em.py +39 -24
  337. akshare/stock_fundamental/__init__.py +1 -1
  338. akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
  339. akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
  340. akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +203 -59
  341. akshare/stock_fundamental/stock_finance_ths.py +524 -57
  342. akshare/stock_fundamental/stock_finance_us_em.py +268 -0
  343. akshare/stock_fundamental/stock_gbjg_em.py +80 -0
  344. akshare/stock_fundamental/stock_hold.py +26 -17
  345. akshare/stock_fundamental/stock_ipo_declare.py +1 -0
  346. akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
  347. akshare/stock_fundamental/stock_kcb_sse.py +26 -25
  348. akshare/stock_fundamental/stock_notice.py +41 -18
  349. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  350. akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
  351. akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
  352. akshare/stock_fundamental/stock_recommend.py +20 -4
  353. akshare/stock_fundamental/stock_register_em.py +448 -0
  354. akshare/stock_fundamental/stock_zygc.py +5 -62
  355. akshare/tool/trade_date_hist.py +1 -1
  356. akshare/utils/context.py +43 -0
  357. akshare/utils/demjson.py +2009 -1338
  358. akshare/utils/func.py +49 -2
  359. akshare/utils/multi_decrypt.py +53 -0
  360. akshare/utils/token_process.py +6 -5
  361. akshare/utils/tqdm.py +13 -3
  362. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/METADATA +56 -86
  363. akshare-1.17.99.dist-info/RECORD +409 -0
  364. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
  365. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
  366. tests/test_func.py +3 -5
  367. akshare/bond/bond_futures.py +0 -50
  368. akshare/bond/bond_investing.py +0 -139
  369. akshare/crypto/crypto_hist_investing.py +0 -249
  370. akshare/fortune/fortune_it_juzi.py +0 -123
  371. akshare/fund/fund_announcement.py +0 -56
  372. akshare/futures/futures_international.py +0 -170
  373. akshare/futures/futures_news_baidu.py +0 -54
  374. akshare/futures/inventory_data.py +0 -100
  375. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  376. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  377. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  378. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  379. akshare/index/index_fear_greed_funddb.py +0 -78
  380. akshare/index/index_investing.py +0 -232
  381. akshare/sport/__init__.py +0 -6
  382. akshare/sport/sport_olympic.py +0 -27
  383. akshare/sport/sport_olympic_winter.py +0 -39
  384. akshare/stock_feature/stock_wencai.py +0 -104
  385. akshare/stock_fundamental/stock_mda_ym.py +0 -40
  386. akshare/stock_fundamental/stock_register.py +0 -292
  387. akshare-1.13.46.dist-info/RECORD +0 -380
  388. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
@@ -1,14 +1,16 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2022/11/12 21:27
4
+ Date: 2025/3/20 18:00
5
5
  Desc: 东方财富-数据中心-年报季报
6
6
  东方财富-数据中心-年报季报-业绩快报-业绩报表
7
7
  https://data.eastmoney.com/bbsj/202003/yjbb.html
8
8
  """
9
+
9
10
  import pandas as pd
10
11
  import requests
11
- from tqdm import tqdm
12
+
13
+ from akshare.utils.tqdm import get_tqdm
12
14
 
13
15
 
14
16
  def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
@@ -20,29 +22,36 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
20
22
  :return: 业绩报表
21
23
  :rtype: pandas.DataFrame
22
24
  """
25
+ import warnings
26
+
27
+ warnings.simplefilter(action="ignore", category=FutureWarning) # 忽略所有
23
28
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
24
29
  params = {
25
- 'sortColumns': 'UPDATE_DATE,SECURITY_CODE',
26
- 'sortTypes': '-1,-1',
27
- 'pageSize': '500',
28
- 'pageNumber': '1',
29
- 'reportName': 'RPT_LICO_FN_CPD',
30
- 'columns': 'ALL',
31
- 'filter': f"(REPORTDATE='{'-'.join([date[:4], date[4:6], date[6:]])}')",
30
+ "sortColumns": "UPDATE_DATE,SECURITY_CODE",
31
+ "sortTypes": "-1,-1",
32
+ "pageSize": "500",
33
+ "pageNumber": "1",
34
+ "reportName": "RPT_LICO_FN_CPD",
35
+ "columns": "ALL",
36
+ "filter": f"(REPORTDATE='{'-'.join([date[:4], date[4:6], date[6:]])}')",
32
37
  }
33
38
  r = requests.get(url, params=params)
34
39
  data_json = r.json()
35
40
  page_num = data_json["result"]["pages"]
36
41
  big_df = pd.DataFrame()
42
+ tqdm = get_tqdm()
43
+ big_list = []
37
44
  for page in tqdm(range(1, page_num + 1), leave=False):
38
- params.update({
39
- 'pageNumber': page,
40
- })
45
+ params.update(
46
+ {
47
+ "pageNumber": page,
48
+ }
49
+ )
41
50
  r = requests.get(url, params=params)
42
51
  data_json = r.json()
43
52
  temp_df = pd.DataFrame(data_json["result"]["data"])
44
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
45
-
53
+ big_list.append(temp_df)
54
+ big_df = pd.concat(big_list, ignore_index=True)
46
55
  big_df.reset_index(inplace=True)
47
56
  big_df["index"] = range(1, len(big_df) + 1)
48
57
  big_df.columns = [
@@ -57,15 +66,15 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
57
66
  "_",
58
67
  "每股收益",
59
68
  "_",
60
- "营业收入-营业收入",
69
+ "营业总收入-营业总收入",
61
70
  "净利润-净利润",
62
71
  "净资产收益率",
63
- "营业收入-同比增长",
72
+ "营业总收入-同比增长",
64
73
  "净利润-同比增长",
65
74
  "每股净资产",
66
75
  "每股经营现金流量",
67
76
  "销售毛利率",
68
- "营业收入-季度环比增长",
77
+ "营业总收入-季度环比增长",
69
78
  "净利润-季度环比增长",
70
79
  "_",
71
80
  "_",
@@ -81,6 +90,9 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
81
90
  "_",
82
91
  "_",
83
92
  "_",
93
+ "_",
94
+ "_",
95
+ "_",
84
96
  ]
85
97
  big_df = big_df[
86
98
  [
@@ -88,9 +100,9 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
88
100
  "股票代码",
89
101
  "股票简称",
90
102
  "每股收益",
91
- "营业收入-营业收入",
92
- "营业收入-同比增长",
93
- "营业收入-季度环比增长",
103
+ "营业总收入-营业总收入",
104
+ "营业总收入-同比增长",
105
+ "营业总收入-季度环比增长",
94
106
  "净利润-净利润",
95
107
  "净利润-同比增长",
96
108
  "净利润-季度环比增长",
@@ -102,18 +114,32 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
102
114
  "最新公告日期",
103
115
  ]
104
116
  ]
105
- big_df['每股收益'] = pd.to_numeric(big_df['每股收益'], errors="coerce")
106
- big_df['营业收入-营业收入'] = pd.to_numeric(big_df['营业收入-营业收入'], errors="coerce")
107
- big_df['营业收入-同比增长'] = pd.to_numeric(big_df['营业收入-同比增长'], errors="coerce")
108
- big_df['营业收入-季度环比增长'] = pd.to_numeric(big_df['营业收入-季度环比增长'], errors="coerce")
109
- big_df['净利润-净利润'] = pd.to_numeric(big_df['净利润-净利润'], errors="coerce")
110
- big_df['净利润-同比增长'] = pd.to_numeric(big_df['净利润-同比增长'], errors="coerce")
111
- big_df['净利润-季度环比增长'] = pd.to_numeric(big_df['净利润-季度环比增长'], errors="coerce")
112
- big_df['每股净资产'] = pd.to_numeric(big_df['每股净资产'], errors="coerce")
113
- big_df['净资产收益率'] = pd.to_numeric(big_df['净资产收益率'], errors="coerce")
114
- big_df['每股经营现金流量'] = pd.to_numeric(big_df['每股经营现金流量'], errors="coerce")
115
- big_df['销售毛利率'] = pd.to_numeric(big_df['销售毛利率'], errors="coerce")
116
- big_df['最新公告日期'] = pd.to_datetime(big_df['最新公告日期']).dt.date
117
+ big_df["每股收益"] = pd.to_numeric(big_df["每股收益"], errors="coerce")
118
+ big_df["营业总收入-营业总收入"] = pd.to_numeric(
119
+ big_df["营业总收入-营业总收入"], errors="coerce"
120
+ )
121
+ big_df["营业总收入-同比增长"] = pd.to_numeric(
122
+ big_df["营业总收入-同比增长"], errors="coerce"
123
+ )
124
+ big_df["营业总收入-季度环比增长"] = pd.to_numeric(
125
+ big_df["营业总收入-季度环比增长"], errors="coerce"
126
+ )
127
+ big_df["净利润-净利润"] = pd.to_numeric(big_df["净利润-净利润"], errors="coerce")
128
+ big_df["净利润-同比增长"] = pd.to_numeric(
129
+ big_df["净利润-同比增长"], errors="coerce"
130
+ )
131
+ big_df["净利润-季度环比增长"] = pd.to_numeric(
132
+ big_df["净利润-季度环比增长"], errors="coerce"
133
+ )
134
+ big_df["每股净资产"] = pd.to_numeric(big_df["每股净资产"], errors="coerce")
135
+ big_df["净资产收益率"] = pd.to_numeric(big_df["净资产收益率"], errors="coerce")
136
+ big_df["每股经营现金流量"] = pd.to_numeric(
137
+ big_df["每股经营现金流量"], errors="coerce"
138
+ )
139
+ big_df["销售毛利率"] = pd.to_numeric(big_df["销售毛利率"], errors="coerce")
140
+ big_df["最新公告日期"] = pd.to_datetime(
141
+ big_df["最新公告日期"], errors="coerce"
142
+ ).dt.date
117
143
  return big_df
118
144
 
119
145
 
@@ -5,6 +5,7 @@ Date: 2023/6/8 16:34
5
5
  Desc: 巨潮资讯-首页-数据-预约披露
6
6
  http://www.cninfo.com.cn/new/commonUrl?url=data/yypl
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
@@ -15,7 +16,8 @@ def stock_report_disclosure(
15
16
  """
16
17
  巨潮资讯-首页-数据-预约披露
17
18
  http://www.cninfo.com.cn/new/commonUrl?url=data/yypl
18
- :param market: choice of {"沪深京": "szsh", "深市": "sz", "深主板": "szmb", "中小板": "szsme", "创业板": "szcn", "沪市": "sh", "沪主板": "shmb", "科创板": "shkcp"}
19
+ :param market: choice of {"沪深京": "szsh", "深市": "sz", "深主板": "szmb", "中小板": "szsme",
20
+ "创业板": "szcn", "沪市": "sh", "沪主板": "shmb", "科创板": "shkcp"}
19
21
  :type market: str
20
22
  :param period: 最近四期的财报
21
23
  :type period: str
@@ -86,5 +88,7 @@ def stock_report_disclosure(
86
88
 
87
89
 
88
90
  if __name__ == "__main__":
89
- stock_report_disclosure_df = stock_report_disclosure(market="沪深京", period="2022年报")
91
+ stock_report_disclosure_df = stock_report_disclosure(
92
+ market="沪深京", period="2022年报"
93
+ )
90
94
  print(stock_report_disclosure_df)
@@ -361,7 +361,7 @@ if __name__ == "__main__":
361
361
  stock_yjkb_em_df = stock_yjkb_em(date="20200331")
362
362
  print(stock_yjkb_em_df)
363
363
 
364
- stock_yjyg_em_df = stock_yjyg_em(date="20191231")
364
+ stock_yjyg_em_df = stock_yjyg_em(date="20250331")
365
365
  print(stock_yjyg_em_df)
366
366
 
367
367
  stock_yysj_em_df = stock_yysj_em(symbol="沪深A股", date="20211231")
@@ -3,26 +3,30 @@
3
3
  """
4
4
  Date: 2022/4/27 19:18
5
5
  Desc: 东方财富网-数据中心-特色数据-一致行动人
6
- http://data.eastmoney.com/yzxdr/
6
+ https://data.eastmoney.com/yzxdr/
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from tqdm import tqdm
11
+ from akshare.utils.tqdm import get_tqdm
11
12
 
12
13
  from akshare.utils import demjson
13
14
 
14
15
 
15
- def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
16
+ def stock_yzxdr_em(date: str = "20240930") -> pd.DataFrame:
16
17
  """
17
18
  东方财富网-数据中心-特色数据-一致行动人
18
- http://data.eastmoney.com/yzxdr/
19
+ https://data.eastmoney.com/yzxdr/
19
20
  :param date: 每年的季度末时间点
20
21
  :type date: str
21
22
  :return: 一致行动人
22
23
  :rtype: pandas.DataFrame
23
24
  """
25
+ import warnings
26
+
27
+ warnings.simplefilter(action="ignore", category=FutureWarning) # 忽略所有
24
28
  date = "-".join([date[:4], date[4:6], date[6:]])
25
- url = "http://datacenter.eastmoney.com/api/data/get"
29
+ url = "https://datacenter.eastmoney.com/api/data/get"
26
30
  params = {
27
31
  "type": "RPTA_WEB_YZXDRINDEX",
28
32
  "sty": "ALL",
@@ -40,24 +44,19 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
40
44
  data_json = demjson.decode(data_text[data_text.find("{") : -1])
41
45
  total_pages = data_json["result"]["pages"]
42
46
  big_df = pd.DataFrame()
47
+ tqdm = get_tqdm()
43
48
  for page in tqdm(range(1, total_pages + 1), leave=False):
44
- params = {
45
- "type": "RPTA_WEB_YZXDRINDEX",
46
- "sty": "ALL",
47
- "source": "WEB",
48
- "p": str(page),
49
- "ps": "500",
50
- "st": "noticedate",
51
- "sr": "-1",
52
- "var": "mwUyirVm",
53
- "filter": f"(enddate='{date}')",
54
- "rt": "53575609",
55
- }
49
+ params.update(
50
+ {
51
+ "p": str(page),
52
+ "filter": f"(enddate='{date}')",
53
+ }
54
+ )
56
55
  r = requests.get(url, params=params)
57
56
  data_text = r.text
58
57
  data_json = demjson.decode(data_text[data_text.find("{") : -1])
59
58
  temp_df = pd.DataFrame(data_json["result"]["data"])
60
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
59
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
61
60
 
62
61
  big_df.reset_index(inplace=True)
63
62
  big_df["index"] = range(1, len(big_df) + 1)
@@ -78,8 +77,8 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
78
77
  "数据日期",
79
78
  "股票市场",
80
79
  ]
81
- big_df["数据日期"] = pd.to_datetime(big_df["数据日期"])
82
- big_df["公告日期"] = pd.to_datetime(big_df["公告日期"])
80
+ big_df["数据日期"] = pd.to_datetime(big_df["数据日期"], errors="coerce")
81
+ big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce")
83
82
 
84
83
  big_df = big_df[
85
84
  [
@@ -95,10 +94,13 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
95
94
  "公告日期",
96
95
  ]
97
96
  ]
98
- big_df['公告日期'] = pd.to_datetime(big_df['公告日期']).dt.date
97
+ big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
98
+ big_df["持股数量"] = pd.to_numeric(big_df["持股数量"], errors="coerce")
99
+ big_df["持股比例"] = pd.to_numeric(big_df["持股比例"], errors="coerce")
100
+ big_df["持股数量变动"] = pd.to_numeric(big_df["持股数量变动"], errors="coerce")
99
101
  return big_df
100
102
 
101
103
 
102
104
  if __name__ == "__main__":
103
- stock_yzxdr_em_df = stock_yzxdr_em(date="20220331")
105
+ stock_yzxdr_em_df = stock_yzxdr_em(date="20240930")
104
106
  print(stock_yzxdr_em_df)
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/8/19 20:32
4
+ Date: 2025/2/11 20:32
5
5
  Desc: 东方财富网-数据中心-重大合同-重大合同明细
6
6
  https://data.eastmoney.com/zdht/mx.html
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from tqdm import tqdm
11
+ from akshare.utils.tqdm import get_tqdm
11
12
 
12
13
 
13
14
  def stock_zdhtmx_em(
@@ -16,9 +17,16 @@ def stock_zdhtmx_em(
16
17
  """
17
18
  东方财富网-数据中心-重大合同-重大合同明细
18
19
  https://data.eastmoney.com/zdht/mx.html
20
+ :param start_date: 开始日期, eg 20200819
21
+ :type start_date: str
22
+ :param end_date: 结束日期, eg 20230819
23
+ :type end_date: str
19
24
  :return: 股东大会
20
25
  :rtype: pandas.DataFrame
21
26
  """
27
+ import warnings
28
+
29
+ warnings.filterwarnings(action="ignore", category=FutureWarning)
22
30
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
23
31
  params = {
24
32
  "sortColumns": "DIM_RDATE",
@@ -28,12 +36,14 @@ def stock_zdhtmx_em(
28
36
  "columns": "ALL",
29
37
  "token": "894050c76af8597a853f5b408b759f5d",
30
38
  "reportName": "RPTA_WEB_ZDHT_LIST",
31
- "filter": f"""(DIM_RDATE>='{"-".join([start_date[:4], start_date[4:6], start_date[6:]])}')(DIM_RDATE<='{"-".join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
39
+ "filter": f"""(DIM_RDATE>='{"-".join([start_date[:4], start_date[4:6], start_date[6:]])}')
40
+ (DIM_RDATE<='{"-".join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
32
41
  }
33
42
  r = requests.get(url, params=params)
34
43
  data_json = r.json()
35
44
  total_page = data_json["result"]["pages"]
36
45
  big_df = pd.DataFrame()
46
+ tqdm = get_tqdm()
37
47
  for page in tqdm(range(1, total_page + 1), leave=False):
38
48
  params.update(
39
49
  {
@@ -43,7 +53,7 @@ def stock_zdhtmx_em(
43
53
  r = requests.get(url, params=params)
44
54
  data_json = r.json()
45
55
  temp_df = pd.DataFrame(data_json["result"]["data"])
46
- big_df = pd.concat([big_df, temp_df], axis=0, ignore_index=True)
56
+ big_df = pd.concat(objs=[big_df, temp_df], axis=0, ignore_index=True)
47
57
  big_df.reset_index(inplace=True)
48
58
  big_df["index"] = big_df["index"] + 1
49
59
  big_df.rename(
@@ -101,8 +111,12 @@ def stock_zdhtmx_em(
101
111
  big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
102
112
  big_df["合同金额"] = pd.to_numeric(big_df["合同金额"], errors="coerce")
103
113
  big_df["上年度营业收入"] = pd.to_numeric(big_df["上年度营业收入"], errors="coerce")
104
- big_df["占上年度营业收入比例"] = pd.to_numeric(big_df["占上年度营业收入比例"], errors="coerce")
105
- big_df["最新财务报表的营业收入"] = pd.to_numeric(big_df["最新财务报表的营业收入"], errors="coerce")
114
+ big_df["占上年度营业收入比例"] = pd.to_numeric(
115
+ big_df["占上年度营业收入比例"], errors="coerce"
116
+ )
117
+ big_df["最新财务报表的营业收入"] = pd.to_numeric(
118
+ big_df["最新财务报表的营业收入"], errors="coerce"
119
+ )
106
120
  return big_df
107
121
 
108
122
 
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/7/14 15:00
4
+ Date: 2024/5/29 23:00
5
5
  Desc: 百度股市通-A股-财务报表-估值数据
6
6
  https://gushitong.baidu.com/stock/ab-002044
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
@@ -56,6 +57,6 @@ def stock_zh_valuation_baidu(
56
57
 
57
58
  if __name__ == "__main__":
58
59
  stock_zh_valuation_baidu_df = stock_zh_valuation_baidu(
59
- symbol="002955", indicator="市净率", period="近一年"
60
+ symbol="002044", indicator="总市值", period="近一年"
60
61
  )
61
62
  print(stock_zh_valuation_baidu_df)
@@ -5,11 +5,14 @@ Date: 2022/10/10 17:26
5
5
  Desc: 百度股市通- A 股或指数-股评-投票
6
6
  https://gushitong.baidu.com/index/ab-000001
7
7
  """
8
+
8
9
  import requests
9
10
  import pandas as pd
10
11
 
11
12
 
12
- def stock_zh_vote_baidu(symbol: str = "000001", indicator: str = "指数") -> pd.DataFrame:
13
+ def stock_zh_vote_baidu(
14
+ symbol: str = "000001", indicator: str = "指数"
15
+ ) -> pd.DataFrame:
13
16
  """
14
17
  百度股市通- A 股或指数-股评-投票
15
18
  https://gushitong.baidu.com/index/ab-000001
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/4/11 18:00
4
+ Date: 2024/11/22 21:30
5
5
  Desc: 首页-行情中心-涨停板行情-涨停股池
6
6
  https://quote.eastmoney.com/ztb/detail#type=ztgc
7
7
 
@@ -21,7 +21,7 @@ import pandas as pd
21
21
  import requests
22
22
 
23
23
 
24
- def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
24
+ def stock_zt_pool_em(date: str = "20241008") -> pd.DataFrame:
25
25
  """
26
26
  东方财富网-行情中心-涨停板行情-涨停股池
27
27
  https://quote.eastmoney.com/ztb/detail#type=ztgc
@@ -38,12 +38,13 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
38
38
  "pagesize": "10000",
39
39
  "sort": "fbt:asc",
40
40
  "date": date,
41
- "_": "1621590489736",
42
41
  }
43
42
  r = requests.get(url, params=params)
44
43
  data_json = r.json()
45
44
  if data_json["data"] is None:
46
45
  return pd.DataFrame()
46
+ if len(data_json["data"]["pool"]) == 0:
47
+ return pd.DataFrame()
47
48
  temp_df = pd.DataFrame(data_json["data"]["pool"])
48
49
  temp_df.reset_index(inplace=True)
49
50
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -120,15 +121,16 @@ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
120
121
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
121
122
  "dpt": "wz.ztzt",
122
123
  "Pageindex": "0",
123
- "pagesize": "170",
124
+ "pagesize": "5000",
124
125
  "sort": "zs:desc",
125
126
  "date": date,
126
- "_": "1621590489736",
127
127
  }
128
128
  r = requests.get(url, params=params)
129
129
  data_json = r.json()
130
130
  if data_json["data"] is None:
131
131
  return pd.DataFrame()
132
+ if len(data_json["data"]["pool"]) == 0:
133
+ return pd.DataFrame()
132
134
  temp_df = pd.DataFrame(data_json["data"]["pool"])
133
135
  temp_df.reset_index(inplace=True)
134
136
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -182,7 +184,7 @@ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
182
184
  return temp_df
183
185
 
184
186
 
185
- def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
187
+ def stock_zt_pool_strong_em(date: str = "20241231") -> pd.DataFrame:
186
188
  """
187
189
  东方财富网-行情中心-涨停板行情-强势股池
188
190
  https://quote.eastmoney.com/ztb/detail#type=qsgc
@@ -196,15 +198,16 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
196
198
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
197
199
  "dpt": "wz.ztzt",
198
200
  "Pageindex": "0",
199
- "pagesize": "170",
201
+ "pagesize": "5000",
200
202
  "sort": "zdp:desc",
201
203
  "date": date,
202
- "_": "1621590489736",
203
204
  }
204
205
  r = requests.get(url, params=params)
205
206
  data_json = r.json()
206
207
  if data_json["data"] is None:
207
208
  return pd.DataFrame()
209
+ if len(data_json["data"]["pool"]) == 0:
210
+ return pd.DataFrame()
208
211
  temp_df = pd.DataFrame(data_json["data"]["pool"])
209
212
  temp_df.reset_index(inplace=True)
210
213
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -255,10 +258,22 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
255
258
  ]
256
259
  temp_df["最新价"] = temp_df["最新价"] / 1000
257
260
  temp_df["涨停价"] = temp_df["涨停价"] / 1000
261
+ explained_map = {1: "60日新高", 2: "近期多次涨停", 3: "60日新高且近期多次涨停"}
262
+ temp_df["入选理由"] = temp_df["入选理由"].apply(lambda x: explained_map[x])
263
+ temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
264
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
265
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
266
+ temp_df["涨停价"] = pd.to_numeric(temp_df["涨停价"], errors="coerce")
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")
258
273
  return temp_df
259
274
 
260
275
 
261
- def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
276
+ def stock_zt_pool_sub_new_em(date: str = "20241231") -> pd.DataFrame:
262
277
  """
263
278
  东方财富网-行情中心-涨停板行情-次新股池
264
279
  https://quote.eastmoney.com/ztb/detail#type=cxgc
@@ -272,14 +287,13 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
272
287
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
273
288
  "dpt": "wz.ztzt",
274
289
  "Pageindex": "0",
275
- "pagesize": "170",
290
+ "pagesize": "5000",
276
291
  "sort": "ods:asc",
277
292
  "date": date,
278
- "_": "1621590489736",
279
293
  }
280
294
  r = requests.get(url, params=params)
281
295
  data_json = r.json()
282
- if data_json["data"]["pool"] == 0:
296
+ if len(data_json["data"]["pool"]) == 0:
283
297
  return pd.DataFrame()
284
298
  temp_df = pd.DataFrame(data_json["data"]["pool"])
285
299
  temp_df.reset_index(inplace=True)
@@ -333,13 +347,14 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
333
347
  temp_df["最新价"] = temp_df["最新价"] / 1000
334
348
  temp_df["涨停价"] = temp_df["涨停价"] / 1000
335
349
  temp_df.loc[temp_df["涨停价"] > 100000, "涨停价"] = pd.NA
336
- temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d")
337
- temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d")
350
+ temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d").dt.date
351
+ temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d").dt.date
338
352
  temp_df.loc[temp_df["上市日期"] == 0, "上市日期"] = pd.NaT
353
+ temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
339
354
  return temp_df
340
355
 
341
356
 
342
- def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
357
+ def stock_zt_pool_zbgc_em(date: str = "20241011") -> pd.DataFrame:
343
358
  """
344
359
  东方财富网-行情中心-涨停板行情-炸板股池
345
360
  https://quote.eastmoney.com/ztb/detail#type=zbgc
@@ -358,15 +373,16 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
358
373
  "ut": "7eea3edcaed734bea9cbfc24409ed989",
359
374
  "dpt": "wz.ztzt",
360
375
  "Pageindex": "0",
361
- "pagesize": "170",
376
+ "pagesize": "5000",
362
377
  "sort": "fbt:asc",
363
378
  "date": date,
364
- "_": "1621590489736",
365
379
  }
366
380
  r = requests.get(url, params=params)
367
381
  data_json = r.json()
368
382
  if data_json["data"] is None:
369
383
  return pd.DataFrame()
384
+ if len(data_json["data"]["pool"]) == 0:
385
+ return pd.DataFrame()
370
386
  temp_df = pd.DataFrame(data_json["data"]["pool"])
371
387
  temp_df.reset_index(inplace=True)
372
388
  temp_df["index"] = range(1, len(temp_df) + 1)
@@ -420,7 +436,7 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
420
436
  return temp_df
421
437
 
422
438
 
423
- def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
439
+ def stock_zt_pool_dtgc_em(date: str = "20241011") -> pd.DataFrame:
424
440
  """
425
441
  东方财富网-行情中心-涨停板行情-跌停股池
426
442
  https://quote.eastmoney.com/ztb/detail#type=dtgc
@@ -442,7 +458,6 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
442
458
  "pagesize": "10000",
443
459
  "sort": "fund:asc",
444
460
  "date": date,
445
- "_": "1621590489736",
446
461
  }
447
462
  r = requests.get(url, params=params)
448
463
  data_json = r.json()
@@ -508,20 +523,20 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
508
523
 
509
524
 
510
525
  if __name__ == "__main__":
511
- stock_zt_pool_em_df = stock_zt_pool_em(date="20240411")
526
+ stock_zt_pool_em_df = stock_zt_pool_em(date="20241008")
512
527
  print(stock_zt_pool_em_df)
513
528
 
514
529
  stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20240415")
515
530
  print(stock_zt_pool_previous_em_df)
516
531
 
517
- stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20240329")
532
+ stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20241231")
518
533
  print(stock_zt_pool_strong_em_df)
519
534
 
520
- stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20240329")
535
+ stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241231")
521
536
  print(stock_zt_pool_sub_new_em_df)
522
537
 
523
- stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20240329")
538
+ stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
524
539
  print(stock_zt_pool_zbgc_em_df)
525
540
 
526
- stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20240329")
541
+ stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20241011")
527
542
  print(stock_zt_pool_dtgc_em_df)
@@ -2,5 +2,5 @@
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
4
  Date: 2020/5/14 15:34
5
- Desc:
5
+ Desc:
6
6
  """