+
    Ȝi                     @   R t ^ RIt^ RIHtHt ^ RIt^ RIt^ RIH	t	 ^ RI
Ht RR R lltR R	 ltRR
 R lltRR R lltRR R lltRR R llt]R8X  dG   ]! RR7      t]! ]4       ]! RR7      t]! ]4       ]! RR7      t]! ]4       ]! RR7      t]! ]4       R# R# )u  
Date: 2024/6/17 14:00
Desc: 股票指数成份股数据, 新浪有两个接口, 这里使用老接口:
新接口：https://vip.stock.finance.sina.com.cn/mkt/#zhishu_000001
老接口：https://vip.stock.finance.sina.com.cn/corp/view/vII_NewestComponent.php?page=1&indexid=399639
N)BytesIOStringIO)BeautifulSoup)demjson000300c                D    V ^8  d   QhR\         R\        P                  /#    symbolreturnstrpd	DataFrame)formats   "a/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/akshare/index/index_cons.py__annotate__r      s     / /# /R\\ /    c                   V R8X  Ed   Rp RpRV  /p\         P                  ! WR7      p\        P                  ! \	        VP                  4       4      ^P,          4      ^,           p\        P                  ! 4       p\        ^V4       F  pRpR\        V4      RR	R
RRRRRRRRR/p\         P                  ! WR7      p\        P                  ! V\        P                  ! \        P                  ! VP                  4      4      .RR7      pK  	  V# RpR^RRR
RRRRRV  2RR/p\         P                  ! WR7      p\        P                  ! \        P                  ! VP                  4      4      pV# )u   
新浪新版股票指数成份页面, 目前该接口可获取指数数量较少
https://vip.stock.finance.sina.com.cn/mkt/#zhishu_000040
:param symbol: 指数代码
:type symbol: str
:return: 指数的成份股
:rtype: pandas.DataFrame
r   hs300zlhttps://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeStockCountSimplenode)paramsz`https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeDatapagenum80sortr
   asc1 _s_r_ainitTobjsignore_indexzfhttps://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeDataSimple3000zhishu_setlen)requestsgetmathceilintjsonr   r   ranger   concatr   decodetext)r
   urlr   rpage_numtemp_dfr   temps   &       r   index_stock_cons_sinar6      sO    7 	 VH&LL,99S]R/014,,.!X&DtCD	ts"&F S0Aiir||GNN166,BCDSWG ' 
