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,19 +1,24 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/8/20 20:00
4
+ Date: 2025/2/28 13:00
5
5
  Desc: 东方财富网-数据中心-研究报告-个股研报
6
6
  https://data.eastmoney.com/report/stock.jshtml
7
7
  """
8
+
9
+ import datetime
8
10
  import pandas as pd
9
11
  import requests
10
- from tqdm import tqdm
12
+
13
+ from akshare.utils.tqdm import get_tqdm
11
14
 
12
15
 
13
16
  def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
14
17
  """
15
18
  东方财富网-数据中心-研究报告-个股研报
16
19
  https://data.eastmoney.com/report/stock.jshtml
20
+ :param symbol: 个股代码
21
+ :type symbol: str
17
22
  :return: 个股研报
18
23
  :rtype: pandas.DataFrame
19
24
  """
@@ -25,7 +30,7 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
25
30
  "rating": "*",
26
31
  "ratingChange": "*",
27
32
  "beginTime": "2000-01-01",
28
- "endTime": "2025-01-01",
33
+ "endTime": f"{datetime.datetime.now().year + 1}-01-01",
29
34
  "pageNo": "1",
30
35
  "fields": "",
31
36
  "qType": "0",
@@ -35,12 +40,13 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
35
40
  "p": "1",
36
41
  "pageNum": "1",
37
42
  "pageNumber": "1",
38
- "_": "1692533168153",
39
43
  }
40
44
  r = requests.get(url, params=params)
41
45
  data_json = r.json()
42
46
  total_page = data_json["TotalPage"]
47
+ current_year = data_json["currentYear"]
43
48
  big_df = pd.DataFrame()
49
+ tqdm = get_tqdm()
44
50
  for page in tqdm(range(1, total_page + 1), leave=False):
45
51
  params.update(
46
52
  {
@@ -53,9 +59,18 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
53
59
  r = requests.get(url, params=params)
54
60
  data_json = r.json()
55
61
  temp_df = pd.DataFrame(data_json["data"])
56
- big_df = pd.concat([big_df, temp_df], axis=0, ignore_index=True)
62
+ big_df = pd.concat(objs=[big_df, temp_df], axis=0, ignore_index=True)
57
63
  big_df.reset_index(inplace=True)
58
64
  big_df["index"] = big_df["index"] + 1
65
+ predict_this_year_eps_title = f"{current_year}-盈利预测-收益"
66
+ predict_this_year_pe_title = f"{current_year}-盈利预测-市盈率"
67
+ predict_next_year_eps_title = f"{current_year + 1}-盈利预测-收益"
68
+ predict_next_year_pe_title = f"{current_year + 1}-盈利预测-市盈率"
69
+ predict_next_two_year_eps_title = f"{current_year + 2}-盈利预测-收益"
70
+ predict_next_two_year_pe_title = f"{current_year + 2}-盈利预测-市盈率"
71
+ big_df["pdfUrl"] = big_df["infoCode"].apply(
72
+ lambda x: f"https://pdf.dfcfw.com/pdf/H3_{x}_1.pdf"
73
+ )
59
74
  big_df.rename(
60
75
  columns={
61
76
  "index": "序号",
@@ -68,12 +83,12 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
68
83
  "publishDate": "日期",
69
84
  "infoCode": "-",
70
85
  "column": "-",
71
- "predictNextTwoYearEps": "-",
72
- "predictNextTwoYearPe": "-",
73
- "predictNextYearEps": "2024-盈利预测-收益",
74
- "predictNextYearPe": "2024-盈利预测-市盈率",
75
- "predictThisYearEps": "2023-盈利预测-收益",
76
- "predictThisYearPe": "2023-盈利预测-市盈率",
86
+ "predictNextTwoYearEps": predict_next_two_year_eps_title,
87
+ "predictNextTwoYearPe": predict_next_two_year_pe_title,
88
+ "predictNextYearEps": predict_next_year_eps_title,
89
+ "predictNextYearPe": predict_next_year_pe_title,
90
+ "predictThisYearEps": predict_this_year_eps_title,
91
+ "predictThisYearPe": predict_this_year_pe_title,
77
92
  "predictLastYearEps": "-",
78
93
  "predictLastYearPe": "-",
79
94
  "actualLastTwoYearEps": "-",
@@ -110,6 +125,7 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
110
125
  "authorID": "-",
111
126
  "count": "近一月个股研报数",
112
127
  "orgType": "-",
128
+ "pdfUrl": "报告PDF链接",
113
129
  },
114
130
  inplace=True,
115
131
  )
@@ -122,20 +138,39 @@ def stock_research_report_em(symbol: str = "000001") -> pd.DataFrame:
122
138
  "东财评级",
123
139
  "机构",
124
140
  "近一月个股研报数",
125
- "2023-盈利预测-收益",
126
- "2023-盈利预测-市盈率",
127
- "2024-盈利预测-收益",
128
- "2024-盈利预测-市盈率",
141
+ predict_this_year_eps_title,
142
+ predict_this_year_pe_title,
143
+ predict_next_year_eps_title,
144
+ predict_next_year_pe_title,
145
+ predict_next_two_year_eps_title,
146
+ predict_next_two_year_pe_title,
129
147
  "行业",
130
148
  "日期",
149
+ "报告PDF链接",
131
150
  ]
132
151
  ]
133
152
  big_df["日期"] = pd.to_datetime(big_df["日期"], errors="coerce").dt.date
134
- big_df["近一月个股研报数"] = pd.to_numeric(big_df["近一月个股研报数"], errors="coerce")
135
- big_df["2023-盈利预测-收益"] = pd.to_numeric(big_df["2023-盈利预测-收益"], errors="coerce")
136
- big_df["2023-盈利预测-市盈率"] = pd.to_numeric(big_df["2023-盈利预测-市盈率"], errors="coerce")
137
- big_df["2024-盈利预测-收益"] = pd.to_numeric(big_df["2024-盈利预测-收益"], errors="coerce")
138
- big_df["2024-盈利预测-市盈率"] = pd.to_numeric(big_df["2024-盈利预测-市盈率"], errors="coerce")
153
+ big_df["近一月个股研报数"] = pd.to_numeric(
154
+ big_df["近一月个股研报数"], errors="coerce"
155
+ )
156
+ big_df[predict_this_year_eps_title] = pd.to_numeric(
157
+ big_df[predict_this_year_eps_title], errors="coerce"
158
+ )
159
+ big_df[predict_this_year_pe_title] = pd.to_numeric(
160
+ big_df[predict_this_year_pe_title], errors="coerce"
161
+ )
162
+ big_df[predict_next_year_eps_title] = pd.to_numeric(
163
+ big_df[predict_next_year_eps_title], errors="coerce"
164
+ )
165
+ big_df[predict_next_year_pe_title] = pd.to_numeric(
166
+ big_df[predict_next_year_pe_title], errors="coerce"
167
+ )
168
+ big_df[predict_next_two_year_eps_title] = pd.to_numeric(
169
+ big_df[predict_next_two_year_eps_title], errors="coerce"
170
+ )
171
+ big_df[predict_next_two_year_pe_title] = pd.to_numeric(
172
+ big_df[predict_next_two_year_pe_title], errors="coerce"
173
+ )
139
174
  return big_df
140
175
 
141
176
 
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/8/4 19:20
4
+ Date: 2024/5/21 19:20
5
5
  Desc: 上证e互动-提问与回答
6
6
  https://sns.sseinfo.com/
7
7
  """
