
    fi'                        d Z ddlZddlmZ ddlZddlmZmZm	Z	m
Z
 ddlmZ dej        fdZdd
ededej        fdZedk    r edd	          Z ee            edd          Z ee            edd          Z ee            edd          Z ee            edd          Z ee            edd          Z ee            e            Z ee           dS dS )u   
Date: 2026/3/15 23:00
Desc: 新浪财经-港股-实时行情数据和历史行情数据(包含前复权和后复权因子)
https://stock.finance.sina.com.cn/hkstock/quotes/00700.html
    N)	MiniRacer)hk_js_decodehk_sina_stock_hist_urlhk_sina_stock_hist_hfq_urlhk_sina_stock_hist_qfq_url)get_tqdmreturnc                  B   d} ddddddd}t          j                    }t                      } |t          dd	          d
          D ]n}t	          |          |d<   t          j        | |          }|                                }|s n-t          j        |          }t          j        ||gd          }og d|_	        |g d         }t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   t          j
        |d         d          |d<   |S )u   
    新浪财经-港股的所有港股的实时行情数据
    https://vip.stock.finance.sina.com.cn/mkt/#qbgg_hk
    :return: 实时行情数据
    :rtype: pandas.DataFrame
    zahttps://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHKStockData160symbolqbgg_hkinit)pagenumsortascnode_s_r_a   d   F)leaver   )paramsT)objsignore_index)   代码   中文名称   英文名称   交易类型	   最新价   昨收   今开   最高   最低	   成交量-	   成交额   日期时间   买一   卖一r&   r&   r&   r&   r&   	   涨跌额	   涨跌幅r&   r&   )r(   r   r   r   r   r    r+   r,   r!   r"   r#   r$   r%   r'   r)   r*   r    coerce)errorsr+   r,   r!   r"   r#   r$   r%   r'   r)   r*   )pd	DataFramer   rangestrrequestsgetjsonconcatcolumns
to_numeric)urlr   big_dftqdmr   r	data_jsontemp_dfs           F/usr/local/lib/python3.11/dist-packages/akshare/stock/stock_hk_sina.pystock_hk_spotr@      sL    nC F \^^F::DU1c]]%000 F FTvLV,,,FFHH	 	E,y)) 1EEE  FN4 	
 	
 	
F( -{(;HMMMF;-{(;HMMMF;-{(;HMMMF;}VH%5hGGGF8}VH%5hGGGF8}VH%5hGGGF8}VH%5hGGGF8-{(;HMMMF;-{(;HMMMF;}VH%5hGGGF8}VH%5hGGGF8M    00981 r   adjustc                    t          j        t          j        |                     }t	                      }|                    t                     |                    d|j        	                    d          d         	                    d          d         
                    dd                    }t          j        |          }t          j        |d                   j        j        |_        |d= |                    d	          }|dk    r?|                    d
           t          j        |d                   j        j        |d<   |S |dk    rct          j        t'          j        |                     }	 t          j        t          |j        	                    d          d         	                    d          d                   d                   }t)          |          dk    r?|                    d
           t          j        |d                   j        j        |d<   |S nO# t*          $ rB |                    d
           t          j        |d                   j        j        |d<   |cY S w xY wg d|_        t          j        |j                  |_        |d= t          j        d|j        d                                                   }t          j        t3          t)          |                    |          }t          j        ||d
d
d          }	|	                    d
           |	j        ddddgf         }	t          j        ||	d
d
d          }|                    d
           |                    g dd
           |                    t<                    }|d         |d         z  |d         z   |d<   |d         |d         z  |d         z   |d<   |d         |d         z  |d         z   |d<   |d         |d         z  |d         z   |d<   |                    d           }|                     dd
           |j        dddd f         }|                    d
           |!                    d!did"d
#           t          j        |d                   j        j        |d<   |S |d$k    r>t          j        tE          j        |                     }	 t          j        t          |j        	                    d          d         	                    d          d                   d                   }
t)          |
          dk    r?|                    d
           t          j        |d                   j        j        |d<   |S nO# t*          $ rB |                    d
           t          j        |d                   j        j        |d<   |cY S w xY wdd%g|
_        t          j        |
j                  |
_        |
d= t          j        d|
j        d                                                   }t          j        t3          t)          |                    |          }t          j        ||
d
d
d          }	|	                    d
           |	j        dddgf         }	t          j        ||	d
d
d          }|                    d
           |                    g dd
           |                    t<                    }|d         |d%         z  |d<   |d         |d%         z  |d<   |d         |d%         z  |d<   |d         |d%         z  |d<   |                    d&           }|                     dd
           |j        dddd'f         }|                    d
           |!                    d!did"d
