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,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/6/9 18:11
4
+ Date: 2024/10/22 15:00
5
5
  Desc: 巨潮资讯-数据浏览器-筹资指标-公司配股实施方案
6
- http://webapi.cninfo.com.cn/#/dataBrowse
6
+ https://webapi.cninfo.com.cn/#/dataBrowse
7
7
  """
8
+
8
9
  import pandas as pd
10
+ import py_mini_racer
9
11
  import requests
10
- from py_mini_racer import py_mini_racer
11
12
 
12
13
  from akshare.datasets import get_ths_js
13
14
 
@@ -21,7 +22,7 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
21
22
  :rtype: str
22
23
  """
23
24
  setting_file_path = get_ths_js(file)
24
- with open(setting_file_path) as f:
25
+ with open(setting_file_path, encoding="utf-8") as f:
25
26
  file_data = f.read()
26
27
  return file_data
27
28
 
@@ -31,7 +32,7 @@ def stock_allotment_cninfo(
31
32
  ) -> pd.DataFrame:
32
33
  """
33
34
  巨潮资讯-个股-配股实施方案
34
- http://webapi.cninfo.com.cn/#/dataBrowse
35
+ https://webapi.cninfo.com.cn/#/dataBrowse
35
36
  :param symbol: 股票代码
36
37
  :type symbol: str
37
38
  :param start_date: 开始查询的日期
@@ -41,7 +42,7 @@ def stock_allotment_cninfo(
41
42
  :return: 配股实施方案
42
43
  :rtype: pandas.DataFrame
43
44
  """
