
    fi^                         d Z ddlZddlmZ ddlmZ ddlZddlZ	 	 	 	 dde	de	d	e	d
edef
dZ
	 	 	 	 dde	de	d	e	d
edef
dZdS )u]   
Date: 2023/9/15 19:00
Desc: 请求网站内容的函数: 在链接失败后可重复 20 次
    N)StringIO)Dictutf-8geturlencodingmethoddataheadersc                 V   d}	 	 |dk    r t          j        | d|          }||_        |S |dk    r!t          j        | d||          }||_        |S t	          d          #  |d	z  }t          d
t          |           d           t          j        d           |dk    rY dS Y nxY w)u  
    利用 requests 请求网站, 爬取网站内容, 如网站链接失败, 可重复爬取 20 次
    :param url: string 网站地址
    :param encoding: string 编码类型: "utf-8", "gbk", "gb2312"
    :param method: string 访问方法: "get", "post"
    :param data: dict 上传数据: 键值对
    :param headers: dict 游览器请求头: 键值对
    :return: requests.response 爬取返回内容: response
    r   Tr      timeoutr   postr   r
   r      请提供正确的请求方式      第u$   次链接失败, 最多尝试 20 次   N)	requestsr   r   r   
ValueErrorprintstrtimesleep)r   r   r	   r
   r   irs          G/usr/local/lib/python3.11/dist-packages/akshare/futures/requests_fun.pyrequests_linkr      s      	
A	Lb'BBB%
6!!M#rgNNN%
 !ABBB	FADADDDEEEJqMMM2vvtt v!s   %A! &A! A! !AB'c                 4   d}	 	 |dk    rHt          j        | d|          }||_        t          j        t          |j                  |          }|S |dk    rIt          j        | d||          }||_        t          j        t          |j                  |          }|S t          d	          # t           j	        j
        $ rP}|d
z  }t          dt          |           d|           t          j        d           |dk    rY d}~dS Y d}~nd}~ww xY w)u  
    利用 pandas 提供的 read_html 函数来直接提取网页中的表格内容, 如网站链接失败, 可重复爬取 20 次
    :param url: string 网站地址
    :param encoding: string 编码类型: "utf-8", "gbk", "gb2312"
    :param method: string 访问方法: "get", "post"
    :param data: dict 上传数据: 键值对
    :param headers: dict 游览器请求头: 键值对
    :return: requests.response 爬取返回内容: response
    r   Tr   r   r   )r   r   r   r   r   r   u"   次链接失败, 最多尝试20次r   N)r   r   r   pd	read_htmlr   textr   r   
exceptionsTimeoutr   r   r   r   )r   r   r	   r
   r   r   r   es           r   pandas_read_html_linkr'   5   s=     	
A	Lb'BBB%
L!&!1!1HEEE6!!M#rgNNN%
L!&!1!1HEEE !ABBB"* 	 	 	FABABBBAFFFJqMMM2vvttttt vvvv		s&   AB1 AB1 "B1 1DA DD)r   r   NN)__doc__r   ior   typingr   pandasr!   r   r   r   r'        r   <module>r.      s   
                  
 " "	"" " 	"
 " " " "N $ $	$$ $ 	$
 $ $ $ $ $ $r-   