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,17 +1,18 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/1/4 23:00
4
+ Date: 2025/3/10 18:30
5
5
  Desc: 股票指数数据-新浪-东财-腾讯
6
6
  所有指数-实时行情数据和历史行情数据
7
7
  https://finance.sina.com.cn/realstock/company/sz399552/nc.shtml
8
8
  """
9
+
9
10
  import datetime
10
11
  import re
11
12
 
12
13
  import pandas as pd
14
+ import py_mini_racer
13
15
  import requests
14
- from py_mini_racer import py_mini_racer
15
16
 
16
17
  from akshare.index.cons import (
17
18
  zh_sina_index_stock_payload,
@@ -21,6 +22,7 @@ from akshare.index.cons import (
21
22
  )
22
23
  from akshare.stock.cons import hk_js_decode
23
24
  from akshare.utils import demjson
25
+ from akshare.utils.func import fetch_paginated_data
24
26
  from akshare.utils.tqdm import get_tqdm
25
27
 
26
28
 
@@ -69,7 +71,7 @@ def stock_zh_index_spot_sina() -> pd.DataFrame:
69
71
  zh_sina_stock_payload_copy.update({"page": page})
70
72
  res = requests.get(zh_sina_index_stock_url, params=zh_sina_stock_payload_copy)
71
73
  data_json = demjson.decode(res.text)
72
- big_df = pd.concat([big_df, pd.DataFrame(data_json)], ignore_index=True)
74
+ big_df = pd.concat(objs=[big_df, pd.DataFrame(data_json)], ignore_index=True)
73
75
  big_df = big_df.map(_replace_comma)
74
76
  big_df["trade"] = pd.to_numeric(big_df["trade"], errors="coerce")
75
77
  big_df["pricechange"] = pd.to_numeric(big_df["pricechange"], errors="coerce")
@@ -112,96 +114,179 @@ def stock_zh_index_spot_sina() -> pd.DataFrame:
112
114
  "成交额",
113
115
  ]
114
116
  ]
115
- big_df['最新价'] = pd.to_numeric(big_df['最新价'], errors="coerce")
116
- big_df['涨跌额'] = pd.to_numeric(big_df['涨跌额'], errors="coerce")
117
- big_df['涨跌幅'] = pd.to_numeric(big_df['涨跌幅'], errors="coerce")
118
- big_df['昨收'] = pd.to_numeric(big_df['昨收'], errors="coerce")
119
- big_df['今开'] = pd.to_numeric(big_df['今开'], errors="coerce")
120
- big_df['最高'] = pd.to_numeric(big_df['最高'], errors="coerce")
121
- big_df['最低'] = pd.to_numeric(big_df['最低'], errors="coerce")
122
- big_df['成交量'] = pd.to_numeric(big_df['成交量'], errors="coerce")
123
- big_df['成交额'] = pd.to_numeric(big_df['成交额'], errors="coerce")
117
+ big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
118
+ big_df["涨跌额"] = pd.to_numeric(big_df["涨跌额"], errors="coerce")
119
+ big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
120
+ big_df["昨收"] = pd.to_numeric(big_df["昨收"], errors="coerce")
121
+ big_df["今开"] = pd.to_numeric(big_df["今开"], errors="coerce")
122
+ big_df["最高"] = pd.to_numeric(big_df["最高"], errors="coerce")
123
+ big_df["最低"] = pd.to_numeric(big_df["最低"], errors="coerce")
124
+ big_df["成交量"] = pd.to_numeric(big_df["成交量"], errors="coerce")
125
+ big_df["成交额"] = pd.to_numeric(big_df["成交额"], errors="coerce")
124
126
  return big_df
125
127
 
126
128
 
129
+ def __stock_zh_main_spot_em() -> pd.DataFrame:
130
+ """
131
+ 东方财富网-行情中心-沪深重要指数
132
+ https://quote.eastmoney.com/center/hszs.html
133
+ :return: 指数的实时行情数据
134
+ :rtype: pandas.DataFrame
135
+ """
136
+ url = "https://33.push2.eastmoney.com/api/qt/clist/get"
137
+ params = {
138
+ "pn": "1",
139
+ "pz": "100",
140
+ "po": "1",
141
+ "np": "1",
142
+ "ut": "bd1d9ddb04089700cf9c27f6f7426281",
143
+ "fltt": "2",
144
+ "invt": "2",
145
+ "dect": "1",
146
+ "wbp2u": "|0|0|0|web",
147
+ "fid": "",
148
+ "fs": "b:MK0010",
149
+ "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,"
150
+ "f23,f24,f25,f26,f22,f11,f62,f128,f136,f115,f152",
151
+ }
152
+ r = requests.get(url, params=params)
153
+ data_json = r.json()
154
+ temp_df = pd.DataFrame(data_json["data"]["diff"])
155
+ temp_df.reset_index(inplace=True)
156
+ temp_df["index"] = temp_df["index"].astype(int) + 1
157
+ temp_df.rename(
158
+ columns={
159
+ "index": "序号",
160
+ "f2": "最新价",
161
+ "f3": "涨跌幅",
162
+ "f4": "涨跌额",
163
+ "f5": "成交量",
164
+ "f6": "成交额",
165
+ "f7": "振幅",
166
+ "f10": "量比",
167
+ "f12": "代码",
168
+ "f14": "名称",
169
+ "f15": "最高",
170
+ "f16": "最低",
171
+ "f17": "今开",
172
+ "f18": "昨收",
173
+ },
174
+ inplace=True,
175
+ )
176
+ temp_df = temp_df[
177
+ [
178
+ "序号",
179
+ "代码",
180
+ "名称",
181
+ "最新价",
182
+ "涨跌幅",
183
+ "涨跌额",
184
+ "成交量",
185
+ "成交额",
186
+ "振幅",
187
+ "最高",
188
+ "最低",
189
+ "今开",
190
+ "昨收",
191
+ "量比",
192
+ ]
193
+ ]
194
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
195
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
196
+ temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
197
+ temp_df["成交量"] = pd.to_numeric(temp_df["成交量"], errors="coerce")
198
+ temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
199
+ temp_df["振幅"] = pd.to_numeric(temp_df["振幅"], errors="coerce")
200
+ temp_df["最高"] = pd.to_numeric(temp_df["最高"], errors="coerce")
201
+ temp_df["最低"] = pd.to_numeric(temp_df["最低"], errors="coerce")
202
+ temp_df["今开"] = pd.to_numeric(temp_df["今开"], errors="coerce")
203
+ temp_df["昨收"] = pd.to_numeric(temp_df["昨收"], errors="coerce")
204
+ temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
205
+ return temp_df
206
+
207
+
127
208
  def stock_zh_index_spot_em(symbol: str = "上证系列指数") -> pd.DataFrame:
128
209
  """
