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,15 +1,14 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2023/6/12 15:00
4
+ Date: 2024/6/19 22:00
5
5
  Desc: 巨潮资讯-数据中心-专题统计-债券报表-债券发行
6
6
  http://webapi.cninfo.com.cn/#/thematicStatistics
7
7
  """
8
- import time
9
8
 
10
9
  import pandas as pd
11
10
  import requests
12
- from py_mini_racer import py_mini_racer
11
+ import py_mini_racer
13
12
 
14
13
  from akshare.datasets import get_ths_js
15
14
 
@@ -23,7 +22,7 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
23
22
  :rtype: str
24
23
  """
25
24
  setting_file_path = get_ths_js(file)
26
- with open(setting_file_path) as f:
25
+ with open(setting_file_path, encoding="utf-8") as f:
27
26
  file_data = f.read()
28
27
  return file_data
29
28
 
@@ -58,7 +57,8 @@ def bond_treasure_issue_cninfo(
58
57
  "Pragma": "no-cache",
59
58
  "Proxy-Connection": "keep-alive",
60
59
  "Referer": "http://webapi.cninfo.com.cn/",
61
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
60
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
61
+ "Chrome/93.0.4577.63 Safari/537.36",
62
62
  "X-Requested-With": "XMLHttpRequest",
63
63
  }
64
64
  params = {
@@ -107,8 +107,12 @@ def bond_treasure_issue_cninfo(
107
107
  "债券名称",
108
108
  ]
109
109
  ]
110
- temp_df["发行起始日"] = pd.to_datetime(temp_df["发行起始日"], errors="coerce").dt.date
111
- temp_df["发行终止日"] = pd.to_datetime(temp_df["发行终止日"], errors="coerce").dt.date
110
+ temp_df["发行起始日"] = pd.to_datetime(
111
+ temp_df["发行起始日"], errors="coerce"
112
+ ).dt.date
113
+ temp_df["发行终止日"] = pd.to_datetime(
114
+ temp_df["发行终止日"], errors="coerce"
115
+ ).dt.date
112
116
  temp_df["缴款日"] = pd.to_datetime(temp_df["缴款日"], errors="coerce").dt.date
113
117
  temp_df["公告日期"] = pd.to_datetime(temp_df["公告日期"], errors="coerce").dt.date
114
118
  temp_df["计划发行总量"] = pd.to_numeric(temp_df["计划发行总量"], errors="coerce")
