o
    iR                     @   s   d Z 	 ddlZddlZddlmZ z
ddlmZmZ W n ey,   ddl	mZmZ Y nw dZ
dZdZedd	d
ZdZdd Zdd ZdddZdd Zdd Zdd Zdd ZdS )uw   
财新网新闻数据检索下载
Created on 2017/06/09
@author: Yuan Yifan
@group : ~
@contact: tsingjyujing@163.com
    N)BeautifulSoup)urlopenRequestzUhttp://search.caixin.com/search/search.jsp?startDate=%s&endDate=%s&keyword=%s&x=0&y=0zhtml.parserzMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240zA"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"z#zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3)z
User-AgentAcceptzAccept-Language
   c                 C   s<   t }td| tjd dd |d< tt| dt dt S )u   
    读取URL对应的内容（模拟浏览器）
    Parameters
    ------
        url string 需要读取的链接
    Return
    ------
        string 读取的内容
    z://.*?/r      HostN)
req_headerrefindallDOTALLr   r   req_timeoutread)urlreq_header_this r   N/opt/alphahud/venv/lib/python3.10/site-packages/tushare/internet/caixinnews.pyread_url-   s   
 r   c                 C   s   t t| tS )u   
    读取URL对应的内容，并解析为Soup
    Parameters
        url string 需要读取的链接
    Return
        string 读取的内容
    )r   r   default_parserr   r   r   r   get_soup;   s   r   *c                 C   s   |du s|du r&t j  }t  |j|j|jddt jdd }|d}|}t||| f }t|}g }	 |j	dd	d
hdd }|j	dd	dhd}	|	D ]}
|
|
jjd  qJ|jd }|dkrb	 |S tt| }q4)u#  
    读取某一时间段对应的新闻链接列表
    Parameters
    ------
        keywords string 关键词
        start_date string 开始日期，格式yyyy-mm-dd
        end_date string 结束日期，格式yyyy-mm-dd
    Return
    ------
        List<string> 读取的内容
    N   r   iQ )secondsz%Y-%m-%dTaclasspageNavBtn2nameattrsdivsearchxthrefzjavascript:void();)datetimenowyearmonthday	timedeltastrftimecaixin_search_urlr   find_allappendr   r    )keywords
start_dateend_datenow_timelast_dayr   soup	info_urls	next_infoall_resresr   r   r   
query_newsE   s&   
$

r8   c                 C   s   t td| dkS )u   
    判断某一链接是否博客
    Parameters
    ------
        url string 需要判断的链接
    Return
    ------
        bool 该url是否是博客URL
    zblog\.caixin\.comr   )lenr   r   r   r   r   r   is_blogf   s   
r:   c                 C   s   t | rt| S t| S )u   
    读取链接的内容
    Parameters
    ------
        url string 需要判断的链接
    Return
    ------
        title string 文章标题
        text string 文章内容
    )r:   	read_blogread_normal_articalr   r   r   r   	read_pager   s   r=   c                 C   sB   t | }|j }|d}d}|D ]
}|| d 7 }q||fS )Np 
r   titleget_textr,   )r   r3   rB   pstextr>   r   r   r   r<      s   

r<   c                 C   sX   t | }|j }|jdddhd}|d d}d}|D ]
}|| d 7 }q||fS )	Nr!   r   blog_contentr   r   r>   r?   r@   rA   )r   r3   rB   bcontentrD   rE   r>   r   r   r   r;      s   
r;   )r   NN)__doc__r   r$   bs4r   urllib.requestr   r   ImportErrorurllib2r+   r   UAr
   r   r   r   r8   r:   r=   r<   r;   r   r   r   r   <module>   s2   	

!	