akshare 1.13.46__py3-none-any.whl → 1.17.99__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. akshare/__init__.py +757 -161
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +3 -7
  4. akshare/air/cons.py +1 -0
  5. akshare/air/crypto.js +1 -1
  6. akshare/air/outcrypto.js +1 -1
  7. akshare/air/sunrise_tad.py +32 -17
  8. akshare/article/cons.py +1 -0
  9. akshare/article/epu_index.py +4 -3
  10. akshare/article/ff_factor.py +19 -8
  11. akshare/article/fred_md.py +4 -1
  12. akshare/article/risk_rv.py +3 -8
  13. akshare/bank/bank_cbirc_2020.py +11 -11
  14. akshare/bank/cons.py +7 -6
  15. akshare/bond/bond_buy_back_em.py +228 -0
  16. akshare/bond/bond_cb_sina.py +1 -0
  17. akshare/bond/bond_cb_ths.py +17 -9
  18. akshare/bond/bond_cbond.py +19 -14
  19. akshare/bond/bond_china.py +38 -39
  20. akshare/bond/bond_china_money.py +75 -48
  21. akshare/bond/bond_convert.py +10 -9
  22. akshare/bond/bond_em.py +37 -17
  23. akshare/bond/bond_info_cm.py +28 -8
  24. akshare/bond/bond_issue_cninfo.py +73 -30
  25. akshare/bond/bond_summary.py +38 -37
  26. akshare/bond/bond_zh_cov.py +31 -40
  27. akshare/bond/bond_zh_sina.py +61 -51
  28. akshare/bond/cons.py +14 -11
  29. akshare/cal/__init__.py +0 -0
  30. akshare/cal/rv.py +170 -0
  31. akshare/cost/cost_living.py +7 -5
  32. akshare/crypto/__init__.py +1 -1
  33. akshare/crypto/crypto_bitcoin_cme.py +9 -7
  34. akshare/crypto/crypto_hold.py +4 -2
  35. akshare/currency/currency.py +1 -0
  36. akshare/currency/currency_china_bank_sina.py +11 -6
  37. akshare/currency/currency_safe.py +7 -6
  38. akshare/data/__init__.py +1 -1
  39. akshare/data/cninfo.js +1 -1
  40. akshare/datasets.py +10 -21
  41. akshare/economic/cons.py +10 -3
  42. akshare/economic/macro_australia.py +74 -69
  43. akshare/economic/macro_bank.py +95 -653
  44. akshare/economic/macro_canada.py +92 -81
  45. akshare/economic/macro_china.py +163 -117
  46. akshare/economic/macro_china_hk.py +0 -1
  47. akshare/economic/macro_china_nbs.py +24 -7
  48. akshare/economic/macro_euro.py +103 -56
  49. akshare/economic/macro_finance_ths.py +135 -0
  50. akshare/economic/macro_germany.py +1 -1
  51. akshare/economic/macro_info_ws.py +100 -0
  52. akshare/economic/macro_japan.py +0 -1
  53. akshare/economic/macro_other.py +1 -6
  54. akshare/economic/macro_swiss.py +2 -3
  55. akshare/economic/macro_uk.py +1 -1
  56. akshare/economic/macro_usa.py +7 -9
  57. akshare/economic/marco_cnbs.py +11 -6
  58. akshare/energy/energy_carbon.py +94 -126
  59. akshare/energy/energy_oil_em.py +1 -2
  60. akshare/event/cons.py +1 -0
  61. akshare/event/migration.py +3 -2
  62. akshare/exceptions.py +43 -0
  63. akshare/file_fold/calendar.json +245 -2
  64. akshare/forex/__init__.py +0 -0
  65. akshare/forex/cons.py +192 -0
  66. akshare/forex/forex_em.py +149 -0
  67. akshare/fortune/fortune_500.py +15 -48
  68. akshare/fortune/fortune_bloomberg.py +6 -3
  69. akshare/fortune/fortune_forbes_500.py +3 -6
  70. akshare/fortune/fortune_hurun.py +2 -1
  71. akshare/fortune/fortune_xincaifu_500.py +17 -14
  72. akshare/fund/fund_amac.py +38 -15
  73. akshare/fund/fund_announcement_em.py +145 -0
  74. akshare/fund/fund_aum_em.py +49 -35
  75. akshare/fund/fund_em.py +251 -220
  76. akshare/fund/fund_etf_em.py +44 -35
  77. akshare/fund/fund_etf_sina.py +76 -27
  78. akshare/fund/fund_etf_ths.py +95 -0
  79. akshare/fund/fund_fee_em.py +172 -0
  80. akshare/fund/fund_fhsp_em.py +42 -32
  81. akshare/fund/fund_init_em.py +8 -5
  82. akshare/fund/fund_lof_em.py +12 -19
  83. akshare/fund/fund_manager.py +25 -11
  84. akshare/fund/fund_overview_em.py +42 -0
  85. akshare/fund/fund_portfolio_em.py +78 -66
  86. akshare/fund/fund_position_lg.py +19 -8
  87. akshare/fund/fund_rank_em.py +90 -84
  88. akshare/fund/fund_rating.py +33 -12
  89. akshare/fund/fund_report_cninfo.py +63 -48
  90. akshare/fund/fund_scale_em.py +24 -13
  91. akshare/fund/fund_scale_sina.py +20 -10
  92. akshare/fund/fund_xq.py +3 -2
  93. akshare/futures/cons.py +141 -46
  94. akshare/futures/cot.py +89 -88
  95. akshare/futures/futures_basis.py +99 -33
  96. akshare/futures/futures_comex_em.py +1 -0
  97. akshare/futures/futures_comm_ctp.py +13 -2
  98. akshare/futures/futures_contract_detail.py +59 -9
  99. akshare/futures/futures_daily_bar.py +75 -62
  100. akshare/futures/futures_foreign.py +14 -8
  101. akshare/futures/futures_hf_em.py +215 -61
  102. akshare/futures/futures_hist_em.py +191 -0
  103. akshare/futures/futures_hq_sina.py +79 -61
  104. akshare/futures/futures_index_ccidx.py +24 -82
  105. akshare/futures/futures_inventory_99.py +70 -272
  106. akshare/futures/futures_inventory_em.py +14 -11
  107. akshare/futures/futures_news_shmet.py +2 -2
  108. akshare/futures/futures_roll_yield.py +11 -24
  109. akshare/futures/futures_rule.py +7 -3
  110. akshare/futures/futures_rule_em.py +38 -0
  111. akshare/futures/futures_settlement_price_sgx.py +21 -6
  112. akshare/futures/futures_stock_js.py +1 -2
  113. akshare/futures/futures_to_spot.py +43 -39
  114. akshare/futures/futures_warehouse_receipt.py +53 -48
  115. akshare/futures/futures_zh_sina.py +4 -4
  116. akshare/futures/receipt.py +298 -165
  117. akshare/futures/requests_fun.py +16 -3
  118. akshare/futures/symbol_var.py +32 -13
  119. akshare/futures_derivative/cons.py +100 -103
  120. akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
  121. akshare/futures_derivative/futures_contract_info_czce.py +2 -0
  122. akshare/futures_derivative/futures_contract_info_dce.py +43 -17
  123. akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
  124. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  125. akshare/futures_derivative/futures_contract_info_shfe.py +7 -8
  126. akshare/futures_derivative/futures_cot_sina.py +28 -19
  127. akshare/futures_derivative/futures_index_sina.py +25 -13
  128. akshare/fx/cons.py +12 -7
  129. akshare/fx/currency_investing.py +19 -285
  130. akshare/fx/fx_c_swap_cm.py +62 -0
  131. akshare/fx/fx_quote.py +3 -2
  132. akshare/fx/fx_quote_baidu.py +2 -1
  133. akshare/hf/__init__.py +1 -1
  134. akshare/hf/hf_sp500.py +8 -7
  135. akshare/index/cons.py +132 -28
  136. akshare/index/index_cflp.py +29 -26
  137. akshare/index/index_cni.py +89 -91
  138. akshare/index/index_cons.py +26 -10
  139. akshare/index/index_csindex.py +68 -0
  140. akshare/index/index_cx.py +263 -62
  141. akshare/index/index_drewry.py +17 -16
  142. akshare/index/index_eri.py +1 -0
  143. akshare/index/index_global_em.py +167 -0
  144. akshare/index/index_global_sina.py +82 -0
  145. akshare/index/index_kq_fz.py +17 -14
  146. akshare/index/index_kq_ss.py +1 -0
  147. akshare/index/index_option_qvix.py +351 -16
  148. akshare/index/index_research_sw.py +38 -38
  149. akshare/index/index_spot.py +9 -5
  150. akshare/index/index_stock_hk.py +6 -10
  151. akshare/index/index_stock_us_sina.py +1 -1
  152. akshare/index/index_stock_zh.py +193 -101
  153. akshare/index/index_stock_zh_csindex.py +15 -369
  154. akshare/index/index_sugar.py +18 -4
  155. akshare/index/index_sw.py +62 -34
  156. akshare/index/index_yw.py +53 -75
  157. akshare/index/index_zh_em.py +15 -82
  158. akshare/interest_rate/interbank_rate_em.py +14 -10
  159. akshare/movie/artist_yien.py +32 -5
  160. akshare/movie/jm.js +0 -1
  161. akshare/movie/movie_yien.py +92 -18
  162. akshare/movie/video_yien.py +28 -5
  163. akshare/news/__init__.py +1 -1
  164. akshare/news/news_baidu.py +395 -220
  165. akshare/news/news_cctv.py +38 -38
  166. akshare/news/news_stock.py +49 -13
  167. akshare/nlp/nlp_interface.py +7 -8
  168. akshare/option/cons.py +12 -12
  169. akshare/option/option_comm_qihuo.py +86 -0
  170. akshare/option/option_commodity.py +355 -211
  171. akshare/option/option_commodity_sina.py +22 -26
  172. akshare/option/option_contract_info_ctp.py +63 -0
  173. akshare/option/option_current_sse.py +61 -0
  174. akshare/option/option_current_szse.py +84 -0
  175. akshare/option/option_czce.py +37 -9
  176. akshare/option/option_daily_stats_sse_szse.py +145 -0
  177. akshare/option/option_em.py +4 -8
  178. akshare/option/option_finance.py +60 -12
  179. akshare/option/option_finance_sina.py +28 -26
  180. akshare/option/option_lhb_em.py +62 -57
  181. akshare/option/option_margin.py +62 -0
  182. akshare/option/option_premium_analysis_em.py +58 -53
  183. akshare/option/option_risk_analysis_em.py +11 -8
  184. akshare/option/option_risk_indicator_sse.py +18 -16
  185. akshare/option/option_value_analysis_em.py +62 -55
  186. akshare/other/__init__.py +1 -1
  187. akshare/other/other_car_cpca.py +20 -20
  188. akshare/pro/__init__.py +0 -1
  189. akshare/pro/client.py +6 -4
  190. akshare/pro/cons.py +3 -2
  191. akshare/pro/data_pro.py +6 -5
  192. akshare/qdii/__init__.py +0 -0
  193. akshare/qdii/qdii_jsl.py +233 -0
  194. akshare/qhkc/__init__.py +1 -6
  195. akshare/qhkc/qhkc_api.py +64 -22
  196. akshare/qhkc_web/__init__.py +1 -6
  197. akshare/qhkc_web/qhkc_fund.py +10 -6
  198. akshare/qhkc_web/qhkc_index.py +28 -14
  199. akshare/qhkc_web/qhkc_tool.py +62 -59
  200. akshare/rate/__init__.py +1 -1
  201. akshare/rate/repo_rate.py +36 -32
  202. akshare/reits/__init__.py +1 -1
  203. akshare/reits/reits_basic.py +149 -13
  204. akshare/request.py +117 -0
  205. akshare/spot/__init__.py +1 -1
  206. akshare/spot/spot_hog_soozhu.py +232 -0
  207. akshare/spot/spot_price_qh.py +121 -0
  208. akshare/spot/spot_sge.py +70 -9
  209. akshare/stock/cons.py +60 -23
  210. akshare/stock/stock_allotment_cninfo.py +10 -9
  211. akshare/stock/stock_ask_bid_em.py +3 -78
  212. akshare/stock/stock_board_concept_em.py +160 -35
  213. akshare/stock/stock_board_industry_em.py +163 -70
  214. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  215. akshare/stock/stock_cg_guarantee.py +41 -51
  216. akshare/stock/stock_cg_lawsuit.py +36 -35
  217. akshare/stock/stock_dividend_cninfo.py +36 -16
  218. akshare/stock/stock_dzjy_em.py +347 -260
  219. akshare/stock/stock_fund_em.py +73 -64
  220. akshare/stock/stock_fund_hold.py +1 -2
  221. akshare/stock/stock_gsrl_em.py +1 -0
  222. akshare/stock/stock_hk_comparison_em.py +175 -0
  223. akshare/stock/stock_hk_famous.py +107 -0
  224. akshare/stock/stock_hk_fhpx_ths.py +2 -1
  225. akshare/stock/stock_hk_hot_rank_em.py +1 -0
  226. akshare/stock/stock_hk_sina.py +91 -42
  227. akshare/stock/stock_hold_control_cninfo.py +100 -15
  228. akshare/stock/stock_hold_control_em.py +4 -5
  229. akshare/stock/stock_hold_num_cninfo.py +18 -12
  230. akshare/stock/stock_hot_rank_em.py +4 -1
  231. akshare/stock/stock_hot_search_baidu.py +32 -19
  232. akshare/stock/stock_hot_up_em.py +4 -1
  233. akshare/stock/stock_hsgt_em.py +155 -0
  234. akshare/stock/stock_industry.py +1 -0
  235. akshare/stock/stock_industry_cninfo.py +25 -20
  236. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  237. akshare/stock/stock_industry_sw.py +5 -9
  238. akshare/stock/stock_info.py +31 -19
  239. akshare/stock/stock_info_em.py +17 -11
  240. akshare/stock/stock_intraday_em.py +9 -80
  241. akshare/stock/stock_intraday_sina.py +2 -2
  242. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  243. akshare/stock/stock_new_cninfo.py +32 -19
  244. akshare/stock/stock_news_cx.py +39 -0
  245. akshare/stock/stock_profile_cninfo.py +9 -8
  246. akshare/stock/stock_profile_em.py +302 -0
  247. akshare/stock/stock_rank_forecast.py +8 -6
  248. akshare/stock/stock_repurchase_em.py +7 -2
  249. akshare/stock/stock_share_changes_cninfo.py +18 -14
  250. akshare/stock/stock_share_hold.py +24 -20
  251. akshare/stock/stock_stop.py +6 -6
  252. akshare/stock/stock_summary.py +153 -417
  253. akshare/stock/stock_us_famous.py +19 -11
  254. akshare/stock/stock_us_js.py +3 -2
  255. akshare/stock/stock_us_pink.py +38 -27
  256. akshare/stock/stock_us_sina.py +15 -12
  257. akshare/stock/stock_weibo_nlp.py +18 -20
  258. akshare/stock/stock_xq.py +36 -9
  259. akshare/stock/stock_zh_a_sina.py +58 -80
  260. akshare/stock/stock_zh_a_special.py +240 -243
  261. akshare/stock/stock_zh_a_tick_tx.py +11 -3
  262. akshare/stock/stock_zh_ah_tx.py +23 -26
  263. akshare/stock/stock_zh_b_sina.py +32 -55
  264. akshare/stock/stock_zh_comparison_em.py +250 -0
  265. akshare/stock/stock_zh_kcb_report.py +11 -9
  266. akshare/stock/stock_zh_kcb_sina.py +67 -64
  267. akshare/stock_a/__init__.py +0 -0
  268. akshare/stock_a/stock_board_concept_name_em.py +170 -0
  269. akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
  270. akshare/stock_a/stock_zh_a_spot.py +212 -0
  271. akshare/stock_feature/cons.py +1 -0
  272. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  273. akshare/stock_feature/stock_a_high_low.py +5 -2
  274. akshare/stock_feature/stock_a_indicator.py +15 -57
  275. akshare/stock_feature/stock_a_pe_and_pb.py +39 -9
  276. akshare/stock_feature/stock_account_em.py +0 -1
  277. akshare/stock_feature/stock_all_pb.py +2 -1
  278. akshare/stock_feature/stock_analyst_em.py +36 -30
  279. akshare/stock_feature/stock_board_concept_ths.py +144 -252
  280. akshare/stock_feature/stock_board_industry_ths.py +137 -401
  281. akshare/stock_feature/stock_buffett_index_lg.py +10 -8
  282. akshare/stock_feature/stock_classify_sina.py +3 -6
  283. akshare/stock_feature/stock_comment_em.py +81 -144
  284. akshare/stock_feature/stock_concept_futu.py +183 -0
  285. akshare/stock_feature/stock_congestion_lg.py +2 -1
  286. akshare/stock_feature/stock_cyq_em.py +5 -11
  287. akshare/stock_feature/stock_disclosure_cninfo.py +20 -10
  288. akshare/stock_feature/stock_dxsyl_em.py +121 -74
  289. akshare/stock_feature/stock_ebs_lg.py +5 -4
  290. akshare/stock_feature/stock_esg_sina.py +33 -15
  291. akshare/stock_feature/stock_fhps_em.py +62 -26
  292. akshare/stock_feature/stock_fhps_ths.py +34 -7
  293. akshare/stock_feature/stock_fund_flow.py +38 -25
  294. akshare/stock_feature/stock_gddh_em.py +19 -11
  295. akshare/stock_feature/stock_gdfx_em.py +226 -113
  296. akshare/stock_feature/stock_gdhs.py +75 -50
  297. akshare/stock_feature/stock_gdzjc_em.py +21 -10
  298. akshare/stock_feature/stock_gpzy_em.py +78 -46
  299. akshare/stock_feature/stock_gxl_lg.py +3 -2
  300. akshare/stock_feature/stock_hist_em.py +158 -237
  301. akshare/stock_feature/stock_hist_tx.py +13 -10
  302. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  303. akshare/stock_feature/stock_hot_xq.py +4 -6
  304. akshare/stock_feature/stock_hsgt_em.py +269 -97
  305. akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
  306. akshare/stock_feature/stock_hsgt_min_em.py +13 -16
  307. akshare/stock_feature/stock_info.py +8 -81
  308. akshare/stock_feature/stock_inner_trade_xq.py +38 -31
  309. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  310. akshare/stock_feature/stock_jgdy_em.py +43 -40
  311. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  312. akshare/stock_feature/stock_lhb_em.py +165 -35
  313. akshare/stock_feature/stock_lhb_sina.py +93 -46
  314. akshare/stock_feature/stock_margin_em.py +101 -0
  315. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -17
  316. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +7 -7
  317. akshare/stock_feature/stock_market_legu.py +4 -2
  318. akshare/stock_feature/stock_pankou_em.py +71 -35
  319. akshare/stock_feature/stock_qsjy_em.py +13 -4
  320. akshare/stock_feature/stock_report_em.py +152 -8
  321. akshare/stock_feature/stock_research_report_em.py +55 -20
  322. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  323. akshare/stock_feature/stock_sy_em.py +20 -15
  324. akshare/stock_feature/stock_technology_ths.py +152 -120
  325. akshare/stock_feature/stock_tfp_em.py +37 -14
  326. akshare/stock_feature/stock_three_report_em.py +120 -78
  327. akshare/stock_feature/stock_ttm_lyr.py +18 -9
  328. akshare/stock_feature/stock_value_em.py +83 -0
  329. akshare/stock_feature/stock_yjbb_em.py +58 -32
  330. akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
  331. akshare/stock_feature/stock_yjyg_em.py +1 -1
  332. akshare/stock_feature/stock_yzxdr_em.py +24 -22
  333. akshare/stock_feature/stock_zdhtmx_em.py +20 -6
  334. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  335. akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
  336. akshare/stock_feature/stock_ztb_em.py +39 -24
  337. akshare/stock_fundamental/__init__.py +1 -1
  338. akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
  339. akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
  340. akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +203 -59
  341. akshare/stock_fundamental/stock_finance_ths.py +524 -57
  342. akshare/stock_fundamental/stock_finance_us_em.py +268 -0
  343. akshare/stock_fundamental/stock_gbjg_em.py +80 -0
  344. akshare/stock_fundamental/stock_hold.py +26 -17
  345. akshare/stock_fundamental/stock_ipo_declare.py +1 -0
  346. akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
  347. akshare/stock_fundamental/stock_kcb_sse.py +26 -25
  348. akshare/stock_fundamental/stock_notice.py +41 -18
  349. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  350. akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
  351. akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
  352. akshare/stock_fundamental/stock_recommend.py +20 -4
  353. akshare/stock_fundamental/stock_register_em.py +448 -0
  354. akshare/stock_fundamental/stock_zygc.py +5 -62
  355. akshare/tool/trade_date_hist.py +1 -1
  356. akshare/utils/context.py +43 -0
  357. akshare/utils/demjson.py +2009 -1338
  358. akshare/utils/func.py +49 -2
  359. akshare/utils/multi_decrypt.py +53 -0
  360. akshare/utils/token_process.py +6 -5
  361. akshare/utils/tqdm.py +13 -3
  362. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/METADATA +56 -86
  363. akshare-1.17.99.dist-info/RECORD +409 -0
  364. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
  365. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
  366. tests/test_func.py +3 -5
  367. akshare/bond/bond_futures.py +0 -50
  368. akshare/bond/bond_investing.py +0 -139
  369. akshare/crypto/crypto_hist_investing.py +0 -249
  370. akshare/fortune/fortune_it_juzi.py +0 -123
  371. akshare/fund/fund_announcement.py +0 -56
  372. akshare/futures/futures_international.py +0 -170
  373. akshare/futures/futures_news_baidu.py +0 -54
  374. akshare/futures/inventory_data.py +0 -100
  375. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  376. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  377. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  378. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  379. akshare/index/index_fear_greed_funddb.py +0 -78
  380. akshare/index/index_investing.py +0 -232
  381. akshare/sport/__init__.py +0 -6
  382. akshare/sport/sport_olympic.py +0 -27
  383. akshare/sport/sport_olympic_winter.py +0 -39
  384. akshare/stock_feature/stock_wencai.py +0 -104
  385. akshare/stock_fundamental/stock_mda_ym.py +0 -40
  386. akshare/stock_fundamental/stock_register.py +0 -292
  387. akshare-1.13.46.dist-info/RECORD +0 -380
  388. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,18 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2023/8/11 11:44