129
210
  东方财富网-行情中心-沪深京指数
130
211
  https://quote.eastmoney.com/center/gridlist.html#index_sz
131
- :param symbol: "上证系列指数"; choice of {"上证系列指数", "深证系列指数", "指数成份", "中证系列指数"}
212
+ :param symbol: "上证系列指数"; choice of {"沪深重要指数", "上证系列指数", "深证系列指数", "指数成份", "中证系列指数"}
132
213
  :type symbol: str
133
214
  :return: 指数的实时行情数据
134
215
  :rtype: pandas.DataFrame
135
216
  """
217
+ if symbol == "沪深重要指数":
218
+ return __stock_zh_main_spot_em()
219
+
136
220
  url = "https://48.push2.eastmoney.com/api/qt/clist/get"
137
221
  symbol_map = {
138
- "上证系列指数": "m:1 s:2",
222
+ "上证系列指数": "m:1+t:1",
139
223
  "深证系列指数": "m:0 t:5",
140
- "指数成份": "m:1 s:3,m:0 t:5",
224
+ "指数成份": "m:1+s:3,m:0+t:5",
141
225
  "中证系列指数": "m:2",
142
226
  }
143
227
  params = {
144
- 'pn': '1',
145
- 'pz': '5000',
146
- 'po': '1',
147
- 'np': '1',
148
- 'ut': 'bd1d9ddb04089700cf9c27f6f7426281',
149
- 'fltt': '2',
150
- 'invt': '2',
151
- 'wbp2u': '|0|0|0|web',
152
- 'fid': 'f3',
153
- 'fs': symbol_map[symbol],
154
- 'fields': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152',
155
- '_': '1704327268532',
228
+ "pn": "1",
229
+ "pz": "100",
230
+ "po": "1",
231
+ "np": "1",
232
+ "ut": "bd1d9ddb04089700cf9c27f6f7426281",
233
+ "fltt": "2",
234
+ "invt": "2",
235
+ "wbp2u": "|0|0|0|web",
236
+ "fid": "f12",
237
+ "fs": symbol_map[symbol],
238
+ "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,"
239
+ "f26,f22,f33,f11,f62,f128,f136,f115,f152",
156
240
  }
157
- r = requests.get(url, params=params)
158
- data_json = r.json()
159
- temp_df = pd.DataFrame(data_json['data']['diff'])
160
- temp_df.reset_index(inplace=True)
161
- temp_df['index'] = temp_df['index'] + 1
162
- temp_df.rename(columns={
163
- 'index': '序号',
164
- 'f2': '最新价',
165
- 'f3': '涨跌幅',
166
- 'f4': '涨跌额',
167
- 'f5': '成交量',
168
- 'f6': '成交额',
169
- 'f7': '振幅',
170
- 'f10': '量比',
171
- 'f12': '代码',
172
- 'f14': '名称',
173
- 'f15': '最高',
174
- 'f16': '最低',
175
- 'f17': '今开',
176
- 'f18': '昨收',
177
- }, inplace=True)
178
- temp_df = temp_df[[
179
- '序号',
180
- '代码',
181
- '名称',
182
- '最新价',
183
- '涨跌幅',
184
- '涨跌额',
185
- '成交量',
186
- '成交额',
187
- '振幅',
188
- '最高',
189
- '最低',
190
- '今开',
191
- '昨收',
192
- '量比',
193
- ]]
194
- temp_df['最新价'] = pd.to_numeric(temp_df['最新价'], errors="coerce")
195
- temp_df['涨跌幅'] = pd.to_numeric(temp_df['涨跌幅'], errors="coerce")
196
- temp_df['涨跌额'] = pd.to_numeric(temp_df['涨跌额'], errors="coerce")
197
- temp_df['成交量'] = pd.to_numeric(temp_df['成交量'], errors="coerce")
198
- temp_df['成交额'] = pd.to_numeric(temp_df['成交额'], errors="coerce")
199
- temp_df['振幅'] = pd.to_numeric(temp_df['振幅'], errors="coerce")
200
- temp_df['最高'] = pd.to_numeric(temp_df['最高'], errors="coerce")
201
- temp_df['最低'] = pd.to_numeric(temp_df['最低'], errors="coerce")
202
- temp_df['今开'] = pd.to_numeric(temp_df['今开'], errors="coerce")
203
- temp_df['昨收'] = pd.to_numeric(temp_df['昨收'], errors="coerce")
204
- temp_df['量比'] = pd.to_numeric(temp_df['量比'], errors="coerce")
241
+ temp_df = fetch_paginated_data(url, params)
242
+ temp_df.rename(
243
+ columns={
244
+ "index": "序号",
245
+ "f2": "最新价",
246
+ "f3": "涨跌幅",
247
+ "f4": "涨跌额",
248
+ "f5": "成交量",
249
+ "f6": "成交额",
250
+ "f7": "振幅",
251
+ "f10": "量比",
252
+ "f12": "代码",
253
+ "f14": "名称",
254
+ "f15": "最高",
255
+ "f16": "最低",
256
+ "f17": "今开",
257
+ "f18": "昨收",
258
+ },
259
+ inplace=True,
260
+ )
261
+ temp_df = temp_df[
262
+ [
263
+ "序号",
264
+ "代码",
265
+ "名称",
266
+ "最新价",
267
+ "涨跌幅",
268
+ "涨跌额",
269
+ "成交量",
270
+ "成交额",
271
+ "振幅",
272
+ "最高",
273
+ "最低",
274
+ "今开",
275
+ "昨收",
276
+ "量比",
277
+ ]
278
+ ]
279
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
280
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
281
+ temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
282
+ temp_df["成交量"] = pd.to_numeric(temp_df["成交量"], errors="coerce")
283
+ temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
284
+ temp_df["振幅"] = pd.to_numeric(temp_df["振幅"], errors="coerce")
285
+ temp_df["最高"] = pd.to_numeric(temp_df["最高"], errors="coerce")
286
+ temp_df["最低"] = pd.to_numeric(temp_df["最低"], errors="coerce")
287
+ temp_df["今开"] = pd.to_numeric(temp_df["今开"], errors="coerce")
288
+ temp_df["昨收"] = pd.to_numeric(temp_df["昨收"], errors="coerce")
289
+ temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
205
290
  return temp_df
206
291
 
207
292
 
@@ -231,16 +316,16 @@ def stock_zh_index_daily(symbol: str = "sh000922") -> pd.DataFrame:
231
316
  return temp_df
232
317
 
233
318
 
234
- def get_tx_start_year(symbol: str = "sh000919") -> pd.DataFrame:
319
+ def get_tx_start_year(symbol: str = "sh000919") -> str:
235
320
  """