rCvs'&"(F 	S(A<<qvv./DKr   c                8    V ^8  d   QhR\         P                  /# )r	   r   )r   r   )r   s   "r   r   r   F   s      ",, r   c                 D   Rp \         P                  ! V 4      pRVn        \        P                  ! \        VP                  4      4      ^ ,          pVR,          P                  P                  RRR7      ^ ,          VR&   . ROVn	        V. RO,          P                  4       pV# )	u   
聚宽-指数数据-指数列表
https://www.joinquant.com/data/dict/indexData
:return: 指数信息的数据框
:rtype: pandas.DataFrame
z-https://www.joinquant.com/data/dict/indexDatazutf-8   指数代码.T)expand)
index_codedisplay_namepublish_date-r?   )r<   r=   r>   )r'   r(   encodingr   	read_htmlr   r0   r   splitcolumnscopy)r1   r2   index_dfr4   s       r   index_stock_inforF   F   s     :CSAAJ||HQVV,-a0H'7;;AA#dASTUVH^OHEFKKMGNr   c                D    V ^8  d   QhR\         R\        P                  /# r   r   )r   s   "r   r   r   W   s     $ $S $ $r   c           	     >   RV  R2p\         P                  ! V4      pRVn        \        VP                  R4      pVP                  RR/R7      P                  R4      P                  R	4      R,          R
,          P                  R4      R,          P                  R4      ^ ,          pVR8X  d   \        P                  ! \        VP                  4      ^ ^R7      ^,          P                  R,          pVR,          P                  \        4      P                  P                  ^4      VR&   V# \        P                  ! 4       p\!        ^\#        V4      ^,           4       Fr  pRV RV  2p\         P                  ! V4      pRVn        \        P$                  ! V\        P                  ! \        VP                  4      ^R7      ^,          .RR7      pKt  	  VP                  R,          pVR,          P                  \        4      P                  P                  ^4      VR&   V# )u*  
最新股票指数的成份股目录
https://vip.stock.finance.sina.com.cn/corp/view/vII_NewestComponent.php?page=1&indexid=399639
:param symbol: 指数代码, 可以通过 ak.index_stock_info() 函数获取
:type symbol: str
:return: 最新股票指数的成份股目录
:rtype: pandas.DataFrame
zNhttps://vip.stock.finance.sina.com.cn/corp/go.php/vII_NewestComponent/indexid/z.phtmlgb2312lxmlclasstable2)attrstdahrefzpage=&#)headerskiprowsu   品种代码zMhttps://vip.stock.finance.sina.com.cn/corp/view/vII_NewestComponent.php?page=z	&indexid=)rS   Tr!   ):NNN:N   N)r'   r(   r@   r   r0   findfind_allrB   r   rA   r   ilocastyper   zfillr   r-   r+   r.   )r
   r1   r2   soupr3   r4   r   s   &      r   index_stock_consr]   W   s    [[aZbbh
iCSAAJ(D		(+	,	d	#r	!	# 
w	 
sA		  3,,x/AFqINNuU")."9"@"@"E"I"I"O"OPQ"RllnGaX*+]^b]cclmsltuLL
))2<<(8CAFG
	 , ll5!G%n5<<SAEEKKANGNNr   c                D    V ^8  d   QhR\         R\        P                  /# r   r   )r   s   "r   r   r   ~   s      S  r   c                   RV  R2p\         P                  ! V4      p\        P                  ! \	        VP
                  4      4      p. R	OVn        \        P                  ! VR,          RRR7      P                  P                  VR&   VR,          P                  \        4      P                  P                  ^4      VR&   VR,          P                  \        4      P                  P                  ^4      VR&   V# )
u   
中证指数网站-成份股目录
https://www.csindex.com.cn/zh-CN/indices/index-detail/000300
:param symbol: 指数代码, 可以通过 ak.index_stock_info() 函数获取
:type symbol: str
:return: 最新指数的成份股
:rtype: pandas.DataFrame
zThttps://oss-ch.csindex.com.cn/static/html/csindex/public/uploads/file/autofile/cons/zcons.xls   日期r9      成分券代码%Y%m%dcoercer   errors)	r`   r9      指数名称   指数英文名称ra      成分券名称   成分券英文名称	   交易所   交易所英文名称)r'   r(   r   
read_excelr   contentrC   to_datetimedtdaterZ   r   r[   r
   r1   r2   r4   s   &   r   index_stock_cons_csindexrr   ~   s    ::@	K  	SAmmGAII./G
GO (8b H &n5<<SAEEKKANGN!():!;!B!B3!G!K!K!Q!QRS!TGNr   c                D    V ^8  d   QhR\         R\        P                  /# r   r   )r   s   "r   r   r      s     ! !C !r|| !r   c                4   RV  R2p\         P                  ! V4      p\        P                  ! \	        VP
                  4      4      p. ROVn        \        P                  ! VR,          RRR	7      P                  P                  VR&   VR,          P                  \        4      P                  P                  ^4      VR&   VR,          P                  \        4      P                  P                  ^4      VR&   \        P                  ! VR,          RR
7      VR&   V# )u   
中证指数网站-样本权重
https://www.csindex.com.cn/zh-CN/indices/index-detail/000300
:param symbol: 指数代码, 可以通过 ak.index_stock_info() 接口获取
:type symbol: str
:return: 最新指数的成份股权重
:rtype: pandas.DataFrame
z[https://oss-ch.csindex.com.cn/static/html/csindex/public/uploads/file/autofile/closeweight/zcloseweight.xlsr`   r9   ra      权重rb   rc   rd   )re   )
r`   r9   rf   rg   ra   rh   ri   rj   rk   ru   )r'   r(   r   rl   r   rm   rC   rn   ro   rp   rZ   r   r[   
to_numericrq   s   &   r   index_stock_cons_weight_csindexrw      s    44:8?	L  	SAmmGAII./GGO (8b H &n5<<SAEEKKANGN!():!;!B!B3!G!K!K!Q!QRS!TGgh&7IGHNr   c                0    V ^8  d   QhR\         R\         /# r   )r   )r   s   "r   r   r      s      3 c r   c                r    V P                  R4      '       g   V P                  R4      '       d   RV  2# RV  2# )uv   
输入股票代码判断股票市场
:param symbol: 股票代码
:type symbol: str
:return: 股票市场
:rtype: str
6900shsz)
startswithr
   s   &r   stock_a_code_to_symbolr      s=     !2!25!9!9F8}F8}r   __main__r   )r   )399639)__doc__r)   ior   r   pandasr   r'   bs4r   akshare.utilsr   r6   rF   r]   rr   rw   r   __name__index_stock_cons_csindex_dfprint"index_stock_cons_weight_csindex_dfindex_stock_cons_sina_dfindex_stock_cons_df r   r   <module>r      s          !/d"$ND!H z":("K	
%&)H*& 

,-4HE	
"#*(;	
 r   