akshare 1.12.99__py3-none-any.whl → 1.15.72__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.

Potentially problematic release.


This version of akshare might be problematic. Click here for more details.

Files changed (236) hide show
  1. akshare/__init__.py +441 -138
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +29 -43
  4. akshare/air/sunrise_tad.py +32 -17
  5. akshare/bank/bank_cbirc_2020.py +12 -9
  6. akshare/bond/bond_cb_ths.py +17 -9
  7. akshare/bond/bond_china.py +38 -39
  8. akshare/bond/bond_china_money.py +75 -48
  9. akshare/bond/bond_info_cm.py +28 -8
  10. akshare/bond/bond_issue_cninfo.py +73 -30
  11. akshare/bond/bond_zh_cov.py +1 -1
  12. akshare/bond/bond_zh_sina.py +57 -51
  13. akshare/cal/__init__.py +0 -0
  14. akshare/cal/rv.py +170 -0
  15. akshare/cost/cost_living.py +7 -5
  16. akshare/currency/currency_safe.py +7 -6
  17. akshare/data/cninfo.js +15 -0
  18. akshare/datasets.py +10 -21
  19. akshare/economic/macro_bank.py +95 -653
  20. akshare/economic/macro_china.py +772 -1024
  21. akshare/economic/macro_china_hk.py +65 -243
  22. akshare/economic/macro_china_nbs.py +24 -7
  23. akshare/economic/macro_constitute.py +17 -12
  24. akshare/economic/macro_euro.py +13 -6
  25. akshare/economic/macro_finance_ths.py +133 -0
  26. akshare/economic/macro_info_ws.py +100 -0
  27. akshare/economic/macro_japan.py +5 -4
  28. akshare/economic/macro_other.py +12 -9
  29. akshare/economic/macro_usa.py +376 -1940
  30. akshare/economic/marco_cnbs.py +11 -6
  31. akshare/energy/energy_carbon.py +94 -125
  32. akshare/event/migration.py +3 -2
  33. akshare/exceptions.py +43 -0
  34. akshare/file_fold/calendar.json +245 -2
  35. akshare/fortune/fortune_500.py +15 -48
  36. akshare/fund/fund_amac.py +157 -75
  37. akshare/fund/fund_em.py +191 -184
  38. akshare/fund/fund_etf_em.py +16 -15
  39. akshare/fund/fund_etf_sina.py +71 -23
  40. akshare/fund/fund_etf_ths.py +93 -0
  41. akshare/fund/fund_fee_em.py +98 -0
  42. akshare/fund/fund_portfolio_em.py +60 -50
  43. akshare/fund/fund_rank_em.py +91 -82
  44. akshare/fund/fund_report_cninfo.py +63 -48
  45. akshare/fund/fund_scale_sina.py +20 -10
  46. akshare/fund/fund_xq.py +139 -109
  47. akshare/futures/cons.py +8 -31
  48. akshare/futures/cot.py +185 -137
  49. akshare/futures/futures_basis.py +97 -32
  50. akshare/futures/futures_comm_ctp.py +37 -0
  51. akshare/futures/futures_comm_qihuo.py +74 -45
  52. akshare/futures/futures_daily_bar.py +121 -184
  53. akshare/futures/futures_hf_em.py +66 -61
  54. akshare/futures/futures_hq_sina.py +79 -61
  55. akshare/futures/futures_index_ccidx.py +6 -3
  56. akshare/futures/futures_inventory_99.py +61 -272
  57. akshare/futures/futures_news_shmet.py +4 -2
  58. akshare/futures/futures_roll_yield.py +12 -25
  59. akshare/futures/futures_spot_stock_em.py +19 -13
  60. akshare/futures/futures_stock_js.py +14 -12
  61. akshare/futures/futures_to_spot.py +38 -33
  62. akshare/futures/futures_warehouse_receipt.py +75 -71
  63. akshare/futures/futures_zh_sina.py +5 -5
  64. akshare/futures/symbol_var.py +18 -13
  65. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  66. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  67. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  68. akshare/futures_derivative/futures_cot_sina.py +26 -19
  69. akshare/futures_derivative/futures_spot_sys.py +21 -8
  70. akshare/fx/currency_investing.py +19 -285
  71. akshare/index/index_cflp.py +29 -26
  72. akshare/index/index_cni.py +86 -88
  73. akshare/index/index_cons.py +26 -10
  74. akshare/index/index_cx.py +248 -47
  75. akshare/index/index_drewry.py +17 -16
  76. akshare/index/index_option_qvix.py +329 -0
  77. akshare/index/index_research_fund_sw.py +134 -0
  78. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  79. akshare/index/index_spot.py +9 -5
  80. akshare/index/index_stock_hk.py +35 -16
  81. akshare/index/index_stock_us_sina.py +1 -1
  82. akshare/index/index_stock_zh.py +180 -89
  83. akshare/index/index_stock_zh_csindex.py +15 -369
  84. akshare/index/index_sw.py +62 -34
  85. akshare/index/index_yw.py +46 -23
  86. akshare/index/index_zh_a_scope.py +48 -0
  87. akshare/index/index_zh_em.py +6 -4
  88. akshare/interest_rate/interbank_rate_em.py +14 -9
  89. akshare/movie/artist_yien.py +32 -5
  90. akshare/movie/movie_yien.py +92 -18
  91. akshare/movie/video_yien.py +28 -5
  92. akshare/news/news_baidu.py +78 -44
  93. akshare/news/news_cctv.py +38 -38
  94. akshare/news/news_stock.py +6 -3
  95. akshare/nlp/nlp_interface.py +7 -8
  96. akshare/option/cons.py +11 -11
  97. akshare/option/option_comm_qihuo.py +86 -0
  98. akshare/option/option_commodity.py +178 -51
  99. akshare/option/option_daily_stats_sse_szse.py +146 -0
  100. akshare/option/option_em.py +147 -138
  101. akshare/option/option_finance_sina.py +160 -137
  102. akshare/option/option_lhb_em.py +62 -56
  103. akshare/option/option_risk_indicator_sse.py +17 -14
  104. akshare/other/other_car_cpca.py +934 -0
  105. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  106. akshare/qdii/__init__.py +0 -0
  107. akshare/qdii/qdii_jsl.py +233 -0
  108. akshare/request.py +117 -0
  109. akshare/spot/spot_hog_soozhu.py +232 -0
  110. akshare/spot/spot_price_qh.py +121 -0
  111. akshare/spot/spot_sge.py +63 -10
  112. akshare/stock/stock_allotment_cninfo.py +10 -9
  113. akshare/stock/stock_board_concept_em.py +23 -14
  114. akshare/stock/stock_board_industry_em.py +40 -34
  115. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  116. akshare/stock/stock_cg_guarantee.py +41 -51
  117. akshare/stock/stock_cg_lawsuit.py +36 -35
  118. akshare/stock/stock_dividend_cninfo.py +12 -6
  119. akshare/stock/stock_dzjy_em.py +347 -260
  120. akshare/stock/stock_fund_em.py +332 -84
  121. akshare/stock/stock_hk_famous.py +108 -0
  122. akshare/stock/stock_hk_sina.py +8 -7
  123. akshare/stock/stock_hold_control_cninfo.py +100 -15
  124. akshare/stock/stock_hold_control_em.py +4 -3
  125. akshare/stock/stock_hold_num_cninfo.py +18 -12
  126. akshare/stock/stock_hot_rank_em.py +2 -1
  127. akshare/stock/stock_hot_search_baidu.py +5 -2
  128. akshare/stock/stock_industry_cninfo.py +24 -18
  129. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  130. akshare/stock/stock_industry_sw.py +9 -10
  131. akshare/stock/stock_info.py +25 -15
  132. akshare/stock/stock_info_em.py +5 -2
  133. akshare/stock/stock_intraday_em.py +5 -2
  134. akshare/stock/stock_intraday_sina.py +22 -18
  135. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  136. akshare/stock/stock_new_cninfo.py +32 -19
  137. akshare/stock/stock_news_cx.py +39 -0
  138. akshare/stock/stock_profile_cninfo.py +9 -8
  139. akshare/stock/stock_rank_forecast.py +8 -6
  140. akshare/stock/stock_share_changes_cninfo.py +18 -14
  141. akshare/stock/stock_share_hold.py +24 -19
  142. akshare/stock/stock_summary.py +54 -26
  143. akshare/stock/stock_us_famous.py +15 -6
  144. akshare/stock/stock_us_pink.py +7 -5
  145. akshare/stock/stock_us_sina.py +15 -12
  146. akshare/stock/stock_xq.py +38 -12
  147. akshare/stock/stock_zh_a_sina.py +53 -78
  148. akshare/stock/stock_zh_b_sina.py +32 -55
  149. akshare/stock/stock_zh_kcb_report.py +11 -9
  150. akshare/stock/stock_zh_kcb_sina.py +67 -64
  151. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  152. akshare/stock_feature/stock_a_high_low.py +5 -2
  153. akshare/stock_feature/stock_a_indicator.py +12 -9
  154. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  155. akshare/stock_feature/stock_account_em.py +58 -40
  156. akshare/stock_feature/stock_analyst_em.py +36 -27
  157. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  158. akshare/stock_feature/stock_comment_em.py +118 -85
  159. akshare/stock_feature/stock_concept_futu.py +183 -0
  160. akshare/stock_feature/stock_cyq_em.py +58 -54
  161. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  162. akshare/stock_feature/stock_esg_sina.py +216 -11
  163. akshare/stock_feature/stock_fhps_em.py +60 -25
  164. akshare/stock_feature/stock_fhps_ths.py +25 -6
  165. akshare/stock_feature/stock_fund_flow.py +38 -25
  166. akshare/stock_feature/stock_gdfx_em.py +180 -95
  167. akshare/stock_feature/stock_gdhs.py +73 -49
  168. akshare/stock_feature/stock_gpzy_em.py +78 -46
  169. akshare/stock_feature/stock_hist_em.py +55 -23
  170. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  171. akshare/stock_feature/stock_hsgt_em.py +184 -452
  172. akshare/stock_feature/stock_info.py +52 -29
  173. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  174. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  175. akshare/stock_feature/stock_jgdy_em.py +41 -38
  176. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  177. akshare/stock_feature/stock_lhb_em.py +135 -71
  178. akshare/stock_feature/stock_lhb_sina.py +93 -46
  179. akshare/stock_feature/stock_margin_em.py +102 -0
  180. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  181. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  182. akshare/stock_feature/stock_market_legu.py +13 -8
  183. akshare/stock_feature/stock_pankou_em.py +72 -34
  184. akshare/stock_feature/stock_report_em.py +244 -54
  185. akshare/stock_feature/stock_research_report_em.py +48 -19
  186. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  187. akshare/stock_feature/stock_sy_em.py +86 -33
  188. akshare/stock_feature/stock_technology_ths.py +152 -120
  189. akshare/stock_feature/stock_tfp_em.py +35 -13
  190. akshare/stock_feature/stock_three_report_em.py +119 -77
  191. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  192. akshare/stock_feature/stock_value_em.py +83 -0
  193. akshare/stock_feature/stock_wencai.py +21 -9
  194. akshare/stock_feature/stock_yjyg_em.py +63 -28
  195. akshare/stock_feature/stock_zf_pg.py +61 -38
  196. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  197. akshare/stock_feature/stock_ztb_em.py +62 -40
  198. akshare/stock_fundamental/stock_finance.py +150 -58
  199. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  200. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  201. akshare/stock_fundamental/stock_notice.py +29 -15
  202. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  203. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  204. akshare/stock_fundamental/stock_register_em.py +448 -0
  205. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  206. akshare/stock_fundamental/stock_zygc.py +10 -8
  207. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  208. akshare/tool/trade_date_hist.py +4 -3
  209. akshare/utils/cons.py +10 -0
  210. akshare/utils/context.py +43 -0
  211. akshare/utils/demjson.py +2 -2
  212. akshare/utils/func.py +26 -0
  213. akshare/utils/tqdm.py +13 -3
  214. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  215. akshare-1.15.72.dist-info/RECORD +385 -0
  216. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  217. tests/test_func.py +3 -5
  218. akshare/bond/bond_futures.py +0 -50
  219. akshare/bond/bond_investing.py +0 -139
  220. akshare/crypto/crypto_hist_investing.py +0 -249
  221. akshare/fortune/fortune_it_juzi.py +0 -123
  222. akshare/futures/futures_international.py +0 -170
  223. akshare/futures/futures_news_baidu.py +0 -54
  224. akshare/futures/inventory_data.py +0 -100
  225. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  226. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  227. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  228. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  229. akshare/index/index_fear_greed_funddb.py +0 -71
  230. akshare/index/index_investing.py +0 -232
  231. akshare/sport/sport_olympic_winter.py +0 -39
  232. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  233. akshare/stock_fundamental/stock_register.py +0 -292
  234. akshare-1.12.99.dist-info/RECORD +0 -374
  235. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  236. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