4
+ Date: 2025/2/15 22:00
5
5
  Desc: 东方财富网-个股-股票信息
6
6
  https://quote.eastmoney.com/concept/sh603777.html?from=classic
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
11
- from akshare.stock_feature.stock_hist_em import code_id_map_em
12
-
13
12
 
14
- def stock_individual_info_em(symbol: str = "603777", timeout: float = None) -> pd.DataFrame:
13
+ def stock_individual_info_em(
14
+ symbol: str = "603777", timeout: float = None
15
+ ) -> pd.DataFrame:
15
16
  """
16
17
  东方财富-个股-股票信息
17
18
  https://quote.eastmoney.com/concept/sh603777.html?from=classic
@@ -22,15 +23,19 @@ def stock_individual_info_em(symbol: str = "603777", timeout: float = None) -> p
22
23
  :return: 股票信息
23
24
  :rtype: pandas.DataFrame
24
25
  """
25
- code_id_dict = code_id_map_em()
26
- url = "http://push2.eastmoney.com/api/qt/stock/get"
26
+ url = "https://push2.eastmoney.com/api/qt/stock/get"
27
+ market_code = 1 if symbol.startswith("6") else 0
27
28
  params = {
28
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
29
29
  "fltt": "2",
30
30
  "invt": "2",
31
- "fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
32
- "secid": f"{code_id_dict[symbol]}.{symbol}",
33
- "_": "1640157544804",
31
+ "fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,"
32
+ "f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,"
33
+ "f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,"
34
+ "f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,"
35
+ "f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,"
36
+ "f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,"
37
+ "f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295,f43",
38
+ "secid": f"{market_code}.{symbol}",
34
39
  }
