o
    i"                  
   @   sb  d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZ ddlZddlZddlmZ ddlmZ dd	lmZ dd
l	mZ ddiZeddd		d&dedee dee dejfddZd'dedee dejfddZd'dedee dejfddZdd Zd(dedee dejfd d!Ze d"kredd#d$d%Z!e"e#e e"e! dS dS ))u   
Created on 2023/12/06
@author: Monday
@group : waditu
Desc: 腾讯-股票-实时行情-成交明细
成交明细-每个交易日 16:00 提供当日数据
港股报价延时 15 分钟
    N)StringIO)require_permission)format_stock_code)zh_sina_a_stock_cookieszh_sina_a_stock_headers)Optional)get_current_date)rtq_vars)symbol_verifyz
user-agentz}Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0realtime_ticku   个股历史分笔数据)
event_nameevent_detail	000001.SZtxts_codesrc
page_countreturnc                 C   s6   t | }|dkrt||S |dkrt||S t||S )u  
    历史分笔数据
    :param ts_code: 股票代码
    :type ts_code: str
    :param src: 来源  腾讯财经tx   新浪财经sina
    :type src: str
    :param page_count: 限制页数
    :type page_count: str
    :return: 历史分笔数据
    :rtype: pandas.DataFrame
        1、TIME : 成交时间
        2、PRICE : 成交价格
        3、PCHANGE : 涨跌幅
        4、CHANGE : 价格变动
        5、VOLUME : 成交量(手)
        6、AMOUNT : 成交额(元)
        7、TYPE : 性质
    sinadc)r
   get_stock_sina_a_divide_amountget_stock_dc_a_divide_amountget_stock_tx_a_divide_amount)r   r   r   symbol r   O/opt/alphahud/venv/lib/python3.10/site-packages/tushare/stock/histroy_divide.pyr      s   


sz000001r   c              	   C   s\  t |  d}|d  |d  } t }d}td 	 zPd}dd| |d	}tj|t	|d
}|j
}tt||dd d djdddf j jddd}	|d7 }tj||	gdd}td |rn||krnW nW n   Y nq|js|jddddf  }tj|_|jddd dddd}
|d |
|d< |t ttttt d}|S )u  
    腾讯财经-历史分笔数据
    https://gu.qq.com/sz300494/gp/detail
    :param symbol: 股票代码
    :type symbol: str
    :param page_count: 限制页数
    :type page_count: str
    :return: 历史分笔数据
    :rtype: pandas.DataFrame
    .   r      正在下载数据，请稍等Tz$http://stock.gtimg.cn/data/index.phpdetaildata)appnactioncp)headersparams[N|/)expandignore_index      ?dropinplace   卖盘   买盘	   中性盘)SBMTYPE)TIMEPRICECHANGEVOLUMEAMOUNTr8   )strlowersplitpd	DataFramewarningswarnrequestsgetr&   textevalfindilocconcattimesleepemptycopyr	   TICK_COLUMNScolumnsreset_indexmapastypefloatint)r   r   symbolsbig_dfpageurlr'   r	text_datatemp_dfproperty_mapr   r   r   r   <   sb   
$

r   c           	   
   C   s  t d t|  d}|d  |d  } d}t }	 z8d}| tdd|d	}tj	|t
t|d
}tt|jdd }tj||gdd}|d7 }|rV||krVW nW n   Y ntd q|js|jddddf  }tj|_|jddd |tttttttd}|S )u?  
    腾新浪财经-历史分笔数据
    https://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradedetail.php?symbol=sh688553
    :param symbol: 股票代码
    :type symbol: str
    :param page_count: 限制页数
    :type page_count: str
    :return: 历史分笔数据
    :rtype: pandas.DataFrame
    r   r   r   r   TzMhttps://vip.stock.finance.sina.com.cn/quotes_service/view/vMS_tradedetail.phpz%Y-%m-%d)date_format)r   daterY   )r&   cookiesr'   GBK   r,   r.   Nr/   )r9   r:   PCHANGEr;   r<   r=   r8   )rC   rD   r>   r?   r@   rA   rB   r   rE   rF   r   r   	read_htmlr   contentdecoderK   rL   rM   rN   rJ   rO   r	   TODAY_TICK_COLUMNSrQ   rR   rT   rU   rV   )	r   r   rW   rY   rX   rZ   r'   responser]   r   r   r   r   }   sP   


r   c                 c   sL    t j| |dd}d}| D ]}|r|| d 7 }q|r#|V  d}qd S )NT)r'   stream 
)rE   rF   
iter_linesrg   )rZ   r'   ri   
event_dataliner   r   r   __event_stream   s   rp   000001c           
   	   C   s  t |  d}|d } | drdnd}d}dddd	d
d| d|  dd}t }t||D ]"}t|	dd}tdd |d d D }	tj
||	gdd} g d|_|d dddd|d< |g d }tj|d dd|d< tj|d  dd|d < |S )!u   
    东方财富-分时数据
    https://quote.eastmoney.com/f1.html?newcode=0.000001
    :param symbol: 股票代码
    :type symbol: str
    :return: 分时数据
    :rtype: pandas.DataFrame
    r   r   6r   z7https://70.push2.eastmoney.com/api/qt/stock/details/ssezf1,f2,f3,f4zf51,f52,f53,f54,f552000 bd1d9ddb04089700cf9c27f6f74262812z-0z
|0|0|0|web)fields1fields2mpiutflttpossecidwbp2uzdata: rk   c                 S   s   g | ]}| d qS ),)r@   ).0itemr   r   r   
<listcomp>   s    z0get_stock_dc_a_divide_amount.<locals>.<listcomp>r!   detailsT)objsr-   )r9   r:   r<   -r8   r8   r3   r2   r4   )ru   14)r9   r:   r<   r8   r:   coerce)errorsr<   )r>   r?   r@   
startswithrA   rB   rp   jsonloadsreplacerK   rQ   rS   
to_numeric)
r   r   rW   market_coderZ   r'   rX   event
event_jsonr]   r   r   r   r      s:   	

r   __main__r   r   )r   r   r   )r   r   N)r   N)rq   N)$__doc__rC   pandasrA   rE   ior   tushare.util.verify_tokenr   tushare.util.format_stock_coder   tushare.stock.rtq_varsr   r   rL   r   typingr   tushare.util.form_dater   tushare.stockr	   r
   r&   r>   rV   rB   r   r   r   rp   r   __name__dfprinthelpr   r   r   r   <module>   sB   
A@0