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,18 +1,17 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/12/5 19:20
4
+ Date: 2025/3/20 19:00
5
5
  Desc: 新浪财经-A股-实时行情数据和历史行情数据(包含前复权和后复权因子)
6
6
  https://finance.sina.com.cn/realstock/company/sh689009/nc.shtml
7
7
  """
8
- import re
8
+
9
9
  import json
10
+ import re
10
11
 
11
- from akshare.utils import demjson
12
- from py_mini_racer import py_mini_racer
13
12
  import pandas as pd
13
+ import py_mini_racer
14
14
  import requests
15
- from tqdm import tqdm
16
15
 
17
16
  from akshare.stock.cons import (
18
17
  zh_sina_a_stock_payload,
@@ -24,6 +23,8 @@ from akshare.stock.cons import (
24
23
  zh_sina_a_stock_qfq_url,
25
24
  zh_sina_a_stock_amount_url,
26
25
  )
26
+ from akshare.utils import demjson
27
+ from akshare.utils.tqdm import get_tqdm
27
28
 
28
29
 
29
30
  def _get_zh_a_page_count() -> int:
@@ -51,17 +52,14 @@ def stock_zh_a_spot() -> pd.DataFrame:
51
52
  big_df = pd.DataFrame()
52
53
  page_count = _get_zh_a_page_count()
53
54
  zh_sina_stock_payload_copy = zh_sina_a_stock_payload.copy()
55
+ tqdm = get_tqdm()
54
56
  for page in tqdm(
55
- range(1, page_count + 1), leave=False, desc="Please wait for a moment"
57
+ range(1, page_count + 1), leave=False, desc="Please wait for a moment"
56
58
  ):
57
59
  zh_sina_stock_payload_copy.update({"page": page})
58
- r = requests.get(
59
- zh_sina_a_stock_url, params=zh_sina_stock_payload_copy
60
- )
60
+ r = requests.get(zh_sina_a_stock_url, params=zh_sina_stock_payload_copy)
61
61
  data_json = demjson.decode(r.text)
62
- big_df = pd.concat(
63
- [big_df, pd.DataFrame(data_json)], ignore_index=True
64
- )
62
+ big_df = pd.concat(objs=[big_df, pd.DataFrame(data_json)], ignore_index=True)
65
63
 
66
64
  big_df = big_df.astype(
67
65
  {
@@ -127,10 +125,10 @@ def stock_zh_a_spot() -> pd.DataFrame:
127
125
 
128
126
 
129
127
  def stock_zh_a_daily(
130
- symbol: str = "sh603843",
131
- start_date: str = "19900101",
132
- end_date: str = "21000118",
133
- adjust: str = "",
128
+ symbol: str = "sh603843",
129
+ start_date: str = "19900101",
130
+ end_date: str = "21000118",
131
+ adjust: str = "",
134
132
  ) -> pd.DataFrame:
135
133
  """
136
134
  新浪财经-A 股-个股的历史行情数据, 大量抓取容易封 IP
