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,9 +1,9 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/4/3 16:40
4
+ Date: 2024/10/23 13:00
5
5
  Desc: 申万宏源研究-指数系列
6
- https://www.swhyresearch.com/institute_sw/allIndex/releasedIndex
6
+ https://www.swsresearch.com/institute_sw/allIndex/releasedIndex
7
7
  """
8
8
 
9
9
  import math
@@ -17,7 +17,7 @@ from akshare.utils.tqdm import get_tqdm
17
17
  def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
18
18
  """
19
19
  申万宏源研究-指数发布-指数详情-指数历史数据
20
- https://www.swhyresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
20
+ https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
21
21
  :param symbol: 指数代码
22
22
  :type symbol: str
23
23
  :param period: choice of {"day", "week", "month"}
@@ -30,16 +30,16 @@ def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
30
30
  "week": "WEEK",
31
31
  "month": "MONTH",
32
32
  }
33
- url = "https://www.swhyresearch.com/institute-sw/api/index_publish/trend/"
33
+ url = "https://www.swsresearch.com/institute-sw/api/index_publish/trend/"
34
34
  params = {
35
35
  "swindexcode": symbol,
36
36
  "period": period_map[period],
37
37
  }
38
38
  headers = {
39
39
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
40
- "Chrome/114.0.0.0 Safari/537.36"
40
+ "Chrome/114.0.0.0 Safari/537.36",
41
41
  }
42
- r = requests.get(url, params=params, headers=headers)
42
+ r = requests.get(url, params=params, headers=headers, verify=False)
43
43
  data_json = r.json()
44
44
  temp_df = pd.DataFrame(data_json["data"])