8
+
8
9
  import warnings
9
10
  from functools import lru_cache
10
11
 
11
12
  import pandas as pd
12
13
  import requests
13
14
  from bs4 import BeautifulSoup
14
- from tqdm import tqdm
15
+
16
+ from akshare.utils.tqdm import get_tqdm
15
17
 
16
18
 
17
19
  @lru_cache()
@@ -31,19 +33,20 @@ def _fetch_stock_uid() -> dict:
31
33
  }
32
34
  uid_list = list()
33
35
  code_list = list()
36
+ tqdm = get_tqdm()
34
37
  for page in tqdm(range(1, 73), leave=False):
35
38
  data.update({"page": page})
36
39
  r = requests.post(url, data=data)
37
40
  data_json = r.json()
38
- soup = BeautifulSoup(data_json["content"], "lxml")
39
- soup.find_all("a", attrs={"rel": "tag"})
41
+ soup = BeautifulSoup(data_json["content"], features="lxml")
42
+ soup.find_all(name="a", attrs={"rel": "tag"})
40
43
  uid_list.extend(
41
- [item["uid"] for item in soup.find_all("a", attrs={"rel": "tag"})]
44
+ [item["uid"] for item in soup.find_all(name="a", attrs={"rel": "tag"})]
42
45
  )
43
46
  code_list.extend(
44
47
  [
45
48
  item.find("img")["src"].split("?")[0].split("/")[-1].split(".")[0]
46
- for item in soup.find_all("a", attrs={"rel": "tag"})
49
+ for item in soup.find_all(name="a", attrs={"rel": "tag"})
47
50
  ]
48
51
  )