@@ -141,7 +139,7 @@ def stock_zh_a_daily(
141
139
  :type start_date: str
142
140
  :param end_date: 20201103; 结束日期
143
141
  :type end_date: str
144
- :param adjust: 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; hfq-factor: 返回后复权因子; hfq-factor: 返回前复权因子
142
+ :param adjust: 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; hfq-factor: 返回后复权因子; qfq-factor: 返回前复权因子
145
143
  :type adjust: str
146
144
  :return: 行情数据
147
145
  :rtype: pandas.DataFrame
@@ -187,20 +185,18 @@ def stock_zh_a_daily(
187
185
  del data_df["date"]
188
186
  try:
189
187
  del data_df["prevclose"]
190
- except:
188
+ except: # noqa: E722
191
189
  pass
192
190
  try:
193
191
  del data_df["postVol"]
194
192
  del data_df["postAmt"]
195
- except:
193
+ except: # noqa: E722
196
194
  pass
197
195
  data_df = data_df.astype("float")
198
196
  r = requests.get(zh_sina_a_stock_amount_url.format(symbol, symbol))
199
- amount_data_json = demjson.decode(
200
- r.text[r.text.find("["): r.text.rfind("]") + 1]
201
- )
197
+ amount_data_json = demjson.decode(r.text[r.text.find("[") : r.text.rfind("]") + 1])
202
198
  amount_data_df = pd.DataFrame(amount_data_json)
203
- amount_data_df.columns = ['date', 'outstanding_share']
199
+ amount_data_df.columns = ["date", "outstanding_share"]
204
200
  amount_data_df.index = pd.to_datetime(amount_data_df.date)
205
201
  del amount_data_df["date"]
206
202
  temp_df = pd.merge(
@@ -209,7 +205,7 @@ def stock_zh_a_daily(
209
205
  try:
210
206
  # try for pandas >= 2.1.0
211
207
  temp_df.ffill(inplace=True)
212
- except Exception as e:
208
+ except Exception:
213
209
  try:
214
210
  temp_df.fillna(method="ffill", inplace=True)
215
211
  except Exception as e:
@@ -240,7 +236,7 @@ def stock_zh_a_daily(
240
236
  temp_df.dropna(inplace=True)
241
237
  temp_df.drop_duplicates(inplace=True)
242
238
  temp_df.reset_index(inplace=True)
243
- temp_df['date'] = pd.to_datetime(temp_df['date'], errors="coerce").dt.date
239
+ temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
244
240
  return temp_df
245
241
  if adjust == "hfq":
246
242
  res = requests.get(zh_sina_a_stock_hfq_url.format(symbol))
@@ -260,7 +256,7 @@ def stock_zh_a_daily(
260
256
  try:
261
257
  # try for pandas >= 2.1.0
262
258
  temp_df.ffill(inplace=True)
263
- except Exception as e:
259
+ except Exception:
264
260
  try:
265
261
  # try for pandas < 2.1.0
266
262
  temp_df.fillna(method="ffill", inplace=True)
@@ -283,7 +279,7 @@ def stock_zh_a_daily(
283
279
  temp_df["close"] = round(temp_df["close"], 2)
284
280
  temp_df.dropna(inplace=True)
285
281
  temp_df.reset_index(inplace=True)
286
- temp_df['date'] = pd.to_datetime(temp_df['date'], errors="coerce").dt.date
282
+ temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
287
283
  return temp_df
288
284
 
289
285
  if adjust == "qfq":
@@ -304,7 +300,7 @@ def stock_zh_a_daily(
304
300
  try:
305
301
  # try for pandas >= 2.1.0
306
302
  temp_df.ffill(inplace=True)
307
- except Exception as e:
303
+ except Exception:
308
304
  try:
309
305
  # try for pandas < 2.1.0
310
306
  temp_df.fillna(method="ffill", inplace=True)
@@ -327,14 +323,14 @@ def stock_zh_a_daily(
327
323
  temp_df["close"] = round(temp_df["close"], 2)
328
324
  temp_df.dropna(inplace=True)
329
325
  temp_df.reset_index(inplace=True)
330
- temp_df['date'] = pd.to_datetime(temp_df['date'], errors="coerce").dt.date
326
+ temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
331
327
  return temp_df
332
328
 
333
329
 
334
330
  def stock_zh_a_cdr_daily(
335
- symbol: str = "sh689009",
336
- start_date: str = "19900101",
337
- end_date: str = "22201116",
331
+ symbol: str = "sh689009",
332
+ start_date: str = "19900101",
333
+ end_date: str = "22201116",
338
334
  ) -> pd.DataFrame:
339
335
  """
340
336
  新浪财经-A股-CDR个股的历史行情数据, 大量抓取容易封 IP
@@ -369,7 +365,7 @@ def stock_zh_a_cdr_daily(
369
365
 
370
366
 
371
367
  def stock_zh_a_minute(
372
- symbol: str = "sh600519", period: str = "1", adjust: str = ""
368
+ symbol: str = "sh600519", period: str = "1", adjust: str = ""
373
369
  ) -> pd.DataFrame:
374
370
  """
375
371
  股票及股票指数历史行情数据-分钟数据
@@ -383,7 +379,9 @@ def stock_zh_a_minute(
383
379
  :return: specific data
384
380
  :rtype: pandas.DataFrame
385
381
  """
386
- url = "https://quotes.sina.cn/cn/api/jsonp_v2.php/=/CN_MarketDataService.getKLineData"
382
+ url = (
383
+ "https://quotes.sina.cn/cn/api/jsonp_v2.php/=/CN_MarketDataService.getKLineData"
384
+ )
387
385
  params = {
388
386
  "symbol": symbol,
389
387
  "scale": period,
@@ -395,7 +393,7 @@ def stock_zh_a_minute(
395
393
  try:
396
394
  data_json = json.loads(data_text.split("=(")[1].split(");")[0])
397
395
  temp_df = pd.DataFrame(data_json).iloc[:, :6]
398
- except:
396
+ except: # noqa: E722
399
397
  url = f"https://quotes.sina.cn/cn/api/jsonp_v2.php/var%20_{symbol}_{period}_1658852984203=/CN_MarketDataService.getKLineData"
400
398
  params = {
401
399
  "symbol": symbol,
@@ -412,7 +410,7 @@ def stock_zh_a_minute(
412
410
  return pd.DataFrame()
413
411
  try:
414
412
  stock_zh_a_daily(symbol=symbol, adjust="qfq")
415
- except:
413
+ except: # noqa: E722
416
414
  return temp_df
417
415
 
418
416
  if adjust == "":
@@ -430,28 +428,16 @@ def stock_zh_a_minute(
430
428
  need_df.drop_duplicates(subset=["date"], keep="last", inplace=True)
431
429
  need_df.index = pd.to_datetime(need_df["date"])
432
430
  stock_zh_a_daily_qfq_df = stock_zh_a_daily(symbol=symbol, adjust="qfq")
433
- stock_zh_a_daily_qfq_df.index = pd.to_datetime(
434
- stock_zh_a_daily_qfq_df["date"]
435
- )
436
- result_df = stock_zh_a_daily_qfq_df.iloc[-len(need_df):, :][
437
- "close"
438
- ].astype(float) / need_df["close"].astype(float)
431
+ stock_zh_a_daily_qfq_df.index = pd.to_datetime(stock_zh_a_daily_qfq_df["date"])
432
+ result_df = stock_zh_a_daily_qfq_df.iloc[-len(need_df) :, :]["close"].astype(
433
+ float
434
+ ) / need_df["close"].astype(float)
439
435
  temp_df.index = pd.to_datetime(temp_df["date"])
440
- merged_df = pd.merge(
441
- temp_df, result_df, left_index=True, right_index=True
442
- )
443
- merged_df["open"] = (
444
- merged_df["open"].astype(float) * merged_df["close_y"]
445
- )
446
- merged_df["high"] = (
447
- merged_df["high"].astype(float) * merged_df["close_y"]
448
- )
449
- merged_df["low"] = (
450
- merged_df["low"].astype(float) * merged_df["close_y"]
451
- )
452
- merged_df["close"] = (
453
- merged_df["close_x"].astype(float) * merged_df["close_y"]
454
- )
436
+ merged_df = pd.merge(temp_df, result_df, left_index=True, right_index=True)
437
+ merged_df["open"] = merged_df["open"].astype(float) * merged_df["close_y"]
438
+ merged_df["high"] = merged_df["high"].astype(float) * merged_df["close_y"]
439
+ merged_df["low"] = merged_df["low"].astype(float) * merged_df["close_y"]
440
+ merged_df["close"] = merged_df["close_x"].astype(float) * merged_df["close_y"]
455
441
  temp_df = merged_df[["day", "open", "high", "low", "close", "volume"]]
456
442
  temp_df.reset_index(drop=True, inplace=True)
457
443
  return temp_df
@@ -467,31 +453,21 @@ def stock_zh_a_minute(
467
453
  need_df.drop_duplicates(subset=["date"], keep="last", inplace=True)
468
454
  need_df.index = pd.to_datetime(need_df["date"])
469
455
  stock_zh_a_daily_hfq_df = stock_zh_a_daily(symbol=symbol, adjust="hfq")
470
- stock_zh_a_daily_hfq_df.index = pd.to_datetime(
471
- stock_zh_a_daily_hfq_df["date"]
472
- )
473
- result_df = stock_zh_a_daily_hfq_df.iloc[-len(need_df):, :][
474
- "close"
475
- ].astype(float) / need_df["close"].astype(float)
456
+ stock_zh_a_daily_hfq_df.index = pd.to_datetime(stock_zh_a_daily_hfq_df["date"])
457
+ result_df = stock_zh_a_daily_hfq_df.iloc[-len(need_df) :, :]["close"].astype(
458
+ float
459
+ ) / need_df["close"].astype(float)
476
460
  temp_df.index = pd.to_datetime(temp_df["date"])
477
- merged_df = pd.merge(
478
- temp_df, result_df, left_index=True, right_index=True
479
- )
480
- merged_df["open"] = (
481
- merged_df["open"].astype(float) * merged_df["close_y"]
482
- )
483
- merged_df["high"] = (
484
- merged_df["high"].astype(float) * merged_df["close_y"]
485
- )
486
- merged_df["low"] = (
487
- merged_df["low"].astype(float) * merged_df["close_y"]
488
- )
489
- merged_df["close"] = (
490
- merged_df["close_x"].astype(float) * merged_df["close_y"]
491
- )
461
+ merged_df = pd.merge(temp_df, result_df, left_index=True, right_index=True)
462
+ merged_df["open"] = merged_df["open"].astype(float) * merged_df["close_y"]
463
+ merged_df["high"] = merged_df["high"].astype(float) * merged_df["close_y"]
464
+ merged_df["low"] = merged_df["low"].astype(float) * merged_df["close_y"]
465
+ merged_df["close"] = merged_df["close_x"].astype(float) * merged_df["close_y"]
492
466
  temp_df = merged_df[["day", "open", "high", "low", "close", "volume"]]
493
467
  temp_df.reset_index(drop=True, inplace=True)
494
468
  return temp_df
469
+ else:
470
+ return pd.DataFrame()
495
471
 
496
472
 
497
473
  if __name__ == "__main__":
@@ -527,7 +503,9 @@ if __name__ == "__main__":
527
503
  )
528
504
  print(stock_zh_a_daily_hfq_factor_df)
529
505
 
530
- stock_zh_a_daily_df = stock_zh_a_daily(symbol="sz300798", start_date="20200601", end_date="20231101", adjust="hfq")
506
+ stock_zh_a_daily_df = stock_zh_a_daily(
507
+ symbol="sz300798", start_date="20200601", end_date="20231101", adjust="hfq"
508
+ )
531
509
  print(stock_zh_a_daily_df)
532
510
 
533
511
  stock_zh_a_cdr_daily_df = stock_zh_a_cdr_daily(
@@ -539,7 +517,7 @@ if __name__ == "__main__":
539
517
  print(stock_zh_a_spot_df)
540
518
 
541
519
  stock_zh_a_minute_df = stock_zh_a_minute(
542
- symbol="sh600519", period="1", adjust=""
520
+ symbol="sz000876", period="1", adjust="qfq"
543
521
  )
544
522
  print(stock_zh_a_minute_df)
545
523