236
321
  腾讯证券-获取所有股票数据的第一天, 注意这个数据是腾讯证券的历史数据第一天
237
322
  https://gu.qq.com/sh000919/zs
238
323
  :param symbol: 带市场标识的股票代码
239
324
  :type symbol: str
240
325
  :return: 开始日期
241
- :rtype: pandas.DataFrame
326
+ :rtype: str
242
327
  """
243
- url = "http://web.ifzq.gtimg.cn/other/klineweb/klineWeb/weekTrends"
328
+ url = "https://web.ifzq.gtimg.cn/other/klineweb/klineWeb/weekTrends"
244
329
  params = {
245
330
  "code": symbol,
246
331
  "type": "qfq",
@@ -249,7 +334,7 @@ def get_tx_start_year(symbol: str = "sh000919") -> pd.DataFrame:
249
334
  }
250
335
  r = requests.get(url, params=params)
251
336
  data_text = r.text
252
- if not demjson.decode(data_text[data_text.find("={") + 1:])["data"]:
337
+ if not demjson.decode(data_text[data_text.find("={") + 1 :])["data"]:
253
338
  url = "https://proxy.finance.qq.com/ifzqgtimg/appstock/app/newfqkline/get"
254
339
  params = {
255
340
  "_var": "kline_dayqfq",
@@ -258,18 +343,18 @@ def get_tx_start_year(symbol: str = "sh000919") -> pd.DataFrame:
258
343
  }
259
344
  r = requests.get(url, params=params)
260
345
  data_text = r.text
261
- start_date = demjson.decode(data_text[data_text.find("={") + 1:])["data"][
346
+ start_date = demjson.decode(data_text[data_text.find("={") + 1 :])["data"][
262
347
  symbol
263
348
  ]["day"][0][0]
264
349
  return start_date
265
- start_date = demjson.decode(data_text[data_text.find("={") + 1:])["data"][0][0]
350
+ start_date = demjson.decode(data_text[data_text.find("={") + 1 :])["data"][0][0]
266
351
  return start_date
267
352
 
268
353
 
269
354
  def stock_zh_index_daily_tx(symbol: str = "sz980017") -> pd.DataFrame:
270
355
  """