@@ -133,7 +137,6 @@ def bond_local_government_issue_cninfo(
133
137
  :rtype: pandas.DataFrame
134
138
  """
135
139
  url = "http://webapi.cninfo.com.cn/api/sysapi/p_sysapi1121"
136
- random_time_str = str(int(time.time()))
137
140
  js_code = py_mini_racer.MiniRacer()
138
141
  js_content = _get_file_content_cninfo("cninfo.js")
139
142
  js_code.eval(js_content)
@@ -150,7 +153,8 @@ def bond_local_government_issue_cninfo(
150
153
  "Pragma": "no-cache",
151
154
  "Proxy-Connection": "keep-alive",
152
155
  "Referer": "http://webapi.cninfo.com.cn/",
153
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
156
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
157
+ "Chrome/93.0.4577.63 Safari/537.36",
154
158
  "X-Requested-With": "XMLHttpRequest",
155
159
  }
156
160
  params = {
@@ -199,8 +203,12 @@ def bond_local_government_issue_cninfo(
199
203
  "债券名称",
200
204
  ]
201
205
  ]
202
- temp_df["发行起始日"] = pd.to_datetime(temp_df["发行起始日"], errors="coerce").dt.date
203
- temp_df["发行终止日"] = pd.to_datetime(temp_df["发行终止日"], errors="coerce").dt.date
206
+ temp_df["发行起始日"] = pd.to_datetime(
207
+ temp_df["发行起始日"], errors="coerce"
208
+ ).dt.date
209
+ temp_df["发行终止日"] = pd.to_datetime(
210
+ temp_df["发行终止日"], errors="coerce"
211
+ ).dt.date
204
212
  temp_df["缴款日"] = pd.to_datetime(temp_df["缴款日"], errors="coerce").dt.date
205
213
  temp_df["公告日期"] = pd.to_datetime(temp_df["公告日期"], errors="coerce").dt.date
206
214
  temp_df["计划发行总量"] = pd.to_numeric(temp_df["计划发行总量"], errors="coerce")
@@ -241,7 +249,8 @@ def bond_corporate_issue_cninfo(
241
249
  "Pragma": "no-cache",
242
250
  "Proxy-Connection": "keep-alive",
243
251
  "Referer": "http://webapi.cninfo.com.cn/",
244
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
252
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
253
+ "Chrome/93.0.4577.63 Safari/537.36",
245
254
  "X-Requested-With": "XMLHttpRequest",
246
255
  }
247
256
  params = {
@@ -295,8 +304,12 @@ def bond_corporate_issue_cninfo(
295
304
  ]
296
305
  ]
297
306
  temp_df["公告日期"] = pd.to_datetime(temp_df["公告日期"], errors="coerce").dt.date
298
- temp_df["交易所网上发行起始日"] = pd.to_datetime(temp_df["交易所网上发行起始日"], errors="coerce").dt.date
299
- temp_df["交易所网上发行终止日"] = pd.to_datetime(temp_df["交易所网上发行终止日"], errors="coerce").dt.date
307
+ temp_df["交易所网上发行起始日"] = pd.to_datetime(
308
+ temp_df["交易所网上发行起始日"], errors="coerce"
309
+ ).dt.date
310
+ temp_df["交易所网上发行终止日"] = pd.to_datetime(
311
+ temp_df["交易所网上发行终止日"], errors="coerce"
312
+ ).dt.date
300
313
  temp_df["计划发行总量"] = pd.to_numeric(temp_df["计划发行总量"], errors="coerce")
301
314
  temp_df["实际发行总量"] = pd.to_numeric(temp_df["实际发行总量"], errors="coerce")
302
315
  temp_df["发行面值"] = pd.to_numeric(temp_df["发行面值"], errors="coerce")
@@ -336,7 +349,8 @@ def bond_cov_issue_cninfo(
336
349
  "Pragma": "no-cache",
337
350
  "Proxy-Connection": "keep-alive",
338
351
  "Referer": "http://webapi.cninfo.com.cn/",
339
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
352
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
353
+ "Chrome/93.0.4577.63 Safari/537.36",
340
354
  "X-Requested-With": "XMLHttpRequest",
341
355
  }
342
356
  params = {
@@ -418,23 +432,47 @@ def bond_cov_issue_cninfo(
418
432
  ]
419
433
  ]
420
434
  temp_df["公告日期"] = pd.to_datetime(temp_df["公告日期"], errors="coerce").dt.date
421
- temp_df["发行起始日"] = pd.to_datetime(temp_df["发行起始日"], errors="coerce").dt.date
422
- temp_df["发行终止日"] = pd.to_datetime(temp_df["发行终止日"], errors="coerce").dt.date
423
- temp_df["转股开始日期"] = pd.to_datetime(temp_df["转股开始日期"], errors="coerce").dt.date
424
- temp_df["转股终止日期"] = pd.to_datetime(temp_df["转股终止日期"], errors="coerce").dt.date
425
- temp_df["转股终止日期"] = pd.to_datetime(temp_df["转股终止日期"], errors="coerce").dt.date
426
- temp_df["网上申购日期"] = pd.to_datetime(temp_df["网上申购日期"], errors="coerce").dt.date
427
- temp_df["网上申购中签结果公告日及退款日"] = pd.to_datetime(temp_df["网上申购中签结果公告日及退款日"], errors="coerce").dt.date
428
- temp_df["债权登记日"] = pd.to_datetime(temp_df["债权登记日"], errors="coerce").dt.date
429
- temp_df["优先申购日"] = pd.to_datetime(temp_df["优先申购日"], errors="coerce").dt.date
430
- temp_df["优先申购缴款日"] = pd.to_datetime(temp_df["优先申购缴款日"], errors="coerce").dt.date
435
+ temp_df["发行起始日"] = pd.to_datetime(
436
+ temp_df["发行起始日"], errors="coerce"
437
+ ).dt.date
438
+ temp_df["发行终止日"] = pd.to_datetime(
439
+ temp_df["发行终止日"], errors="coerce"
440
+ ).dt.date
441
+ temp_df["转股开始日期"] = pd.to_datetime(
442
+ temp_df["转股开始日期"], errors="coerce"
443
+ ).dt.date
444
+ temp_df["转股终止日期"] = pd.to_datetime(
445
+ temp_df["转股终止日期"], errors="coerce"
446
+ ).dt.date
447
+ temp_df["转股终止日期"] = pd.to_datetime(
448
+ temp_df["转股终止日期"], errors="coerce"
449
+ ).dt.date
450
+ temp_df["网上申购日期"] = pd.to_datetime(
451
+ temp_df["网上申购日期"], errors="coerce"
452
+ ).dt.date
453
+ temp_df["网上申购中签结果公告日及退款日"] = pd.to_datetime(
454
+ temp_df["网上申购中签结果公告日及退款日"], errors="coerce"
455
+ ).dt.date
456
+ temp_df["债权登记日"] = pd.to_datetime(
457
+ temp_df["债权登记日"], errors="coerce"
458
+ ).dt.date
459
+ temp_df["优先申购日"] = pd.to_datetime(
460
+ temp_df["优先申购日"], errors="coerce"
461
+ ).dt.date
462
+ temp_df["优先申购缴款日"] = pd.to_datetime(
463
+ temp_df["优先申购缴款日"], errors="coerce"
464
+ ).dt.date
431
465
  temp_df["计划发行总量"] = pd.to_numeric(temp_df["计划发行总量"], errors="coerce")
432
466
  temp_df["实际发行总量"] = pd.to_numeric(temp_df["实际发行总量"], errors="coerce")
433
467
  temp_df["发行面值"] = pd.to_numeric(temp_df["发行面值"], errors="coerce")
434
468
  temp_df["发行价格"] = pd.to_numeric(temp_df["发行价格"], errors="coerce")
435
469
  temp_df["初始转股价格"] = pd.to_numeric(temp_df["初始转股价格"], errors="coerce")
436
- temp_df["网上申购数量上限"] = pd.to_numeric(temp_df["网上申购数量上限"], errors="coerce")
437
- temp_df["网上申购数量下限"] = pd.to_numeric(temp_df["网上申购数量下限"], errors="coerce")
470
+ temp_df["网上申购数量上限"] = pd.to_numeric(
471
+ temp_df["网上申购数量上限"], errors="coerce"
472
+ )
473
+ temp_df["网上申购数量下限"] = pd.to_numeric(
474
+ temp_df["网上申购数量下限"], errors="coerce"
475
+ )
438
476
  temp_df["网上申购单位"] = pd.to_numeric(temp_df["网上申购单位"], errors="coerce")
439
477
  temp_df["配售价格"] = pd.to_numeric(temp_df["配售价格"], errors="coerce")
440
478
  return temp_df
@@ -464,7 +502,8 @@ def bond_cov_stock_issue_cninfo() -> pd.DataFrame:
464
502
  "Pragma": "no-cache",
465
503
  "Proxy-Connection": "keep-alive",
466
504
  "Referer": "http://webapi.cninfo.com.cn/",
467
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
505
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
506
+ "Chrome/93.0.4577.63 Safari/537.36",
468
507
  "X-Requested-With": "XMLHttpRequest",
469
508
  }
470
509
  r = requests.post(url, headers=headers)
@@ -500,8 +539,12 @@ def bond_cov_stock_issue_cninfo() -> pd.DataFrame:
500
539
  ]
501
540
  ]
502
541
  temp_df["公告日期"] = pd.to_datetime(temp_df["公告日期"], errors="coerce").dt.date
503
- temp_df["自愿转换期起始日"] = pd.to_datetime(temp_df["自愿转换期起始日"], errors="coerce").dt.date
504
- temp_df["自愿转换期终止日"] = pd.to_datetime(temp_df["自愿转换期终止日"], errors="coerce").dt.date
542
+ temp_df["自愿转换期起始日"] = pd.to_datetime(
543
+ temp_df["自愿转换期起始日"], errors="coerce"
544
+ ).dt.date
545
+ temp_df["自愿转换期终止日"] = pd.to_datetime(
546
+ temp_df["自愿转换期终止日"], errors="coerce"
547
+ ).dt.date
505
548
  temp_df["转股价格"] = pd.to_numeric(temp_df["转股价格"], errors="coerce")
506
549
  return temp_df
507
550
 
@@ -5,13 +5,14 @@ Date: 2022/3/5 12:55
5
5
  Desc: 上登债券信息网-债券成交概览
6
6
  http://bond.sse.com.cn/data/statistics/overview/turnover/
7
7
  """
8
+
8
9
  from io import BytesIO
9
10
 
10
11
  import pandas as pd
11
12
  import requests
12
13
 
13
14
 
14
- def bond_cash_summary_sse(date: str = '20210111') -> pd.DataFrame:
15
+ def bond_cash_summary_sse(date: str = "20210111") -> pd.DataFrame:
15
16
  """
16
17
  上登债券信息网-市场数据-市场统计-市场概览-债券现券市场概览
17
18
  http://bond.sse.com.cn/data/statistics/overview/bondow/
@@ -20,33 +21,33 @@ def bond_cash_summary_sse(date: str = '20210111') -> pd.DataFrame:
20
21
  :return: 债券成交概览
21
22
  :rtype: pandas.DataFrame
22
23
  """
23
- url = 'http://query.sse.com.cn/commonExcelDd.do'
24
+ url = "http://query.sse.com.cn/commonExcelDd.do"
24
25
  headers = {
25
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
26
- 'Referer': 'http://bond.sse.com.cn/',
27
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
26
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
27
+ "Referer": "http://bond.sse.com.cn/",
28
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
28
29
  }
29
30
  params = {
30
- 'sqlId': 'COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQXQSCGL_CX_L',
31
- 'TRADE_DATE': f'{date[:4]}-{date[4:6]}-{date[6:]}',
31
+ "sqlId": "COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQXQSCGL_CX_L",
32
+ "TRADE_DATE": f"{date[:4]}-{date[4:6]}-{date[6:]}",
32
33
  }
33
34
  r = requests.get(url, params=params, headers=headers)
34
35
  temp_df = pd.read_excel(BytesIO(r.content), engine="xlrd")
35
36
  temp_df.columns = [
36
- '债券现货',
37
- '托管只数',
38
- '托管市值',
39
- '托管面值',
40
- '数据日期',
37
+ "债券现货",
38
+ "托管只数",
39
+ "托管市值",
40
+ "托管面值",
41
+ "数据日期",
41
42
  ]
42
- temp_df['托管只数'] = pd.to_numeric(temp_df['托管只数'])
43
- temp_df['托管市值'] = pd.to_numeric(temp_df['托管市值'])
44
- temp_df['托管面值'] = pd.to_numeric(temp_df['托管面值'])
45
- temp_df['数据日期'] = pd.to_datetime(temp_df['数据日期']).dt.date
43
+ temp_df["托管只数"] = pd.to_numeric(temp_df["托管只数"])
44
+ temp_df["托管市值"] = pd.to_numeric(temp_df["托管市值"])
45
+ temp_df["托管面值"] = pd.to_numeric(temp_df["托管面值"])
46
+ temp_df["数据日期"] = pd.to_datetime(temp_df["数据日期"]).dt.date
46
47
  return temp_df
47
48
 
48
49
 
49
- def bond_deal_summary_sse(date: str = '20210104') -> pd.DataFrame:
50
+ def bond_deal_summary_sse(date: str = "20210104") -> pd.DataFrame:
50
51
  """
51
52
  上登债券信息网-市场数据-市场统计-市场概览-债券成交概览
52
53
  http://bond.sse.com.cn/data/statistics/overview/turnover/
@@ -55,37 +56,37 @@ def bond_deal_summary_sse(date: str = '20210104') -> pd.DataFrame:
55
56
  :return: 债券成交概览
56
57
  :rtype: pandas.DataFrame
57
58
  """
58
- url = 'http://query.sse.com.cn/commonExcelDd.do'
59
+ url = "http://query.sse.com.cn/commonExcelDd.do"
59
60
  headers = {
60
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
61
- 'Referer': 'http://bond.sse.com.cn/',
62
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
61
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
62
+ "Referer": "http://bond.sse.com.cn/",
63
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
63
64
  }
64
65
  params = {
65
- 'sqlId': 'COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQCJGL_CX_L',
66
- 'TRADE_DATE': f'{date[:4]}-{date[4:6]}-{date[6:]}',
66
+ "sqlId": "COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQCJGL_CX_L",
67
+ "TRADE_DATE": f"{date[:4]}-{date[4:6]}-{date[6:]}",
67
68
  }
68
69
  r = requests.get(url, params=params, headers=headers)
69
70
  temp_df = pd.read_excel(BytesIO(r.content))
70
71
  temp_df.columns = [
71
- '债券类型',
72
- '当日成交笔数',
73
- '当日成交金额',
74
- '当年成交笔数',
75
- '当年成交金额',
76
- '数据日期',
72
+ "债券类型",
73
+ "当日成交笔数",
74
+ "当日成交金额",
75
+ "当年成交笔数",
76
+ "当年成交金额",
77
+ "数据日期",
77
78
  ]
78
- temp_df['当日成交笔数'] = pd.to_numeric(temp_df['当日成交笔数'])
79
- temp_df['当日成交金额'] = pd.to_numeric(temp_df['当日成交金额'])
80
- temp_df['当年成交笔数'] = pd.to_numeric(temp_df['当年成交笔数'])
81
- temp_df['当年成交金额'] = pd.to_numeric(temp_df['当年成交金额'])
82
- temp_df['数据日期'] = pd.to_datetime(temp_df['数据日期']).dt.date
79
+ temp_df["当日成交笔数"] = pd.to_numeric(temp_df["当日成交笔数"])
80
+ temp_df["当日成交金额"] = pd.to_numeric(temp_df["当日成交金额"])
81
+ temp_df["当年成交笔数"] = pd.to_numeric(temp_df["当年成交笔数"])
82
+ temp_df["当年成交金额"] = pd.to_numeric(temp_df["当年成交金额"])
83
+ temp_df["数据日期"] = pd.to_datetime(temp_df["数据日期"]).dt.date
83
84
  return temp_df
84
85
 
85
86
 
86
- if __name__ == '__main__':
87
- bond_cash_summary_sse_df = bond_cash_summary_sse(date='20210111')
87
+ if __name__ == "__main__":
88
+ bond_cash_summary_sse_df = bond_cash_summary_sse(date="20210111")
88
89
  print(bond_cash_summary_sse_df)
89
90
 
90
- bond_summary_sse_df = bond_deal_summary_sse(date='20210111')
91
+ bond_summary_sse_df = bond_deal_summary_sse(date="20210111")
91
92
  print(bond_summary_sse_df)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/20 17:50
4
+ Date: 2025/7/4 15:00
5
5
  Desc: 新浪财经-债券-沪深可转债-实时行情数据和历史行情数据
6
6
  https://vip.stock.finance.sina.com.cn/mkt/#hskzz_z
7
7
  """
@@ -10,8 +10,8 @@ import datetime
10
10
  import re
11
11
 
12
12
  import pandas as pd
13
+ import py_mini_racer
13
14
  import requests
14
- from py_mini_racer import py_mini_racer
15
15
 
16
16
  from akshare.bond.cons import (
17
17
  zh_sina_bond_hs_cov_count_url,
@@ -21,6 +21,7 @@ from akshare.bond.cons import (
21
21
  )
22
22
  from akshare.stock.cons import hk_js_decode
23
23
  from akshare.utils import demjson
24
+ from akshare.utils.func import fetch_paginated_data
24
25
  from akshare.utils.tqdm import get_tqdm
25
26
 
26
27
 
@@ -57,7 +58,7 @@ def bond_zh_hs_cov_spot() -> pd.DataFrame:
57
58
  zh_sina_bond_hs_payload_copy.update({"page": page})
58
59
  res = requests.get(zh_sina_bond_hs_cov_url, params=zh_sina_bond_hs_payload_copy)
59
60
  data_json = demjson.decode(res.text)
60
- big_df = pd.concat([big_df, pd.DataFrame(data_json)], ignore_index=True)
61
+ big_df = pd.concat(objs=[big_df, pd.DataFrame(data_json)], ignore_index=True)
61
62
  return big_df
62
63
 
63
64
 
@@ -95,26 +96,23 @@ def _code_id_map() -> dict:
95
96
  url = "https://80.push2.eastmoney.com/api/qt/clist/get"
96
97
  params = {
97
98
  "pn": "1",
98
- "pz": "5000",
99
+ "pz": "100",
99
100
  "po": "1",
100
101
  "np": "1",
101
102
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
102
103
  "fltt": "2",
103
104
  "invt": "2",
104
- "fid": "f3",
105
+ "fid": "f12",
105
106
  "fs": "m:1 t:2,m:1 t:23",
106
- "fields": "f12",
107
- "_": "1623833739532",
107
+ "fields": "f3,f12",
108
108
  }
109
- r = requests.get(url, params=params)
110
- data_json = r.json()
111
- temp_df = pd.DataFrame(data_json["data"]["diff"])
109
+ temp_df = fetch_paginated_data(url, params)
112
110
  temp_df["market_id"] = 1
113
- temp_df.columns = ["sh_code", "sh_id"]
111
+ temp_df.rename(columns={"f12": "sh_code", "market_id": "sh_id"}, inplace=True)
114
112
  code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
115
113
  params = {
116
114
  "pn": "1",
117
- "pz": "5000",
115
+ "pz": "100",
118
116
  "po": "1",
119
117
  "np": "1",
120
118
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -122,12 +120,9 @@ def _code_id_map() -> dict:
122
120
  "invt": "2",
123
121
  "fid": "f3",
124
122
  "fs": "m:0 t:6,m:0 t:80",
125
- "fields": "f12",
126
- "_": "1623833739532",
123
+ "fields": "f3,f12",
127
124
  }
128
- r = requests.get(url, params=params)
129
- data_json = r.json()
130
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
125
+ temp_df_sz = fetch_paginated_data(url, params)
131
126
  temp_df_sz["sz_id"] = 0
132
127
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
133
128
  return code_id_dict
@@ -280,12 +275,10 @@ def bond_zh_hs_cov_pre_min(symbol: str = "sh113570") -> pd.DataFrame:
280
275
  params = {
281
276
  "fields1": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13",
282
277
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58",
283
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
284
278
  "ndays": "1",
285
279
  "iscr": "1",
286
280
  "iscca": "0",
287
281
  "secid": f"{market_type[symbol[:2]]}.{symbol[2:]}",
288
- "_": "1623766962675",
289
282
  }
290
283
  r = requests.get(url, params=params)
291
284
  data_json = r.json()
@@ -329,10 +322,10 @@ def bond_zh_cov() -> pd.DataFrame:
329
322
  "reportName": "RPT_BOND_CB_LIST",
330
323
  "columns": "ALL",
331
324
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,"
332
- "f235~10~SECURITY_CODE~TRANSFER_PRICE,f236~10~SECURITY_CODE~TRANSFER_VALUE,"
333
- "f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,"
334
- "f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,"
335
- "f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
325
+ "f235~10~SECURITY_CODE~TRANSFER_PRICE,f236~10~SECURITY_CODE~TRANSFER_VALUE,"
326
+ "f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,"
327
+ "f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,"
328
+ "f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
336
329
  "source": "WEB",
337
330
  "client": "WEB",
338
331
  }
@@ -420,6 +413,7 @@ def bond_zh_cov() -> pd.DataFrame:
420
413
  "_",
421
414
  "_",
422
415
  "_",
416
+ "_",
423
417
  ]
424
418
  big_df = big_df[
425
419
  [
@@ -478,7 +472,7 @@ def bond_cov_comparison() -> pd.DataFrame:
478
472
  url = "https://16.push2.eastmoney.com/api/qt/clist/get"
479
473
  params = {
480
474
  "pn": "1",
481
- "pz": "5000",
475
+ "pz": "100",
482
476
  "po": "1",
483
477
  "np": "1",
484
478
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -487,15 +481,9 @@ def bond_cov_comparison() -> pd.DataFrame:
487
481
  "fid": "f243",
488
482
  "fs": "b:MK0354",
489
483
  "fields": "f1,f152,f2,f3,f12,f13,f14,f227,f228,f229,f230,f231,f232,f233,f234,"
490
- "f235,f236,f237,f238,f239,f240,f241,f242,f26,f243",
491
- "_": "1590386857527",
484
+ "f235,f236,f237,f238,f239,f240,f241,f242,f26,f243",
492
485
  }
493
- r = requests.get(url, params=params)
494
- text_data = r.text
495
- json_data = demjson.decode(text_data)
496
- temp_df = pd.DataFrame(json_data["data"]["diff"])
497
- temp_df.reset_index(inplace=True)
498
- temp_df["index"] = range(1, len(temp_df) + 1)
486
+ temp_df = fetch_paginated_data(url, params)
499
487
  temp_df.columns = [
500
488
  "序号",
501
489
  "_",
@@ -575,23 +563,22 @@ def bond_zh_cov_info(
575
563
  "reportName": "RPT_BOND_CB_LIST",
576
564
  "columns": "ALL",
577
565
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
578
- "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
579
- "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
580
- "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
566
+ "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
567
+ "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
568
+ "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
581
569
  "quoteType": "0",
582
570
  "source": "WEB",
583
571
  "client": "WEB",
584
572
  "filter": f'(SECURITY_CODE="{symbol}")',
585
- "_": "1654952140613",
586
573
  }
587
574
  if indicator == "基本信息":
588
575
  params.update(
589
576
  {
590
577
  "reportName": indicator_map[indicator],
591
578
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
592
- "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
593
- "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
594
- "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
579
+ "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
580
+ "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
581
+ "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
595
582
  }
596
583
  )
597
584
  r = requests.get(url, params=params)
@@ -633,12 +620,16 @@ def bond_zh_cov_info(
633
620
  data_json = r.json()
634
621
  temp_df = pd.DataFrame.from_dict(data_json["result"]["data"])
635
622
  return temp_df
623
+ else:
624
+ return pd.DataFrame()
636
625
 
637
626
 
638
627
  def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
639
628
  """
640
629
  https://data.eastmoney.com/kzz/detail/113527.html
641
630
  东方财富网-数据中心-新股数据-可转债数据-价值分析-溢价率分析
631
+ :param symbol: 可转债代码
632
+ :type symbol: str
642
633
  :return: 可转债价值分析
643
634
  :rtype: pandas.DataFrame
644
635
  """
@@ -653,7 +644,6 @@ def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
653
644
  "filter": f'(zcode="{symbol}")',
654
645
  "p": "1",
655
646
  "ps": "8000",
656
- "_": "1648629088839",
657
647
  }
658
648
  r = requests.get(url, params=params)
659
649
  data_json = r.json()
@@ -671,6 +661,7 @@ def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
671
661
  "-",
672
662
  "-",
673
663
  "-",
664
+ "-",
674
665
  ]
675
666
  temp_df = temp_df[
676
667
  [