44
- url = "http://webapi.cninfo.com.cn/api/stock/p_stock2232"
45
+ url = "https://webapi.cninfo.com.cn/api/stock/p_stock2232"
45
46
  params = {
46
47
  "scode": symbol,
47
48
  "sdate": start_date
@@ -63,10 +64,10 @@ def stock_allotment_cninfo(
63
64
  "Cache-Control": "no-cache",
64
65
  "Content-Length": "0",
65
66
  "Host": "webapi.cninfo.com.cn",
66
- "Origin": "http://webapi.cninfo.com.cn",
67
+ "Origin": "https://webapi.cninfo.com.cn",
67
68
  "Pragma": "no-cache",
68
69
  "Proxy-Connection": "keep-alive",
69
- "Referer": "http://webapi.cninfo.com.cn/",
70
+ "Referer": "https://webapi.cninfo.com.cn/",
70
71
  "X-Requested-With": "XMLHttpRequest",
71
72
  }
72
73
  r = requests.post(url, params=params, headers=headers)
@@ -191,6 +192,6 @@ def stock_allotment_cninfo(
191
192
 
192
193
  if __name__ == "__main__":
193
194
  stock_allotment_cninfo_df = stock_allotment_cninfo(
194
- symbol="600030", start_date="19900101", end_date="20221008"
195
+ symbol="600030", start_date="19900101", end_date="20241022"
195
196
  )
196
197
  print(stock_allotment_cninfo_df)
@@ -1,90 +1,15 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/20 15:00
4
+ Date: 2025/2/16 18:30
5
5
  Desc: 东方财富-行情报价
6
6
  https://quote.eastmoney.com/sz000001.html
7
7
  """
8
8
 
9
- from functools import lru_cache
10
-
11
9
  import pandas as pd
12
10
  import requests
13
11
 
14
12
 
15
- @lru_cache()
16
- def __code_id_map_em() -> dict:
17
- """
18
- 东方财富-股票和市场代码
19
- https://quote.eastmoney.com/center/gridlist.html#hs_a_board
20
- :return: 股票和市场代码
21
- :rtype: dict
22
- """
23
- url = "https://80.push2.eastmoney.com/api/qt/clist/get"
24
- params = {
25
- "pn": "1",
26
- "pz": "50000",
27
- "po": "1",
28
- "np": "1",
29
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
30
- "fltt": "2",
31
- "invt": "2",
32
- "fid": "f3",
33
- "fs": "m:1 t:2,m:1 t:23",
34
- "fields": "f12",
35
- "_": "1623833739532",
36
- }
37
- r = requests.get(url, params=params)
38
- data_json = r.json()
39
- if not data_json["data"]["diff"]:
40
- return dict()
41
- temp_df = pd.DataFrame(data_json["data"]["diff"])
42
- temp_df["market_id"] = 1
43
- temp_df.columns = ["sh_code", "sh_id"]
44
- code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
45
- params = {
46
- "pn": "1",
47
- "pz": "50000",
48
- "po": "1",
49
- "np": "1",
50
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
51
- "fltt": "2",
52
- "invt": "2",
53
- "fid": "f3",
54
- "fs": "m:0 t:6,m:0 t:80",
55
- "fields": "f12",
56
- "_": "1623833739532",
57
- }
58
- r = requests.get(url, params=params)
59
- data_json = r.json()
60
- if not data_json["data"]["diff"]:
61
- return dict()
62
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
63
- temp_df_sz["sz_id"] = 0
64
- code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
65
- params = {
66
- "pn": "1",
67
- "pz": "50000",
68
- "po": "1",
69
- "np": "1",
70
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
71
- "fltt": "2",
72
- "invt": "2",
73
- "fid": "f3",
74
- "fs": "m:0 t:81 s:2048",
75
- "fields": "f12",
76
- "_": "1623833739532",
77
- }
78
- r = requests.get(url, params=params)
79
- data_json = r.json()
80
- if not data_json["data"]["diff"]:
81
- return dict()
82
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
83
- temp_df_sz["bj_id"] = 0
84
- code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["bj_id"])))
85
- return code_id_dict
86
-
87
-
88
13
  def stock_bid_ask_em(symbol: str = "000001") -> pd.DataFrame:
89
14
  """
90
15
  东方财富-行情报价
@@ -95,7 +20,7 @@ def stock_bid_ask_em(symbol: str = "000001") -> pd.DataFrame:
95
20
  :rtype: pandas.DataFrame
96
21
  """
97
22
  url = "https://push2.eastmoney.com/api/qt/stock/get"
98
- code_id_map_em_dict = __code_id_map_em()
23
+ market_code = 1 if symbol.startswith("6") else 0
99
24
  params = {
100
25
  "fltt": "2",
101
26
  "invt": "2",
@@ -107,7 +32,7 @@ def stock_bid_ask_em(symbol: str = "000001") -> pd.DataFrame:
107
32
  "f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,"
108
33
  "f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,f275,"
109
34
  "f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
110
- "secid": f"{code_id_map_em_dict[symbol]}.{symbol}",
35
+ "secid": f"{market_code}.{symbol}",
111
36
  }
112
37
  r = requests.get(url, params=params)
113
38
  data_json = r.json()
@@ -1,13 +1,98 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/6/29 17:13
4
+ Date: 2025/3/12 17:00
5
5
  Desc: 东方财富-沪深板块-概念板块
6
6
  https://quote.eastmoney.com/center/boardlist.html#concept_board
7
7
  """
8
8
 
9
- import requests
9
+ import re
10
+ from functools import lru_cache
11
+
10
12
  import pandas as pd
13
+ import requests
14
+
15
+ from akshare.utils.func import fetch_paginated_data
16
+
17
+
18
+ @lru_cache()
19
+ def __stock_board_concept_name_em() -> pd.DataFrame:
20
+ """
21
+ 东方财富网-行情中心-沪深京板块-概念板块-名称
22
+ https://quote.eastmoney.com/center/boardlist.html#concept_board
23
+ :return: 概念板块-名称
24
+ :rtype: pandas.DataFrame
25
+ """
26
+ url = "https://79.push2.eastmoney.com/api/qt/clist/get"
27
+ params = {
28
+ "pn": "1",
29
+ "pz": "100",
30
+ "po": "1",
31
+ "np": "1",
32
+ "ut": "bd1d9ddb04089700cf9c27f6f7426281",
33
+ "fltt": "2",
34
+ "invt": "2",
35
+ "fid": "f12",
36
+ "fs": "m:90 t:3 f:!50",
37
+ "fields": "f2,f3,f4,f8,f12,f14,f15,f16,f17,f18,f20,f21,f24,f25,f22,f33,f11,f62,f128,f124,f107,f104,f105,f136",
38
+ }
39
+ temp_df = fetch_paginated_data(url, params)
40
+ temp_df.columns = [
41
+ "排名",
42
+ "最新价",
43
+ "涨跌幅",
44
+ "涨跌额",
45
+ "换手率",
46
+ "_",
47
+ "板块代码",
48
+ "板块名称",
49
+ "_",
50
+ "_",
51
+ "_",
52
+ "_",
53
+ "总市值",
54
+ "_",
55
+ "_",
56
+ "_",
57
+ "_",
58
+ "_",
59
+ "_",
60
+ "上涨家数",
61
+ "下跌家数",
62
+ "_",
63
+ "_",
64
+ "领涨股票",
65
+ "_",
66
+ "_",
67
+ "领涨股票-涨跌幅",
68
+ ]
69
+ temp_df = temp_df[
70
+ [
71
+ "排名",
72
+ "板块名称",
73
+ "板块代码",
74
+ "最新价",
75
+ "涨跌额",
76
+ "涨跌幅",
77
+ "总市值",
78
+ "换手率",
79
+ "上涨家数",
80
+ "下跌家数",
81
+ "领涨股票",
82
+ "领涨股票-涨跌幅",
83
+ ]
84
+ ]
85
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
86
+ temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
87
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
88
+ temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
89
+ temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
90
+ temp_df["上涨家数"] = pd.to_numeric(temp_df["上涨家数"], errors="coerce")
91
+ temp_df["下跌家数"] = pd.to_numeric(temp_df["下跌家数"], errors="coerce")
92
+ temp_df["领涨股票-涨跌幅"] = pd.to_numeric(
93
+ temp_df["领涨股票-涨跌幅"], errors="coerce"
94
+ )
95
+ return temp_df
11
96
 
12
97
 
13
98
  def stock_board_concept_name_em() -> pd.DataFrame:
@@ -20,22 +105,17 @@ def stock_board_concept_name_em() -> pd.DataFrame:
20
105
  url = "https://79.push2.eastmoney.com/api/qt/clist/get"
21
106
  params = {
22
107
  "pn": "1",
23
- "pz": "2000",
108
+ "pz": "100",
24
109
  "po": "1",
25
110
  "np": "1",
26
111
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
27
112
  "fltt": "2",
28
113
  "invt": "2",
29
- "fid": "f3",
114
+ "fid": "f12",
30
115
  "fs": "m:90 t:3 f:!50",
31
116
  "fields": "f2,f3,f4,f8,f12,f14,f15,f16,f17,f18,f20,f21,f24,f25,f22,f33,f11,f62,f128,f124,f107,f104,f105,f136",
32
- "_": "1626075887768",
33
117
  }
34
- r = requests.get(url, params=params)
35
- data_json = r.json()
36
- temp_df = pd.DataFrame(data_json["data"]["diff"])
37
- temp_df.reset_index(inplace=True)
38
- temp_df["index"] = range(1, len(temp_df) + 1)
118
+ temp_df = fetch_paginated_data(url, params)
39
119
  temp_df.columns = [
40
120
  "排名",
41
121
  "最新价",
@@ -94,8 +174,58 @@ def stock_board_concept_name_em() -> pd.DataFrame:
94
174
  return temp_df
95
175
 
96
176
 
177
+ def stock_board_concept_spot_em(symbol: str = "可燃冰") -> pd.DataFrame:
178
+ """
179
+ 东方财富网-行情中心-沪深京板块-概念板块-实时行情
180
+ https://quote.eastmoney.com/bk/90.BK0818.html
181
+ :param symbol: 概念板块代码
182
+ :type symbol: str
183
+ :return: 概念板块-实时行情
184
+ :rtype: pandas.DataFrame
185
+ """
186
+ url = "https://91.push2.eastmoney.com/api/qt/stock/get"
187
+ field_map = {
188
+ "f43": "最新",
189
+ "f44": "最高",
190
+ "f45": "最低",
191
+ "f46": "开盘",
192
+ "f47": "成交量",
193
+ "f48": "成交额",
194
+ "f170": "涨跌幅",
195
+ "f171": "振幅",
196
+ "f168": "换手率",
197
+ "f169": "涨跌额",
198
+ }
199
+
200
+ if re.match(pattern=r"^BK\d+", string=symbol):
201
+ em_code = symbol
202
+ else:
203
+ industry_listing = __stock_board_concept_name_em()
204
+ em_code = industry_listing.query("板块名称 == @symbol")["板块代码"].values[0]
205
+ params = dict(
206
+ fields=",".join(field_map.keys()),
207
+ mpi="1000",
208
+ invt="2",
209
+ fltt="1",
210
+ secid=f"90.{em_code}",
211
+ )
212
+ r = requests.get(url, params=params)
213
+ data_dict = r.json()
214
+ result = pd.DataFrame.from_dict(data_dict["data"], orient="index")
215
+ result.rename(field_map, inplace=True)
216
+ result.reset_index(inplace=True)
217
+ result.columns = ["item", "value"]
218
+ result["value"] = pd.to_numeric(result["value"], errors="coerce")
219
+
220
+ # 各项转换成正常单位. 除了成交量与成交额, 原始数据中已是正常单位(元)
221
+ result["value"] = result["value"] * 1e-2
222
+ result.iloc[4, 1] = result.iloc[4, 1] * 1e2
223
+ result.iloc[5, 1] = result.iloc[5, 1] * 1e2
224
+ return result
225
+
226
+
97
227
  def stock_board_concept_hist_em(
98
- symbol: str = "数字货币",
228
+ symbol: str = "绿色电力",
99
229
  period: str = "daily",
100
230
  start_date: str = "20220101",
101
231
  end_date: str = "20221128",
@@ -122,7 +252,7 @@ def stock_board_concept_hist_em(
122
252
  "weekly": "102",
123
253
  "monthly": "103",
124
254
  }
125
- stock_board_concept_em_map = stock_board_concept_name_em()
255
+ stock_board_concept_em_map = __stock_board_concept_name_em()
126
256
  stock_board_code = stock_board_concept_em_map[
127
257
  stock_board_concept_em_map["板块名称"] == symbol
128
258
  ]["板块代码"].values[0]
@@ -130,7 +260,6 @@ def stock_board_concept_hist_em(
130
260
  url = "https://91.push2his.eastmoney.com/api/qt/stock/kline/get"
131
261
  params = {
132
262
  "secid": f"90.{stock_board_code}",
133
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
134
263
  "fields1": "f1,f2,f3,f4,f5,f6",
135
264
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61",
136
265
  "klt": period_map[period],
@@ -139,7 +268,6 @@ def stock_board_concept_hist_em(
139
268
  "end": end_date,
140
269
  "smplmt": "10000",
141
270
  "lmt": "1000000",
142
- "_": "1626079488673",
143
271
  }
144
272
  r = requests.get(url, params=params)
145
273
  data_json = r.json()
@@ -198,7 +326,7 @@ def stock_board_concept_hist_min_em(
198
326
  :return: 分时历史行情
199
327
  :rtype: pandas.DataFrame
200
328
  """
201
- stock_board_concept_em_map = stock_board_concept_name_em()
329
+ stock_board_concept_em_map = __stock_board_concept_name_em()
202
330
  stock_board_code = stock_board_concept_em_map[
203
331
  stock_board_concept_em_map["板块名称"] == symbol
204
332
  ]["板块代码"].values[0]
@@ -207,11 +335,9 @@ def stock_board_concept_hist_min_em(
207
335
  params = {
208
336
  "fields1": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13",
209
337
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58",
210
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
211
338
  "iscr": "0",
212
339
  "ndays": "1",
213
340
  "secid": f"90.{stock_board_code}",
214
- "_": "1687852931312",
215
341
  }
216
342
  r = requests.get(url, params=params)
217
343
  data_json = r.json()
@@ -240,14 +366,12 @@ def stock_board_concept_hist_min_em(
240
366
  url = "https://91.push2his.eastmoney.com/api/qt/stock/kline/get"
241
367
  params = {
242
368
  "secid": f"90.{stock_board_code}",
243
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
244
369
  "fields1": "f1,f2,f3,f4,f5,f6",
245
370
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61",
246
371
  "klt": period,
247
372
  "fqt": "1",
248
373
  "end": "20500101",
249
374
  "lmt": "1000000",
250
- "_": "1647760607065",
251
375
  }
252
376
  r = requests.get(url, params=params)
253
377
  data_json = r.json()
@@ -295,39 +419,37 @@ def stock_board_concept_hist_min_em(
295
419
  return temp_df
296
420
 
297
421
 
298
- def stock_board_concept_cons_em(symbol: str = "车联网") -> pd.DataFrame:
422
+ def stock_board_concept_cons_em(symbol: str = "融资融券") -> pd.DataFrame:
299
423
  """
300
424
  东方财富-沪深板块-概念板块-板块成份
301
425
  https://quote.eastmoney.com/center/boardlist.html#boards-BK06551
302
- :param symbol: 板块名称
426
+ :param symbol: 板块名称或者板块代码
303
427
  :type symbol: str
304
428
  :return: 板块成份
305
429
  :rtype: pandas.DataFrame
306
430
  """
307
- stock_board_concept_em_map = stock_board_concept_name_em()
308
- stock_board_code = stock_board_concept_em_map[
309
- stock_board_concept_em_map["板块名称"] == symbol
310
- ]["板块代码"].values[0]
431
+ if re.match(pattern=r"^BK\d+", string=symbol):
432
+ stock_board_code = symbol
433
+ else:
434
+ stock_board_concept_em_map = __stock_board_concept_name_em()
435
+ stock_board_code = stock_board_concept_em_map[
436
+ stock_board_concept_em_map["板块名称"] == symbol
437
+ ]["板块代码"].values[0]
311
438
  url = "https://29.push2.eastmoney.com/api/qt/clist/get"
312
439
  params = {
313
440
  "pn": "1",
314
- "pz": "5000",
441
+ "pz": "100",
315
442
  "po": "1",
316
443
  "np": "1",
317
444
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
318
445
  "fltt": "2",
319
446
  "invt": "2",
320
- "fid": "f3",
447
+ "fid": "f12",
321
448
  "fs": f"b:{stock_board_code} f:!50",
322
449
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,"
323
450
  "f24,f25,f22,f11,f62,f128,f136,f115,f152,f45",
324
- "_": "1626081702127",
325
451
  }
326
- r = requests.get(url, params=params)
327
- data_json = r.json()
328
- temp_df = pd.DataFrame(data_json["data"]["diff"])
329
- temp_df.reset_index(inplace=True)
330
- temp_df["index"] = range(1, len(temp_df) + 1)
452
+ temp_df = fetch_paginated_data(url, params)
331
453
  temp_df.columns = [
332
454
  "序号",
333
455
  "_",
@@ -403,11 +525,14 @@ if __name__ == "__main__":
403
525
  stock_board_concept_em_df = stock_board_concept_name_em()
404
526
  print(stock_board_concept_em_df)
405
527
 
528
+ stock_board_concept_spot_em_df = stock_board_concept_spot_em(symbol="可燃冰")
529
+ print(stock_board_concept_spot_em_df)
530
+
406
531
  stock_board_concept_hist_em_df = stock_board_concept_hist_em(
407
532
  symbol="绿色电力",
408
533
  period="daily",
409
534
  start_date="20220101",
410
- end_date="20230806",
535
+ end_date="20250227",
411
536
  adjust="",
412
537
  )
413
538
  print(stock_board_concept_hist_em_df)
@@ -417,5 +542,5 @@ if __name__ == "__main__":
417
542
  )
418
543
  print(stock_board_concept_hist_min_em_df)
419
544
 
420
- stock_board_concept_cons_em_df = stock_board_concept_cons_em(symbol="融资融券")
545
+ stock_board_concept_cons_em_df = stock_board_concept_cons_em(symbol="BK0655")
421
546
  print(stock_board_concept_cons_em_df)