49
52
  code_uid_map = dict(zip(code_list, uid_list))
@@ -79,18 +82,18 @@ def stock_sns_sseinfo(symbol: str = "603119") -> pd.DataFrame:
79
82
  else:
80
83
  page += 1
81
84
  r = requests.post(url, params=params)
82
- soup = BeautifulSoup(r.text, "lxml")
85
+ soup = BeautifulSoup(r.text, features="lxml")
83
86
  content_list = [
84
87
  item.get_text().strip()
85
- for item in soup.find_all("div", attrs={"class": "m_feed_txt"})
88
+ for item in soup.find_all(name="div", attrs={"class": "m_feed_txt"})
86
89
  ]
87
90
  date_list = [
88
91
  item.get_text().strip().split("\n")[0]
89
- for item in soup.find_all("div", attrs={"class": "m_feed_from"})
92
+ for item in soup.find_all(name="div", attrs={"class": "m_feed_from"})
90
93
  ]
91
94
  source_list = [
92
95
  item.get_text().strip().split("\n")[2]
93
- for item in soup.find_all("div", attrs={"class": "m_feed_from"})
96
+ for item in soup.find_all(name="div", attrs={"class": "m_feed_from"})
94
97
  ]
95
98
  q_list = [
96
99
  item.split(")")[1]
@@ -113,7 +116,7 @@ def stock_sns_sseinfo(symbol: str = "603119") -> pd.DataFrame:
113
116
  s_q_list = [item for index, item in enumerate(source_list) if index % 2 == 0]
114
117
  s_a_list = [item for index, item in enumerate(source_list) if index % 2 != 0]
115
118
  author_name = [
116
- item["title"] for item in soup.find_all("a", attrs={"rel": "face"})
119
+ item["title"] for item in soup.find_all(name="a", attrs={"rel": "face"})
117
120
  ]
118
121
  temp_df = pd.DataFrame(
119
122
  [
@@ -139,7 +142,7 @@ def stock_sns_sseinfo(symbol: str = "603119") -> pd.DataFrame:
139
142
  "回答来源",
140
143
  "用户名",
141
144
  ]
142
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
145
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
143
146
  return big_df
144
147
 
145
148
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/4/21 17:30
4
+ Date: 2024/9/15 15:30
5
5
  Desc: 东方财富网-数据中心-特色数据-商誉
6
6
  东方财富网-数据中心-特色数据-商誉-A股商誉市场概况: https://data.eastmoney.com/sy/scgk.html
7
7
  东方财富网-数据中心-特色数据-商誉-商誉减值预期明细: https://data.eastmoney.com/sy/yqlist.html
@@ -12,7 +12,8 @@ Desc: 东方财富网-数据中心-特色数据-商誉
12
12
 
13
13
  import pandas as pd
14
14
  import requests
15
- from tqdm import tqdm
15
+
16
+ from akshare.utils.tqdm import get_tqdm
16
17
 
17
18
 
18
19
  def stock_sy_profile_em() -> pd.DataFrame:
@@ -80,7 +81,7 @@ def stock_sy_profile_em() -> pd.DataFrame:
80
81
  return data_df
81
82
 
82
83
 
83
- def stock_sy_yq_em(date: str = "20221231") -> pd.DataFrame:
84
+ def stock_sy_yq_em(date: str = "20240630") -> pd.DataFrame:
84
85
  """
85
86
  东方财富网-数据中心-特色数据-商誉-商誉减值预期明细
86
87
  https://data.eastmoney.com/sy/yqlist.html
@@ -104,12 +105,13 @@ def stock_sy_yq_em(date: str = "20221231") -> pd.DataFrame:
104
105
  data_json = r.json()
105
106
  big_df = pd.DataFrame()
106
107
  total_page = int(data_json["result"]["pages"])
108
+ tqdm = get_tqdm()
107
109
  for page in tqdm(range(1, total_page + 1), leave=False):
108
110
  params.update({"pageNumber": page})
109
111
  r = requests.get(url, params=params)
110
112
  data_json = r.json()
111
113
  temp_df = pd.DataFrame(data_json["result"]["data"])
112
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
114
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
113
115
  big_df.reset_index(inplace=True)
114
116
  big_df["index"] = big_df["index"] + 1
115
117
  big_df.rename(
@@ -188,7 +190,7 @@ def stock_sy_yq_em(date: str = "20221231") -> pd.DataFrame:
188
190
  return big_df
189
191
 
190
192
 
191
- def stock_sy_jz_em(date: str = "20230331") -> pd.DataFrame:
193
+ def stock_sy_jz_em(date: str = "20240630") -> pd.DataFrame:
192
194
  """
193
195
  东方财富网-数据中心-特色数据-商誉-个股商誉减值明细
194
196
  https://data.eastmoney.com/sy/jzlist.html
@@ -212,12 +214,13 @@ def stock_sy_jz_em(date: str = "20230331") -> pd.DataFrame:
212
214
  data_json = r.json()
213
215
  big_df = pd.DataFrame()
214
216
  total_page = int(data_json["result"]["pages"])
217
+ tqdm = get_tqdm()
215
218
  for page in tqdm(range(1, total_page + 1), leave=False):
216
219
  params.update({"pageNumber": page})
217
220
  r = requests.get(url, params=params)
218
221
  data_json = r.json()
219
222
  temp_df = pd.DataFrame(data_json["result"]["data"])
220
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
223
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
221
224
  big_df.reset_index(inplace=True)
222
225
  big_df["index"] = big_df["index"] + 1
223
226
  big_df.rename(
@@ -312,12 +315,13 @@ def stock_sy_em(date: str = "20231231") -> pd.DataFrame:
312
315
  data_json = r.json()
313
316
  big_df = pd.DataFrame()
314
317
  total_page = int(data_json["result"]["pages"])
318
+ tqdm = get_tqdm()
315
319
  for page in tqdm(range(1, total_page + 1), leave=False):
316
320
  params.update({"pageNumber": page})
317
321
  r = requests.get(url, params=params)
318
322
  data_json = r.json()
319
323
  temp_df = pd.DataFrame(data_json["result"]["data"])
320
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
324
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
321
325
  big_df.reset_index(inplace=True)
322
326
  big_df["index"] = big_df["index"] + 1
323
327
  big_df.rename(
@@ -379,7 +383,7 @@ def stock_sy_em(date: str = "20231231") -> pd.DataFrame:
379
383
  return big_df
380
384
 
381
385
 
382
- def stock_sy_hy_em(date: str = "20231231") -> pd.DataFrame:
386
+ def stock_sy_hy_em(date: str = "20240930") -> pd.DataFrame:
383
387
  """
384
388
  东方财富网-数据中心-特色数据-商誉-行业商誉
385
389
  https://data.eastmoney.com/sy/hylist.html
@@ -403,12 +407,13 @@ def stock_sy_hy_em(date: str = "20231231") -> pd.DataFrame:
403
407
  data_json = r.json()
404
408
  big_df = pd.DataFrame()
405
409
  total_page = int(data_json["result"]["pages"])
410
+ tqdm = get_tqdm()
406
411
  for page in tqdm(range(1, total_page + 1), leave=False):
407
412
  params.update({"pageNumber": page})
408
413
  r = requests.get(url, params=params)
409
414
  data_json = r.json()
410
415
  temp_df = pd.DataFrame(data_json["result"]["data"])
411
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
416
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
412
417
  big_df.reset_index(inplace=True, drop=True)
413
418
  big_df.rename(
414
419
  columns={
@@ -447,17 +452,17 @@ def stock_sy_hy_em(date: str = "20231231") -> pd.DataFrame:
447
452
 
448
453
 
449
454
  if __name__ == "__main__":
450
- stock_em_sy_profile_df = stock_sy_profile_em()
451
- print(stock_em_sy_profile_df)
455
+ stock_sy_profile_em_df = stock_sy_profile_em()
456
+ print(stock_sy_profile_em_df)
452
457
 
453
- stock_sy_yq_em_df = stock_sy_yq_em(date="20221231")
458
+ stock_sy_yq_em_df = stock_sy_yq_em(date="20240630")
454
459
  print(stock_sy_yq_em_df)
455
460
 
456
- stock_sy_jz_em_df = stock_sy_jz_em(date="20230630")
461
+ stock_sy_jz_em_df = stock_sy_jz_em(date="20240630")
457
462
  print(stock_sy_jz_em_df)
458
463
 
459
- stock_sy_em_df = stock_sy_em(date="20231231")
464
+ stock_sy_em_df = stock_sy_em(date="20240630")
460
465
  print(stock_sy_em_df)
461
466
 
462
- stock_sy_hy_em_df = stock_sy_hy_em(date="20231231")
467
+ stock_sy_hy_em_df = stock_sy_hy_em(date="20240930")
463
468
  print(stock_sy_hy_em_df)