35
40
  r = requests.get(url, params=params, timeout=timeout)
36
41
  data_json = r.json()
@@ -50,6 +55,7 @@ def stock_individual_info_em(symbol: str = "603777", timeout: float = None) -> p
50
55
  "f116": "总市值",
51
56
  "f117": "流通市值",
52
57
  "f189": "上市时间",
58
+ "f43": "最新",
53
59
  }
54
60
  temp_df["index"] = temp_df["index"].map(code_name_map)
55
61
  temp_df = temp_df[pd.notna(temp_df["index"])]
@@ -64,5 +70,5 @@ def stock_individual_info_em(symbol: str = "603777", timeout: float = None) -> p
64
70
 
65
71
 
66
72
  if __name__ == "__main__":
67
- stock_individual_info_em_df = stock_individual_info_em(symbol="000001", timeout=None)
73
+ stock_individual_info_em_df = stock_individual_info_em(symbol="000002")
68
74
  print(stock_individual_info_em_df)
@@ -1,90 +1,17 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/10/14 22:00
4
+ Date: 2025/3/10 18:00
5
5
  Desc: 东财财富-日内分时数据
6
6
  https://quote.eastmoney.com/f1.html?newcode=0.000001
7
7
  """
8
+
8
9
  import json
9
- from functools import lru_cache
10
10
 
11
11
  import pandas as pd
12
12
  import requests
13
13
 
14
14
 
15
- @lru_cache()
16
- def __code_id_map_em() -> dict:
17
- """
18
- 东方财富-股票和市场代码
19
- https://quote.eastmoney.com/center/gridlist.html#hs_a_board
20
- :return: 股票和市场代码
21
- :rtype: dict
22
- """
23
- url = "http://80.push2.eastmoney.com/api/qt/clist/get"
24
- params = {
25
- "pn": "1",
26
- "pz": "50000",
27
- "po": "1",
28
- "np": "1",
29
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
30
- "fltt": "2",
31
- "invt": "2",
32
- "fid": "f3",
33
- "fs": "m:1 t:2,m:1 t:23",
34
- "fields": "f12",
35
- "_": "1623833739532",
36
- }
37
- r = requests.get(url, params=params)
38
- data_json = r.json()
39
- if not data_json["data"]["diff"]:
40
- return dict()
41
- temp_df = pd.DataFrame(data_json["data"]["diff"])
42
- temp_df["market_id"] = 1
43
- temp_df.columns = ["sh_code", "sh_id"]
44
- code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
45
- params = {
46
- "pn": "1",
47
- "pz": "50000",
48
- "po": "1",
49
- "np": "1",
50
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
51
- "fltt": "2",
52
- "invt": "2",
53
- "fid": "f3",
54
- "fs": "m:0 t:6,m:0 t:80",
55
- "fields": "f12",
56
- "_": "1623833739532",
57
- }
58
- r = requests.get(url, params=params)
59
- data_json = r.json()
60
- if not data_json["data"]["diff"]:
61
- return dict()
62
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
63
- temp_df_sz["sz_id"] = 0
64
- code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
65
- params = {
66
- "pn": "1",
67
- "pz": "50000",
68
- "po": "1",
69
- "np": "1",
70
- "ut": "bd1d9ddb04089700cf9c27f6f7426281",
71
- "fltt": "2",
72
- "invt": "2",
73
- "fid": "f3",
74
- "fs": "m:0 t:81 s:2048",
75
- "fields": "f12",
76
- "_": "1623833739532",
77
- }
78
- r = requests.get(url, params=params)
79
- data_json = r.json()
80
- if not data_json["data"]["diff"]:
81
- return dict()
82
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
83
- temp_df_sz["bj_id"] = 0
84
- code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["bj_id"])))
85
- return code_id_dict
86
-
87
-
88
15
  def __event_stream(url, params):
89
16
  # 使用 stream=True 参数来启用流式请求
90
17
  response = requests.get(url, params=params, stream=True)
@@ -101,14 +28,14 @@ def __event_stream(url, params):
101
28
 
102
29
  def stock_intraday_em(symbol: str = "000001") -> pd.DataFrame:
103
30
  """