@@ -8310,5 +8310,248 @@
8310
8310
  "20241226",
8311
8311
  "20241227",
8312
8312
  "20241230",
8313
- "20241231"
8314
- ]
8313
+ "20241231",
8314
+ "20250102",
8315
+ "20250103",
8316
+ "20250106",
8317
+ "20250107",
8318
+ "20250108",
8319
+ "20250109",
8320
+ "20250110",
8321
+ "20250113",
8322
+ "20250114",
8323
+ "20250115",
8324
+ "20250116",
8325
+ "20250117",
8326
+ "20250120",
8327
+ "20250121",
8328
+ "20250122",
8329
+ "20250123",
8330
+ "20250124",
8331
+ "20250127",
8332
+ "20250205",
8333
+ "20250206",
8334
+ "20250207",
8335
+ "20250210",
8336
+ "20250211",
8337
+ "20250212",
8338
+ "20250213",
8339
+ "20250214",
8340
+ "20250217",
8341
+ "20250218",
8342
+ "20250219",
8343
+ "20250220",
8344
+ "20250221",
8345
+ "20250224",
8346
+ "20250225",
8347
+ "20250226",
8348
+ "20250227",
8349
+ "20250228",
8350
+ "20250303",
8351
+ "20250304",
8352
+ "20250305",
8353
+ "20250306",
8354
+ "20250307",
8355
+ "20250310",
8356
+ "20250311",
8357
+ "20250312",
8358
+ "20250313",
8359
+ "20250314",
8360
+ "20250317",
8361
+ "20250318",
8362
+ "20250319",
8363
+ "20250320",
8364
+ "20250321",
8365
+ "20250324",
8366
+ "20250325",
8367
+ "20250326",
8368
+ "20250327",
8369
+ "20250328",
8370
+ "20250331",
8371
+ "20250401",
8372
+ "20250402",
8373
+ "20250403",
8374
+ "20250407",
8375
+ "20250408",
8376
+ "20250409",
8377
+ "20250410",
8378
+ "20250411",
8379
+ "20250414",
8380
+ "20250415",
8381
+ "20250416",
8382
+ "20250417",
8383
+ "20250418",
8384
+ "20250421",
8385
+ "20250422",
8386
+ "20250423",
8387
+ "20250424",
8388
+ "20250425",
8389
+ "20250428",
8390
+ "20250429",
8391
+ "20250430",
8392
+ "20250506",
8393
+ "20250507",
8394
+ "20250508",
8395
+ "20250509",
8396
+ "20250512",
8397
+ "20250513",
8398
+ "20250514",
8399
+ "20250515",
8400
+ "20250516",
8401
+ "20250519",
8402
+ "20250520",
8403
+ "20250521",
8404
+ "20250522",
8405
+ "20250523",
8406
+ "20250526",
8407
+ "20250527",
8408
+ "20250528",
8409
+ "20250529",
8410
+ "20250530",
8411
+ "20250603",
8412
+ "20250604",
8413
+ "20250605",
8414
+ "20250606",
8415
+ "20250609",
8416
+ "20250610",
8417
+ "20250611",
8418
+ "20250612",
8419
+ "20250613",
8420
+ "20250616",
8421
+ "20250617",
8422
+ "20250618",
8423
+ "20250619",
8424
+ "20250620",
8425
+ "20250623",
8426
+ "20250624",
8427
+ "20250625",
8428
+ "20250626",
8429
+ "20250627",
8430
+ "20250630",
8431
+ "20250701",
8432
+ "20250702",
8433
+ "20250703",
8434
+ "20250704",
8435
+ "20250707",
8436
+ "20250708",
8437
+ "20250709",
8438
+ "20250710",
8439
+ "20250711",
8440
+ "20250714",
8441
+ "20250715",
8442
+ "20250716",
8443
+ "20250717",
8444
+ "20250718",
8445
+ "20250721",
8446
+ "20250722",
8447
+ "20250723",
8448
+ "20250724",
8449
+ "20250725",
8450
+ "20250728",
8451
+ "20250729",
8452
+ "20250730",
8453
+ "20250731",
8454
+ "20250801",
8455
+ "20250804",
8456
+ "20250805",
8457
+ "20250806",
8458
+ "20250807",
8459
+ "20250808",
8460
+ "20250811",
8461
+ "20250812",
8462
+ "20250813",
8463
+ "20250814",
8464
+ "20250815",
8465
+ "20250818",
8466
+ "20250819",
8467
+ "20250820",
8468
+ "20250821",
8469
+ "20250822",
8470
+ "20250825",
8471
+ "20250826",
8472
+ "20250827",
8473
+ "20250828",
8474
+ "20250829",
8475
+ "20250901",
8476
+ "20250902",
8477
+ "20250903",
8478
+ "20250904",
8479
+ "20250905",
8480
+ "20250908",
8481
+ "20250909",
8482
+ "20250910",
8483
+ "20250911",
8484
+ "20250912",
8485
+ "20250915",
8486
+ "20250916",
8487
+ "20250917",
8488
+ "20250918",
8489
+ "20250919",
8490
+ "20250922",
8491
+ "20250923",
8492
+ "20250924",
8493
+ "20250925",
8494
+ "20250926",
8495
+ "20250929",
8496
+ "20250930",
8497
+ "20251009",
8498
+ "20251010",
8499
+ "20251013",
8500
+ "20251014",
8501
+ "20251015",
8502
+ "20251016",
8503
+ "20251017",
8504
+ "20251020",
8505
+ "20251021",
8506
+ "20251022",
8507
+ "20251023",
8508
+ "20251024",
8509
+ "20251027",
8510
+ "20251028",
8511
+ "20251029",
8512
+ "20251030",
8513
+ "20251031",
8514
+ "20251103",
8515
+ "20251104",
8516
+ "20251105",
8517
+ "20251106",
8518
+ "20251107",
8519
+ "20251110",
8520
+ "20251111",
8521
+ "20251112",
8522
+ "20251113",
8523
+ "20251114",
8524
+ "20251117",
8525
+ "20251118",
8526
+ "20251119",
8527
+ "20251120",
8528
+ "20251121",
8529
+ "20251124",
8530
+ "20251125",
8531
+ "20251126",
8532
+ "20251127",
8533
+ "20251128",
8534
+ "20251201",
8535
+ "20251202",
8536
+ "20251203",
8537
+ "20251204",
8538
+ "20251205",
8539
+ "20251208",
8540
+ "20251209",
8541
+ "20251210",
8542
+ "20251211",
8543
+ "20251212",
8544
+ "20251215",
8545
+ "20251216",
8546
+ "20251217",
8547
+ "20251218",
8548
+ "20251219",
8549
+ "20251222",
8550
+ "20251223",
8551
+ "20251224",
8552
+ "20251225",
8553
+ "20251226",
8554
+ "20251229",
8555
+ "20251230",
8556
+ "20251231"
8557
+ ]
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/11 17:22
4
+ Date: 2024/8/4 17:22
5
5
  Desc: 历年世界 500 强榜单数据