271
356
  腾讯证券-日频-股票或者指数历史数据
272
- 作为 stock_zh_index_daily 的补充, 因为在新浪中有部分指数数据缺失
357
+ 作为 ak.stock_zh_index_daily() 的补充, 因为在新浪中有部分指数数据缺失
273
358
  注意都是: 前复权, 不同网站复权方式不同, 不可混用数据
274
359
  https://gu.qq.com/sh000919/zs
275
360
  :param symbol: 带市场标识的股票或者指数代码
@@ -293,13 +378,13 @@ def stock_zh_index_daily_tx(symbol: str = "sz980017") -> pd.DataFrame:
293
378
  text = res.text
294
379
  try:
295
380
  inner_temp_df = pd.DataFrame(
296
- demjson.decode(text[text.find("={") + 1:])["data"][symbol]["day"]
381
+ demjson.decode(text[text.find("={") + 1 :])["data"][symbol]["day"]
297
382
  )
298
- except:
383
+ except: # noqa: E722
299
384
  inner_temp_df = pd.DataFrame(
300
- demjson.decode(text[text.find("={") + 1:])["data"][symbol]["qfqday"]
385
+ demjson.decode(text[text.find("={") + 1 :])["data"][symbol]["qfqday"]
301
386
  )
302
- temp_df = pd.concat([temp_df, inner_temp_df], ignore_index=True)
387
+ temp_df = pd.concat(objs=[temp_df, inner_temp_df], ignore_index=True)
303
388
  if temp_df.shape[1] == 6:
304
389
  temp_df.columns = ["date", "open", "close", "high", "low", "amount"]
305
390
  else:
@@ -316,9 +401,9 @@ def stock_zh_index_daily_tx(symbol: str = "sz980017") -> pd.DataFrame:
316
401
 
317
402
 