104
- 东财财富-分时数据
31
+ 东方财富-分时数据
105
32
  https://quote.eastmoney.com/f1.html?newcode=0.000001
106
33
  :param symbol: 股票代码
107
34
  :type symbol: str
108
35
  :return: 分时数据
109
36
  :rtype: pandas.DataFrame
110
37
  """
111
- code_id_map_em_dict = __code_id_map_em()
38
+ market_code = 1 if symbol.startswith("6") else 0
112
39
  url = "https://70.push2.eastmoney.com/api/qt/stock/details/sse"
113
40
  params = {
114
41
  "fields1": "f1,f2,f3,f4",
@@ -117,7 +44,7 @@ def stock_intraday_em(symbol: str = "000001") -> pd.DataFrame:
117
44
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
118
45
  "fltt": "2",
119
46
  "pos": "-0",
120
- "secid": f"{code_id_map_em_dict[symbol]}.{symbol}",
47
+ "secid": f"{market_code}.{symbol}",
121
48
  "wbp2u": "|0|0|0|web",
122
49
  }
123
50
 
@@ -130,11 +57,13 @@ def stock_intraday_em(symbol: str = "000001") -> pd.DataFrame:
130
57
  temp_df = pd.DataFrame(
131
58
  [item.split(",") for item in event_json["data"]["details"]]
132
59
  )
133
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
60
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
134
61
  break
135
62
 
136
63
  big_df.columns = ["时间", "成交价", "手数", "-", "买卖盘性质"]
137
- big_df['买卖盘性质'] = big_df['买卖盘性质'].map({'2': '买盘', '1': '卖盘', '4': '中性盘'})
64
+ big_df["买卖盘性质"] = big_df["买卖盘性质"].map(
65
+ {"2": "买盘", "1": "卖盘", "4": "中性盘"}
66
+ )
138
67
  big_df = big_df[["时间", "成交价", "手数", "买卖盘性质"]]
139
68
  big_df["成交价"] = pd.to_numeric(big_df["成交价"], errors="coerce")
140
69
  big_df["手数"] = pd.to_numeric(big_df["手数"], errors="coerce")
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/22 17:00
4
+ Date: 2025/9/28 13:30
5
5
  Desc: 新浪财经-日内分时数据
6
6
  https://quote.eastmoney.com/f1.html?newcode=0.000001
7
7
  """