45
45
  temp_df.rename(
@@ -81,14 +81,14 @@ def index_hist_sw(symbol: str = "801030", period: str = "day") -> pd.DataFrame:
81
81
  def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
82
82
  """
83
83
  申万宏源研究-指数发布-指数详情-指数分时数据
84
- https://www.swhyresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
84
+ https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
85
85
  :param symbol: 指数代码
86
86
  :type symbol: str
87
87
  :return: 指数分时数据
88
88
  :rtype: pandas.DataFrame
89
89
  """
90
90
  url = (
91
- "https://www.swhyresearch.com/institute-sw/api/index_publish/details/timelines/"
91
+ "https://www.swsresearch.com/institute-sw/api/index_publish/details/timelines/"
92
92
  )
93
93
  params = {
94
94
  "swindexcode": symbol,
@@ -97,7 +97,7 @@ def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
97
97
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
98
98
  "Chrome/114.0.0.0 Safari/537.36"
99
99
  }
100
- r = requests.get(url, params=params, headers=headers)
100
+ r = requests.get(url, params=params, headers=headers, verify=False)
101
101
  data_json = r.json()
102
102
  temp_df = pd.DataFrame(data_json["data"])
103
103
  temp_df.rename(
@@ -127,19 +127,19 @@ def index_min_sw(symbol: str = "801001") -> pd.DataFrame:
127
127
  def index_component_sw(symbol: str = "801001") -> pd.DataFrame:
128
128
  """
129
129
  申万宏源研究-指数发布-指数详情-成分股
130
- https://www.swhyresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
130
+ https://www.swsresearch.com/institute_sw/allIndex/releasedIndex/releasedetail?code=801001&name=%E7%94%B3%E4%B8%8750
131
131
  :param symbol: 指数代码
132
132
  :type symbol: str
133
133
  :return: 成分股
134
134
  :rtype: pandas.DataFrame
135
135
  """
136
- url = "https://www.swhyresearch.com/institute-sw/api/index_publish/details/component_stocks/"
136
+ url = "https://www.swsresearch.com/institute-sw/api/index_publish/details/component_stocks/"
137
137
  params = {"swindexcode": symbol, "page": "1", "page_size": "10000"}
138
138
  headers = {
139
139
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
140
140
  "Chrome/114.0.0.0 Safari/537.36"
141
141
  }
142
- r = requests.get(url, params=params, headers=headers)
142
+ r = requests.get(url, params=params, headers=headers, verify=False)
143
143
  data_json = r.json()
144
144
  temp_df = pd.DataFrame(data_json["data"]["results"])
145
145
  temp_df.reset_index(inplace=True)
@@ -190,7 +190,7 @@ def __index_realtime_sw(symbol: str = "大类风格指数") -> pd.DataFrame:
190
190
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
191
191
  "Chrome/114.0.0.0 Safari/537.36"
192
192
  }
193
- r = requests.post(url, json=payload, headers=headers)
193
+ r = requests.post(url, json=payload, headers=headers, verify=False)
194
194
  data_json = r.json()
195
195
  temp_df = pd.DataFrame(data_json["data"]["list"])
196
196
  temp_df.rename(
@@ -221,7 +221,7 @@ def __index_realtime_sw(symbol: str = "大类风格指数") -> pd.DataFrame:
221
221
  def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
222
222
  """
223
223
  申万宏源研究-指数系列
224
- https://www.swhyresearch.com/institute_sw/allIndex/releasedIndex
224
+ https://www.swsresearch.com/institute_sw/allIndex/releasedIndex
225
225
  :param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数", "大类风格指数", "金创指数"}
226
226
  :type symbol: str
227
227
  :return: 指数系列实时行情数据
@@ -230,13 +230,13 @@ def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
230
230
  if symbol in {"大类风格指数", "金创指数"}:
231
231
  temp_df = __index_realtime_sw(symbol)
232
232
  return temp_df
233
- url = "https://www.swhyresearch.com/institute-sw/api/index_publish/current/"
233
+ url = "https://www.swsresearch.com/institute-sw/api/index_publish/current/"
234
234
  params = {"page": "1", "page_size": "50", "indextype": symbol}
235
235
  headers = {
236
236
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
237
237
  "Chrome/114.0.0.0 Safari/537.36"
238
238
  }
239
- r = requests.get(url, params=params, headers=headers)
239
+ r = requests.get(url, params=params, headers=headers, verify=False)
240
240
  data_json = r.json()
241
241
  total_num = data_json["data"]["count"]
242
242
  total_page = math.ceil(total_num / 50)
@@ -244,7 +244,7 @@ def index_realtime_sw(symbol: str = "二级行业") -> pd.DataFrame:
244
244
  tqdm = get_tqdm()
245
245
  for page in tqdm(range(1, total_page + 1), leave=False):
246
246
  params.update({"page": page})
247
- r = requests.get(url, params=params, headers=headers)
247
+ r = requests.get(url, params=params, headers=headers, verify=False)
248
248
  data_json = r.json()
249
249
  temp_df = pd.DataFrame(data_json["data"]["results"])
250
250
  big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
@@ -289,7 +289,7 @@ def index_analysis_daily_sw(
289
289
  ) -> pd.DataFrame:
290
290
  """
291
291
  申万宏源研究-指数分析
292
- https://www.swhyresearch.com/institute_sw/allIndex/analysisIndex
292
+ https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
293
293
  :param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
294
294
  :type symbol: str
295
295
  :param start_date: 开始日期
@@ -299,7 +299,7 @@ def index_analysis_daily_sw(
299
299
  :return: 指数分析
300
300
  :rtype: pandas.DataFrame
301
301
  """
302
- url = "https://www.swhyresearch.com/institute-sw/api/index_analysis/index_analysis_report/"
302
+ url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_report/"
303
303
  params = {
304
304
  "page": "1",
305
305
  "page_size": "50",
@@ -313,7 +313,7 @@ def index_analysis_daily_sw(
313
313
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
314
314
  "Chrome/114.0.0.0 Safari/537.36"
315
315
  }
316
- r = requests.get(url, params=params, headers=headers)
316
+ r = requests.get(url, params=params, headers=headers, verify=False)
317
317
  data_json = r.json()
318
318
  total_num = data_json["data"]["count"]
319
319
  total_page = math.ceil(total_num / 50)
@@ -321,10 +321,10 @@ def index_analysis_daily_sw(
321
321
  tqdm = get_tqdm()
322
322
  for page in tqdm(range(1, total_page + 1), leave=False):
323
323
  params.update({"page": page})
324
- r = requests.get(url, params=params, headers=headers)
324
+ r = requests.get(url, params=params, headers=headers, verify=False)
325
325
  data_json = r.json()
326
326
  temp_df = pd.DataFrame(data_json["data"]["results"])
327
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
327
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
328
328
  big_df.rename(
329
329
  columns={
330
330
  "swindexcode": "指数代码",
@@ -363,19 +363,19 @@ def index_analysis_daily_sw(
363
363
  def index_analysis_week_month_sw(symbol: str = "month") -> pd.DataFrame:
364
364
  """
365
365
  申万宏源研究-周/月报表-日期序列
366
- https://www.swhyresearch.com/institute_sw/allIndex/analysisIndex
366
+ https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
367
367
  :param symbol: choice of {"week", "month"}
368
368
  :type symbol: str
369
369
  :return: 日期序列
370
370
  :rtype: pandas.DataFrame
371
371
  """
372
- url = "https://www.swhyresearch.com/institute-sw/api/index_analysis/week_month_datetime/"
372
+ url = "https://www.swsresearch.com/institute-sw/api/index_analysis/week_month_datetime/"
373
373
  params = {"type": symbol.upper()}
374
374
  headers = {
375
375
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
376
376
  "Chrome/114.0.0.0 Safari/537.36"
377
377
  }
378
- r = requests.get(url, params=params, headers=headers)
378
+ r = requests.get(url, params=params, headers=headers, verify=False)
379
379
  data_json = r.json()
380
380
  temp_df = pd.DataFrame(data_json["data"])
381
381
  temp_df["bargaindate"] = pd.to_datetime(
@@ -392,7 +392,7 @@ def index_analysis_weekly_sw(
392
392
  ) -> pd.DataFrame:
393
393
  """
394
394
  申万宏源研究-指数分析-周报告
395
- https://www.swhyresearch.com/institute_sw/allIndex/analysisIndex
395
+ https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
396
396
  :param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
397
397
  :type symbol: str
398
398
  :param date: 查询日期; 通过调用 ak.index_analysis_week_month_sw(date="20221104") 接口获取
@@ -400,7 +400,7 @@ def index_analysis_weekly_sw(
400
400
  :return: 指数分析
401
401
  :rtype: pandas.DataFrame
402
402
  """
403
- url = "https://www.swhyresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
403
+ url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
404
404
  params = {
405
405
  "page": "1",
406
406
  "page_size": "50",
@@ -413,7 +413,7 @@ def index_analysis_weekly_sw(
413
413
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
414
414
  "Chrome/114.0.0.0 Safari/537.36"
415
415
  }
416
- r = requests.get(url, params=params, headers=headers)
416
+ r = requests.get(url, params=params, headers=headers, verify=False)
417
417
  data_json = r.json()
418
418
  total_num = data_json["data"]["count"]
419
419
  total_page = math.ceil(total_num / 50)
@@ -421,10 +421,10 @@ def index_analysis_weekly_sw(
421
421
  tqdm = get_tqdm()
422
422
  for page in tqdm(range(1, total_page + 1), leave=False):
423
423
  params.update({"page": page})
424
- r = requests.get(url, params=params, headers=headers)
424
+ r = requests.get(url, params=params, headers=headers, verify=False)
425
425
  data_json = r.json()
426
426
  temp_df = pd.DataFrame(data_json["data"]["results"])
427
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
427
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
428
428
  big_df.rename(
429
429
  columns={
430
430
  "swindexcode": "指数代码",
@@ -467,7 +467,7 @@ def index_analysis_monthly_sw(
467
467
  ) -> pd.DataFrame:
468
468
  """
469
469
  申万宏源研究-指数分析-月报告
470
- https://www.swhyresearch.com/institute_sw/allIndex/analysisIndex
470
+ https://www.swsresearch.com/institute_sw/allIndex/analysisIndex
471
471
  :param symbol: choice of {"市场表征", "一级行业", "二级行业", "风格指数"}
472
472
  :type symbol: str
473
473
  :param date: 查询日期; 通过调用 ak.index_analysis_week_month_sw() 接口获取
@@ -475,7 +475,7 @@ def index_analysis_monthly_sw(
475
475
  :return: 指数分析
476
476
  :rtype: pandas.DataFrame
477
477
  """
478
- url = "https://www.swhyresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
478
+ url = "https://www.swsresearch.com/institute-sw/api/index_analysis/index_analysis_reports/"
479
479
  params = {
480
480
  "page": "1",
481
481
  "page_size": "50",
@@ -488,7 +488,7 @@ def index_analysis_monthly_sw(
488
488
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
489
489
  "Chrome/114.0.0.0 Safari/537.36"
490
490
  }
491
- r = requests.get(url, params=params, headers=headers)
491
+ r = requests.get(url, params=params, headers=headers, verify=False)
492
492
  data_json = r.json()
493
493
  total_num = data_json["data"]["count"]
494
494
  total_page = math.ceil(total_num / 50)
@@ -496,10 +496,10 @@ def index_analysis_monthly_sw(
496
496
  tqdm = get_tqdm()
497
497
  for page in tqdm(range(1, total_page + 1), leave=False):
498
498
  params.update({"page": page})
499
- r = requests.get(url, params=params, headers=headers)
499
+ r = requests.get(url, params=params, headers=headers, verify=False)
500
500
  data_json = r.json()
501
501
  temp_df = pd.DataFrame(data_json["data"]["results"])
502
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
502
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
503
503
  big_df.rename(
504
504
  columns={
505
505
  "swindexcode": "指数代码",
@@ -549,7 +549,7 @@ if __name__ == "__main__":
549
549
  print(index_realtime_sw_df)
550
550
 
551
551
  index_analysis_daily_sw_df = index_analysis_daily_sw(
552
- symbol="市场表征", start_date="20240101", end_date="20240127"
552
+ symbol="市场表征", start_date="20241025", end_date="20241025"
553
553
  )
554
554
  print(index_analysis_daily_sw_df)
555
555
 
@@ -557,11 +557,11 @@ if __name__ == "__main__":
557
557
  print(index_analysis_week_month_sw_df)
558
558
 
559
559
  index_analysis_weekly_sw_df = index_analysis_weekly_sw(
560
- symbol="市场表征", date="20221104"
560
+ symbol="市场表征", date="20241025"
561
561
  )
562
562
  print(index_analysis_weekly_sw_df)
563
563
 
564
564
  index_analysis_monthly_sw_df = index_analysis_monthly_sw(
565
- symbol="市场表征", date="20221031"
565
+ symbol="市场表征", date="20240930"
566
566
  )
567
567
  print(index_analysis_monthly_sw_df)
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/6/11 21:30
4
+ Date: 2024/12/26 18:30
5
5
  Desc: 商品现货价格指数
6
- http://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
6
+ https://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
@@ -12,13 +13,13 @@ import requests
12
13
  def spot_goods(symbol: str = "波罗的海干散货指数") -> pd.DataFrame:
13
14
  """
14
15
  新浪财经-商品现货价格指数
15
- http://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
16
+ https://finance.sina.com.cn/futuremarket/spotprice.shtml#titlePos_0
16
17
  :param symbol: choice of {"波罗的海干散货指数", "钢坯价格指数", "澳大利亚粉矿价格"}
17
18
  :type symbol: str
18
19
  :return: 商品现货价格指数
19
20
  :rtype: pandas.DataFrame
20
21
  """
21
- url = "http://stock.finance.sina.com.cn/futures/api/openapi.php/GoodsIndexService.get_goods_index"
22
+ url = "https://stock.finance.sina.com.cn/futures/api/openapi.php/GoodsIndexService.get_goods_index"
22
23
  symbol_url_dict = {
23
24
  "波罗的海干散货指数": "BDI",
24
25
  "钢坯价格指数": "GP",
@@ -31,10 +32,13 @@ def spot_goods(symbol: str = "波罗的海干散货指数") -> pd.DataFrame:
31
32
  temp_df = pd.DataFrame(data_json["result"]["data"]["data"])
32
33
  temp_df = temp_df[["opendate", "price", "zde", "zdf"]]
33
34
  temp_df.columns = ["日期", "指数", "涨跌额", "涨跌幅"]
34
- temp_df["日期"] = pd.to_datetime(temp_df["日期"], format="%Y-%m-%d", errors="coerce").dt.date
35
+ temp_df["日期"] = pd.to_datetime(
36
+ temp_df["日期"], format="%Y-%m-%d", errors="coerce"
37
+ ).dt.date
35
38
  temp_df["指数"] = pd.to_numeric(temp_df["指数"], errors="coerce")
36
39
  temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
37
40
  temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
41
+ temp_df.dropna(inplace=True, ignore_index=True)
38
42
  return temp_df
39
43
 
40
44
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/4/14 16:00
4
+ Date: 2025/3/15 22:30
5
5
  Desc: 港股股票指数数据-新浪-东财
6
6
  所有指数-实时行情数据和历史行情数据
7
7
  https://finance.sina.com.cn/realstock/company/sz399552/nc.shtml
@@ -12,11 +12,12 @@ import re
12
12
 
13
13
  import pandas as pd
14
14
  import requests
15
- from py_mini_racer import py_mini_racer
15
+ import py_mini_racer
16
16
 
17
17
  from functools import lru_cache
18
18
 
19
19
  from akshare.stock.cons import hk_js_decode
20
+ from akshare.utils.func import fetch_paginated_data
20
21
 
21
22
 
22
23
  def _replace_comma(x) -> str:
@@ -154,7 +155,7 @@ def stock_hk_index_spot_em() -> pd.DataFrame:
154
155
  url = "https://15.push2.eastmoney.com/api/qt/clist/get"
155
156
  params = {
156
157
  "pn": "1",
157
- "pz": "20000",
158
+ "pz": "100",
158
159
  "po": "1",
159
160
  "np": "1",
160
161
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -165,13 +166,8 @@ def stock_hk_index_spot_em() -> pd.DataFrame:
165
166
  "fs": "m:124,m:125,m:305",
166
167
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,"
167
168
  "f26,f22,f33,f11,f62,f128,f136,f115,f152",
168
- "_": "1683800547682",
169
169
  }
170
- r = requests.get(url, params=params)
171
- data_json = r.json()
172
- temp_df = pd.DataFrame(data_json["data"]["diff"])
173
- temp_df.reset_index(inplace=True)
174
- temp_df["index"] = temp_df["index"] + 1
170
+ temp_df = fetch_paginated_data(url, params)
175
171
  temp_df.rename(
176
172
  columns={
177
173
  "index": "序号",
@@ -302,5 +298,5 @@ if __name__ == "__main__":
302
298
  stock_hk_index_spot_em_df = stock_hk_index_spot_em()
303
299
  print(stock_hk_index_spot_em_df)
304
300
 
305
- stock_hk_index_daily_em_df = stock_hk_index_daily_em(symbol="HSAHP")
301
+ stock_hk_index_daily_em_df = stock_hk_index_daily_em(symbol="HSTECH")
306
302
  print(stock_hk_index_daily_em_df)
@@ -8,7 +8,7 @@ https://stock.finance.sina.com.cn/usstock/quotes/.IXIC.html
8
8
 
9
9
  import pandas as pd
10
10
  import requests
11
- from py_mini_racer import py_mini_racer
11
+ import py_mini_racer
12
12
 
13
13
  from akshare.stock.cons import (
14
14
  zh_js_decode,