6
6
  https://www.fortunechina.com/fortune500/index.htm
7
7
  特殊情况说明:
8
8
  2010年由于网页端没有公布公司所属的国家, 故 2010 年数据没有国家这列
9
9
  """
10
- import json
10
+
11
11
  from functools import lru_cache
12
12
  from io import StringIO
13
13
 
@@ -28,12 +28,12 @@ def _fortune_rank_year_url_map() -> dict:
28
28
  url = "https://www.fortunechina.com/fortune500/index.htm"
29
29
  r = requests.get(url)
30
30
  soup = BeautifulSoup(r.text, features="lxml")
31
- url_2023 = soup.find(name='meta', attrs={"property": "og:url"})['content'].strip()
32
- node_list = soup.find_all(name='div', attrs={"class": "swiper-slide"})
33
- url_list = [item.find("a")['href'] for item in node_list]
31
+ url_2023 = "https://www.fortunechina.com/fortune500/c/2023-08/02/content_436874.htm"
32
+ node_list = soup.find_all(name="div", attrs={"class": "swiper-slide"})
33
+ url_list = [item.find("a")["href"] for item in node_list]
34
34
  year_list = [item.find("a").text for item in node_list]
35
35
  year_url_map = dict(zip(year_list, url_list))
36
- year_url_map['2023'] = url_2023
36
+ year_url_map["2023"] = url_2023
37
37
  return year_url_map
38
38
 
39
39
 
@@ -49,17 +49,17 @@ def fortune_rank(year: str = "2015") -> pd.DataFrame:
49
49
  r = requests.get(url)
50
50
  r.encoding = "utf-8"
51
51
  if int(year) < 2007:
52
- df = pd.read_html(StringIO(r.text))[0].iloc[1:-1, ]
52
+ df = pd.read_html(StringIO(r.text))[0].iloc[1:-1,]
53
53
  df.columns = pd.read_html(StringIO(r.text))[0].iloc[0, :].tolist()
54
54
  return df
55
55
  elif 2006 < int(year) < 2010:
56
- df = pd.read_html(StringIO(r.text))[0].iloc[1:, ]
56
+ df = pd.read_html(StringIO(r.text))[0].iloc[1:,]
57
57
  df.columns = pd.read_html(StringIO(r.text))[0].iloc[0, :].tolist()
58
58
  for page in tqdm(range(2, 11), leave=False):
59
59
  # page =2
60
60
  r = requests.get(url.rsplit(".", maxsplit=1)[0] + "_" + str(page) + ".htm")
61
61
  r.encoding = "utf-8"
62
- temp_df = pd.read_html(StringIO(r.text))[0].iloc[1:, ]
62
+ temp_df = pd.read_html(StringIO(r.text))[0].iloc[1:,]
63
63
  temp_df.columns = pd.read_html(StringIO(r.text))[0].iloc[0, :].tolist()
64
64
  df = pd.concat(objs=[df, temp_df], ignore_index=True)
65
65
  return df
@@ -68,53 +68,20 @@ def fortune_rank(year: str = "2015") -> pd.DataFrame:
68
68
  return df
69
69
 
70
70
 
71
- def fortune_rank_eng(year: str = "2023") -> pd.DataFrame:
72
- """
73
- 注意你的网速
74
- https://fortune.com/ranking/global500/
75
- https://fortune.com/global500/2012/search/
76
- :param year: "1995"
77
- :type year: str
78
- :return: 历年排名
79
- :rtype: pandas.DataFrame
80
- """
81
- url = f"https://fortune.com/ranking/global500/{year}/search/"
82
- res = requests.get(url)
83
- soup = BeautifulSoup(res.text, "lxml")
84
- code = json.loads(soup.find("script", attrs={"type": "application/ld+json"}).string)["identifier"]
85
- url = f"https://content.fortune.com/wp-json/irving/v1/data/franchise-search-results"
86
- params = {
87
- "list_id": code,
88
- "token": "Zm9ydHVuZTpCcHNyZmtNZCN5SndjWkkhNHFqMndEOTM=",
89
- }
90
- res = requests.get(url, params=params)
91
- big_df = pd.DataFrame()
92
- for i in range(len(res.json()[1]["items"][0]['fields'])):
93
- temp_df = pd.DataFrame([item["fields"][i] for item in res.json()[1]["items"]])
94
- big_df[temp_df["key"].values[0]] = temp_df["value"]
95
- big_df["rank"] = big_df["rank"].astype(int)
96
- big_df.sort_values(by="rank", inplace=True)
97
- big_df.reset_index(drop=True, inplace=True)
98
- return big_df
99
-
100
-
101
- if __name__ == '__main__':
102
- fortune_rank_eng_df = fortune_rank_eng(year="2022")
103
- print(fortune_rank_eng_df)
104
-
105
- fortune_rank_df = fortune_rank(year='2023') # 2010 不一样
71
+ if __name__ == "__main__":
72
+ fortune_rank_df = fortune_rank(year="2023") # 2010 不一样
106
73
  print(fortune_rank_df)
107
74
 
108
- fortune_rank_df = fortune_rank(year='2022') # 2010 不一样
75
+ fortune_rank_df = fortune_rank(year="2022") # 2010 不一样
109
76
  print(fortune_rank_df)
110
77
 
111
- fortune_rank_df = fortune_rank(year='2008') # 2010 不一样
78
+ fortune_rank_df = fortune_rank(year="2008") # 2010 不一样
112
79
  print(fortune_rank_df)
113
80
 
114
- fortune_rank_df = fortune_rank(year='2008') # 2010 不一样
81
+ fortune_rank_df = fortune_rank(year="2008") # 2010 不一样
115
82
  print(fortune_rank_df)
116
83
 
117
- fortune_rank_df = fortune_rank(year='2009') # 2010 不一样
84
+ fortune_rank_df = fortune_rank(year="2009") # 2010 不一样
118
85
  print(fortune_rank_df)
119
86
 
120
87
  for item in range(1996, 2008):