
    fi}                     p   d Z ddlmZ ddlmZ ddlZddlZddlm	Z	 ddl
m
Z
  e            defd            Zdd
edej        fdZedk    r ed          Z ee            ed          Z ee            ed          Z ee            ed          Z ee            ed          Z ee            edd          D ]-Z ee            e ee                    Z ee           . edd          D ]/Z ee            e ee                    Z ee           .dS dS )u   
Date: 2024/8/4 17:22
Desc: 历年世界 500 强榜单数据
https://www.fortunechina.com/fortune500/index.htm
特殊情况说明：
2010年由于网页端没有公布公司所属的国家, 故 2010 年数据没有国家这列
    )	lru_cache)StringION)BeautifulSoup)tqdmreturnc                     d} t          j        |           }t          |j        d          }d}|                    dddi          }d	 |D             }d
 |D             }t          t          ||                    }||d<   |S )u   
    年份和网址映射
    https://www.fortunechina.com/fortune500/index.htm
    :return: 年份和网址映射
    :rtype: dict
    z1https://www.fortunechina.com/fortune500/index.htmlxml)featureszGhttps://www.fortunechina.com/fortune500/c/2023-08/02/content_436874.htmdivclasszswiper-slide)nameattrsc                 D    g | ]}|                     d           d         S )ahref)find.0items     F/usr/local/lib/python3.11/dist-packages/akshare/fortune/fortune_500.py
<listcomp>z._fortune_rank_year_url_map.<locals>.<listcomp>!   s'    ===4		#v&===    c                 B    g | ]}|                     d           j        S )r   )r   textr   s     r   r   z._fortune_rank_year_url_map.<locals>.<listcomp>"   s%    ;;;3$;;;r   2023)requestsgetr   r   find_alldictzip)urlrsoupurl_2023	node_listurl_list	year_listyear_url_maps           r   _fortune_rank_year_url_mapr)      s     >CSA&111DXH5.0IJJI==9===H;;;;;IIx0011L#Lr   2015yearc                    t                      }||          }t          j        |          }d|_        t	          |           dk     rt          j        t          |j                            d         j	        ddf         }t          j        t          |j                            d         j	        dddf         
                                |_        |S dt	          |           cxk     rdk     rn nt          j        t          |j                            d         j	        ddf         }t          j        t          |j                            d         j	        dddf         
                                |_        t          t          d	d
          d          D ]}t          j        |                    dd          d         dz   t          |          z   dz             }d|_        t          j        t          |j                            d         j	        ddf         }t          j        t          |j                            d         j	        dddf         
                                |_        t          j        ||gd          }|S t          j        t          |j                            d         }|S )u   
    财富 500 强公司从 1996 年开始的排行榜
    https://www.fortunechina.com/fortune500/index.htm
    :param year: str 年份
    :return: pandas.DataFrame
    zutf-8i  r      Ni          F)leave.)maxsplit_z.htmT)objsignore_index)r)   r   r   encodingintpd	read_htmlr   r   iloctolistcolumnsr   rangersplitstrconcat)r+   r(   r!   r"   dfpagetemp_dfs          r   fortune_rankrF   (   sN    .//L
t
CSAAJ
4yy4\(16**++A.3AbDE:\(16"2"233A6;AqqqDAHHJJ
		D			 	 	 	 D	 	 	 	 	 \(16**++A.3ABBC8\(16"2"233A6;AqqqDAHHJJ
q"U333 	B 	BDSZZaZ88;cACIIMPVVWWA AJl8AF#3#344Q7<QRRSAG l8AF+;+;<<Q?DQTJQQSSGOWDAAABB	\(16**++A.	r   __main__r   )r+   202220082009i  i  r/   i  )r*   )__doc__	functoolsr   ior   pandasr:   r   bs4r   r   r   r)   rA   	DataFramerF   __name__fortune_rank_dfprintr?   r    r   r   <module>rU      s7                                  D    & s     > z"l///O	E/"l///O	E/"l///O	E/"l///O	E/"l///O	E/dD!!  d&,CCII666odD!!  d&,CCII666o1 * r   