#           t          j        |d                   j        j        |d<   |S |d(k    rt          j        t'          j        |                     }t          j        t          |j        	                    d          d         	                    d          d                   d                   }g d|_        t          j        |j                  |_        |d= |                    d
           t          j        |d                   j        j        |d<   |S |d)k    rt          j        tE          j        |                     }t          j        t          |j        	                    d          d         	                    d          d                   d                   }
dd%g|
_        t          j        |
j                  |
_        |
d= |
                    d
           t          j        |
d                   j        j        |
d<   |
S t          j                    S )*u  
    新浪财经-港股-个股的历史行情数据
    https://stock.finance.sina.com.cn/hkstock/quotes/02912.html
    :param symbol: 可以使用 ak.stock_hk_spot() 获取
    :type symbol: str
    :param adjust: "": 返回未复权的数据 ; qfq: 返回前复权后的数据; qfq-factor: 返回前复权因子和调整;
    :type adjust: str
    :return: 指定 adjust 的数据
    :rtype: pandas.DataFrame
    d=r   ;r   "rC   datefloatT)inplacehfq
data)rJ   
hfq_factorcashz
1900-01-01outer)
left_indexright_indexhowN   )openhighlowclosevolume)subsetrL   rW   rP   rQ   rX   rZ   rY   c                 "    t          | d          S N   roundxs    r?   <lambda>z stock_hk_daily.<locals>.<lambda>       %1++ rA   any)rU   rL   indexr7   )axisrL   qfq
qfq_factorc                 "    t          | d          S r^   r`   rb   s    r?   rd   z stock_hk_daily.<locals>.<lambda>   re   rA   
hfq-factorz
qfq-factor)#r3   r4   r   formatr   evalr   calltextsplitreplacer/   r0   to_datetimedtrJ   rh   astypereset_indexr   lenSyntaxErrorr7   
date_range	isoformatr1   mergeffillilocdrop_duplicatesrK   applydropnarenamer   )r   rD   r<   js_code	dict_listdata_dfhfq_factor_dftemp_date_ranger>   	new_rangeqfq_factor_dfs              r?   stock_hk_dailyr   m   sx	    	+26::;;AkkGLLQV\\#q!'',,Q/77R@@ I l9%%GN76?336;GMnnW%%G||D))).99<AL3:6BBCC	LQV\\#&&q)//55a899&A M =!!Q&&##D#111"$."A"A"D"I '  	 	 	--- nWV_==@EGFONNN	 !? > > n]-?@@&! ---a0::<<
 
 ,uS%9%9::OLLH]t7
 
 
	 	%%%N111q!f9-	(Y4Tw
 
 
 	d###===t 	  	
 	
 	
 ..''!&/GL,AAGFOS!&/GL,AAGFOS"7+gl.CCgfoU ',*??'&/Q-- 5 5665$///,qqq#2#v&D)))(y$GGG.99<AL3:6BBCC	LQV\\#&&q)//55a899&A M =!!Q&&##D#111"$."A"A"D"I '
  	 	 	--- nWV_==@EGFONNN	 "( 6 n]-?@@&!---a0::<<
 
 ,uS%9%9::OLLH]t7
 
 
	 	%%%N111qc6*	(Y4Tw
 
 
 	d###===t 	  	
 	
 	
 ..''!&/GL,AA!&/GL,AA"7+gl.CC ',*??-- 5 5665$///,qqq#2#v&D)))(y$GGG.99<AL3:6BBCCT!&,,s*;*;A*>*D*DT*J*J1*M%N%Nv%VWW > > > n]-?@@&!!!$!/// "}V/D E E H MfL3:6BBCCT!&,,s*;*;A*>*D*DT*J*J1*M%N%Nv%VWW!' 6 n]-?@@&!!!$!/// "}V/D E E H Mf|~~s(   8B/H) )A	I54I5"B/V A	WW__main__00700)r   rD   rM   01591rj   01302rn   )rB   rC   )__doc__pandasr/   py_mini_racerr   r3   akshare.stock.consr   r   r   r   akshare.utils.tqdmr   r0   r@   r2   r   __name__stock_hk_daily_hfq_dfprintstock_hk_daily_dfstock_hk_daily_hfq_factor_dfstock_hk_spot_df rA   r?   <module>r      s         # # # # # #             ( ' ' ' ' 'Tr| T T T TnO O3 O# Or| O O O Od z*N'"EEE	E
   *N'%HHH	E
   *N'%HHH	E
   *N'%HHH	E
   &geDDD	E
#1>#V#V#V 	E
&'''$}	E
) rA   