318
403
  def stock_zh_index_daily_em(
319
- symbol: str = "csi931151",
320
- start_date: str = "19900101",
321
- end_date: str = "20500101",
404
+ symbol: str = "csi931151",
405
+ start_date: str = "19900101",
406
+ end_date: str = "20500101",
322
407
  ) -> pd.DataFrame:
323
408
  """
324
409
  东方财富网-股票指数数据
@@ -332,10 +417,12 @@ def stock_zh_index_daily_em(
332
417
  :return: 指数数据
333
418
  :rtype: pandas.DataFrame
334
419
  """
335
- market_map = {"sz": "0", "sh": "1", "csi": "2"}
336
- url = "http://push2his.eastmoney.com/api/qt/stock/kline/get"
420
+ market_map = {"sz": "0", "sh": "1", "csi": "2", "bj": "0"}
421
+ url = "https://push2his.eastmoney.com/api/qt/stock/kline/get"
337
422
  if symbol.find("sz") != -1:
338
423
  secid = "{}.{}".format(market_map["sz"], symbol.replace("sz", ""))
424
+ elif symbol.find("bj") != -1:
425
+ secid = "{}.{}".format(market_map["bj"], symbol.replace("bj", ""))
339
426
  elif symbol.find("sh") != -1:
340
427
  secid = "{}.{}".format(market_map["sh"], symbol.replace("sh", ""))
341
428
  elif symbol.find("csi") != -1:
@@ -343,22 +430,17 @@ def stock_zh_index_daily_em(
343
430
  else:
344
431
  return pd.DataFrame()
345
432
  params = {
346
- "cb": "jQuery1124033485574041163946_1596700547000",
347
433
  "secid": secid,
348
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
349
434
  "fields1": "f1,f2,f3,f4,f5",
350
435
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58",
351
436
  "klt": "101", # 日频率
352
437
  "fqt": "0",
353
438
  "beg": start_date,
354
439
  "end": end_date,
355
- "_": "1596700547039",
356
440
  }
357
441
  r = requests.get(url, params=params)
358
- data_text = r.text
359
- data_json = demjson.decode(data_text[data_text.find("{"): -2])
442
+ data_json = r.json()
360
443
  temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]["klines"]])
361
- # check temp_df data availability before further transformations which may raise errors
362
444
  if temp_df.empty:
363
445
  return pd.DataFrame()
364
446
  temp_df.columns = ["date", "open", "close", "high", "low", "volume", "amount", "_"]
@@ -373,19 +455,29 @@ def stock_zh_index_daily_em(
373
455
 
374
456
 
375
457
  if __name__ == "__main__":
376
- stock_zh_index_daily_df = stock_zh_index_daily(symbol="sz399905")
458
+ stock_zh_index_daily_df = stock_zh_index_daily(symbol="sh000510")
377
459
  print(stock_zh_index_daily_df)
378
460
 
379
461
  stock_zh_index_spot_sina_df = stock_zh_index_spot_sina()
380
462
  print(stock_zh_index_spot_sina_df)
381
463
 
464
+ stock_zh_index_spot_em_df = stock_zh_index_spot_em(symbol="沪深重要指数")
465
+ print(stock_zh_index_spot_em_df)
466
+
382
467
  stock_zh_index_spot_em_df = stock_zh_index_spot_em(symbol="上证系列指数")
383
468
  print(stock_zh_index_spot_em_df)
384
469
 
470
+ stock_zh_index_spot_em_df = stock_zh_index_spot_em(symbol="深证系列指数")
471
+ print(stock_zh_index_spot_em_df)
472
+
473
+ stock_zh_index_spot_em_df = stock_zh_index_spot_em(symbol="指数成份")
474
+ print(stock_zh_index_spot_em_df)
475
+
476
+ stock_zh_index_spot_em_df = stock_zh_index_spot_em(symbol="中证系列指数")
477
+ print(stock_zh_index_spot_em_df)
478
+
385
479
  stock_zh_index_daily_tx_df = stock_zh_index_daily_tx(symbol="sh000919")
386
480
  print(stock_zh_index_daily_tx_df)
387
481
 
388
- stock_zh_index_daily_em_df = stock_zh_index_daily_em(
389
- symbol="sz399812"
390
- )
482
+ stock_zh_index_daily_em_df = stock_zh_index_daily_em(symbol="bj899050")
391
483
  print(stock_zh_index_daily_em_df)