@@ -64,5 +64,5 @@ def stock_intraday_sina(
64
64
 
65
65
 
66
66
  if __name__ == "__main__":
67
- stock_intraday_sina_df = stock_intraday_sina(symbol="sz000001", date="20240321")
67
+ stock_intraday_sina_df = stock_intraday_sina(symbol="sz000001", date="20250926")
68
68
  print(stock_intraday_sina_df)
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/2/18 12:20
4
+ Date: 2024/4/25 15:00
5
5
  Desc: 巨潮资讯-个股-上市相关
6
6
  https://webapi.cninfo.com.cn/#/company
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from py_mini_racer import py_mini_racer
11
+ import py_mini_racer
11
12
 
12
13
  from akshare.datasets import get_ths_js
13
14
 
@@ -21,7 +22,7 @@ def _get_file_content_ths(file: str = "cninfo.js") -> str:
21
22
  :rtype: str
22
23
  """
23
24
  setting_file_path = get_ths_js(file)
24
- with open(setting_file_path) as f:
25
+ with open(setting_file_path, encoding="utf8") as f:
25
26
  file_data = f.read()
26
27
  return file_data
27
28
 
@@ -77,19 +78,33 @@ def stock_ipo_summary_cninfo(symbol: str = "600030") -> pd.DataFrame:
77
78
  "上网发行中签率",
78
79
  "主承销商",
79
80
  ]
80
- temp_df["招股公告日期"] = pd.to_datetime(temp_df["招股公告日期"], errors="coerce").dt.date
81
- temp_df["中签率公告日"] = pd.to_datetime(temp_df["中签率公告日"], errors="coerce").dt.date
82
- temp_df["上网发行日期"] = pd.to_datetime(temp_df["上网发行日期"], errors="coerce").dt.date
81
+ temp_df["招股公告日期"] = pd.to_datetime(
82
+ temp_df["招股公告日期"], errors="coerce"
83
+ ).dt.date
84
+ temp_df["中签率公告日"] = pd.to_datetime(
85
+ temp_df["中签率公告日"], errors="coerce"
86
+ ).dt.date
87
+ temp_df["上网发行日期"] = pd.to_datetime(
88
+ temp_df["上网发行日期"], errors="coerce"
89
+ ).dt.date
83
90
  temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], errors="coerce").dt.date
84
91
  temp_df["每股面值"] = pd.to_numeric(temp_df["每股面值"], errors="coerce")
85
92
  temp_df["总发行数量"] = pd.to_numeric(temp_df["总发行数量"], errors="coerce")
86
- temp_df["发行前每股净资产"] = pd.to_numeric(temp_df["发行前每股净资产"], errors="coerce")
87
- temp_df["摊薄发行市盈率"] = pd.to_numeric(temp_df["摊薄发行市盈率"], errors="coerce")
93
+ temp_df["发行前每股净资产"] = pd.to_numeric(
94
+ temp_df["发行前每股净资产"], errors="coerce"
95
+ )
96
+ temp_df["摊薄发行市盈率"] = pd.to_numeric(
97
+ temp_df["摊薄发行市盈率"], errors="coerce"
98
+ )
88
99
  temp_df["募集资金净额"] = pd.to_numeric(temp_df["募集资金净额"], errors="coerce")
89
100
  temp_df["发行价格"] = pd.to_numeric(temp_df["发行价格"], errors="coerce")
90
101
  temp_df["发行费用总额"] = pd.to_numeric(temp_df["发行费用总额"], errors="coerce")
91
- temp_df["发行后每股净资产"] = pd.to_numeric(temp_df["发行后每股净资产"], errors="coerce")
92
- temp_df["上网发行中签率"] = pd.to_numeric(temp_df["上网发行中签率"], errors="coerce")
102
+ temp_df["发行后每股净资产"] = pd.to_numeric(
103
+ temp_df["发行后每股净资产"], errors="coerce"
104
+ )
105
+ temp_df["上网发行中签率"] = pd.to_numeric(
106
+ temp_df["上网发行中签率"], errors="coerce"
107
+ )
93
108
  return temp_df
94
109
 
95
110
 
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/6/12 17:29
4
+ Date: 2024/7/25 14:30
5
5
  Desc: 巨潮资讯-数据中心-新股数据
6
- http://webapi.cninfo.com.cn/#/xinguList
6
+ https://webapi.cninfo.com.cn/#/xinguList
7
7
  """
8
+
8
9
  import pandas as pd
10
+ import py_mini_racer
9
11
  import requests
10
- from py_mini_racer import py_mini_racer
11
12
 
12
13
  from akshare.datasets import get_ths_js
13
14
 
@@ -21,7 +22,7 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
21
22
  :rtype: str
22
23
  """
23
24
  setting_file_path = get_ths_js(file)
24
- with open(setting_file_path) as f:
25
+ with open(setting_file_path, encoding="utf-8") as f:
25
26
  file_data = f.read()
26
27
  return file_data
27
28
 
@@ -29,11 +30,11 @@ def _get_file_content_cninfo(file: str = "cninfo.js") -> str:
29
30
  def stock_new_gh_cninfo() -> pd.DataFrame:
30
31
  """
31
32
  巨潮资讯-数据中心-新股数据-新股过会
32
- http://webapi.cninfo.com.cn/#/xinguList
33
+ https://webapi.cninfo.com.cn/#/xinguList
33
34
  :return: 新股过会
34
35
  :rtype: pandas.DataFrame
35
36
  """
36
- url = "http://webapi.cninfo.com.cn/api/sysapi/p_sysapi1098"
37
+ url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1098"
37
38
  js_code = py_mini_racer.MiniRacer()
38
39
  js_content = _get_file_content_cninfo("cninfo.js")
39
40
  js_code.eval(js_content)
@@ -46,11 +47,12 @@ def stock_new_gh_cninfo() -> pd.DataFrame:
46
47
  "Cache-Control": "no-cache",
47
48
  "Content-Length": "0",
48
49
  "Host": "webapi.cninfo.com.cn",
49
- "Origin": "http://webapi.cninfo.com.cn",
50
+ "Origin": "https://webapi.cninfo.com.cn",
50
51
  "Pragma": "no-cache",
51
52
  "Proxy-Connection": "keep-alive",
52
- "Referer": "http://webapi.cninfo.com.cn/",
53
- "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",
53
+ "Referer": "https://webapi.cninfo.com.cn/",
54
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
55
+ "Chrome/93.0.4577.63 Safari/537.36",
54
56
  "X-Requested-With": "XMLHttpRequest",
55
57
  }
56
58
  r = requests.post(url, headers=headers)
@@ -65,18 +67,20 @@ def stock_new_gh_cninfo() -> pd.DataFrame:
65
67
  "审核公告日",
66
68
  ]
67
69
  temp_df["上会日期"] = pd.to_datetime(temp_df["上会日期"], errors="coerce").dt.date
68
- temp_df["审核公告日"] = pd.to_datetime(temp_df["审核公告日"], errors="coerce").dt.date
70
+ temp_df["审核公告日"] = pd.to_datetime(
71
+ temp_df["审核公告日"], errors="coerce"
72
+ ).dt.date
69
73
  return temp_df
70
74
 
71
75
 
72
76
  def stock_new_ipo_cninfo() -> pd.DataFrame:
73
77
  """
74
78
  巨潮资讯-数据中心-新股数据-新股发行
75
- http://webapi.cninfo.com.cn/#/xinguList
79
+ https://webapi.cninfo.com.cn/#/xinguList
76
80
  :return: 新股发行
77
81
  :rtype: pandas.DataFrame
78
82
  """
79
- url = "http://webapi.cninfo.com.cn/api/sysapi/p_sysapi1097"
83
+ url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1097"
80
84
  js_code = py_mini_racer.MiniRacer()
81
85
  js_content = _get_file_content_cninfo("cninfo.js")
82
86
  js_code.eval(js_content)
@@ -89,11 +93,12 @@ def stock_new_ipo_cninfo() -> pd.DataFrame:
89
93
  "Cache-Control": "no-cache",
90
94
  "Content-Length": "0",
91
95
  "Host": "webapi.cninfo.com.cn",
92
- "Origin": "http://webapi.cninfo.com.cn",
96
+ "Origin": "https://webapi.cninfo.com.cn",
93
97
  "Pragma": "no-cache",
94
98
  "Proxy-Connection": "keep-alive",
95
- "Referer": "http://webapi.cninfo.com.cn/",
96
- "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",
99
+ "Referer": "https://webapi.cninfo.com.cn/",
100
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
101
+ "Chrome/93.0.4577.63 Safari/537.36",
97
102
  "X-Requested-With": "XMLHttpRequest",
98
103
  }
99
104
  params = {
@@ -135,13 +140,21 @@ def stock_new_ipo_cninfo() -> pd.DataFrame:
135
140
  "上网发行数量",
136
141
  ]
137
142
  ]
138
- temp_df["摇号结果公告日"] = pd.to_datetime(temp_df["摇号结果公告日"], errors="coerce").dt.date
139
- temp_df["中签公告日"] = pd.to_datetime(temp_df["中签公告日"], errors="coerce").dt.date
143
+ temp_df["摇号结果公告日"] = pd.to_datetime(
144
+ temp_df["摇号结果公告日"], errors="coerce"
145
+ ).dt.date
146
+ temp_df["中签公告日"] = pd.to_datetime(
147
+ temp_df["中签公告日"], errors="coerce"
148
+ ).dt.date
140
149
  temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], errors="coerce").dt.date
141
- temp_df["中签缴款日"] = pd.to_datetime(temp_df["中签缴款日"], errors="coerce").dt.date
150
+ temp_df["中签缴款日"] = pd.to_datetime(
151
+ temp_df["中签缴款日"], errors="coerce"
152
+ ).dt.date
142
153
  temp_df["申购日期"] = pd.to_datetime(temp_df["申购日期"], errors="coerce").dt.date
143
154
  temp_df["发行价"] = pd.to_numeric(temp_df["发行价"], errors="coerce")
144
- temp_df["上网发行中签率"] = pd.to_numeric(temp_df["上网发行中签率"], errors="coerce")
155
+ temp_df["上网发行中签率"] = pd.to_numeric(
156
+ temp_df["上网发行中签率"], errors="coerce"
157
+ )
145
158
  temp_df["总发行数量"] = pd.to_numeric(temp_df["总发行数量"], errors="coerce")
146
159
  temp_df["发行市盈率"] = pd.to_numeric(temp_df["发行市盈率"], errors="coerce")
147
160
  temp_df["上网发行数量"] = pd.to_numeric(temp_df["上网发行数量"], errors="coerce")
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ Date: 2024/11/18 16:00
5
+ Desc: 财新网-财新数据通
6
+ https://cxdata.caixin.com/pc/
7
+ """
8
+
9
+ import pandas as pd
10
+
11
+ from akshare.request import make_request_with_retry_json
12
+
13
+
14
+ def stock_news_main_cx() -> pd.DataFrame:
15
+ """
16
+ 财新网-财新数据通
17
+ https://cxdata.caixin.com/pc/
18
+ :return: 特定时间表示的字典
19
+ :rtype: pandas.DataFrame
20
+ """
21
+ url = "https://cxdata.caixin.com/api/dataplus/sjtPc/jxNews"
22
+ params = {
23
+ "pageNum": "1",
24
+ "pageSize": "20000",
25
+ "showLabels": "true",
26
+ }
27
+ data_json = make_request_with_retry_json(url, params=params)
28
+ temp_df = pd.DataFrame(data_json["data"]["data"])
29
+ temp_df = temp_df[["tag", "summary", "intervalTime", "pubTime", "url"]]
30
+ temp_df.columns = ["tag", "summary", "interval_time", "pub_time", "url"]
31
+ temp_df["pub_time"] = pd.to_datetime(
32
+ temp_df["pub_time"], errors="coerce", unit="ms"
33
+ ).astype(str)
34
+ return temp_df
35
+
36
+
37
+ if __name__ == "__main__":
38
+ stock_news_main_cx_df = stock_news_main_cx()
39
+ print(stock_news_main_cx_df)
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/5/29 23:34
4
+ Date: 2024/10/14 22:00
5
5
  Desc: 巨潮资讯-个股-公司概况
6
- http://webapi.cninfo.com.cn/#/company
6
+ https://webapi.cninfo.com.cn/#/company
7
7
  """
8
+
8
9
  import pandas as pd
10
+ import py_mini_racer
9
11
  import requests
10
- from py_mini_racer import py_mini_racer
11
12
 
12
13
  from akshare.datasets import get_ths_js
13
14
 
@@ -21,7 +22,7 @@ def _get_file_content_ths(file: str = "cninfo.js") -> str:
21
22
  :rtype: str
22
23
  """
23
24
  setting_file_path = get_ths_js(file)
24
- with open(setting_file_path) as f:
25
+ with open(setting_file_path, encoding="utf-8") as f:
25
26
  file_data = f.read()
26
27
  return file_data
27
28
 
@@ -29,14 +30,14 @@ def _get_file_content_ths(file: str = "cninfo.js") -> str:
29
30
  def stock_profile_cninfo(symbol: str = "600030") -> pd.DataFrame:
30
31
  """
31
32
  巨潮资讯-个股-公司概况
32
- http://webapi.cninfo.com.cn/#/company
33
+ https://webapi.cninfo.com.cn/#/company
33
34
  :param symbol: 股票代码
34
35
  :type symbol: str
35
36
  :return: 公司概况
36
37
  :rtype: pandas.DataFrame
37
38
  :raise: Exception,如果服务器返回的数据无法被解析
38
39
  """
39
- url = "http://webapi.cninfo.com.cn/api/sysapi/p_sysapi1133"
40
+ url = "https://webapi.cninfo.com.cn/api/sysapi/p_sysapi1133"
40
41
  params = {
41
42
  "scode": symbol,
42
43
  }
@@ -52,10 +53,10 @@ def stock_profile_cninfo(symbol: str = "600030") -> pd.DataFrame:
52
53
  "Content-Length": "0",
53
54
  "Host": "webapi.cninfo.com.cn",
54
55
  "Accept-Enckey": mcode,
55
- "Origin": "http://webapi.cninfo.com.cn",
56
+ "Origin": "https://webapi.cninfo.com.cn",
56
57
  "Pragma": "no-cache",
57
58
  "Proxy-Connection": "keep-alive",
58
- "Referer": "http://webapi.cninfo.com.cn/",
59
+ "Referer": "https://webapi.cninfo.com.cn/",
59
60
  "X-Requested-With": "XMLHttpRequest",
60
61
  }
61
62
  r = requests.post(url, params=params, headers=headers)