requests

发布时间 2023-07-31 19:38:36作者: loxiao123

requests库总结

1、requests库作用

2、get方法

3、post方法

4、requests库常见抛出异常


1、requests库作用



  • requests库是一个用于发送HTTP请求的Python库。它提供了一种简单而直观的方式来与Web服务进行交互,例如在爬取网页数据、访问API或进行HTTP通信等方面。使用requests库,你可以轻松地向服务器发送GET、POST、PUT、DELETE等各种类型的请求,并获取响应结果。

  • 主要功能包括:

    1、发送HTTP请求:使用requests库,你可以发送各种类型的HTTP请求,如GET、POST、PUT等,以及定制请求头、请求参数、文件上传等功能。

    2、处理响应结果:requests库能够处理服务器返回的响应结果,包括获取响应状态码、响应头、响应正文等信息。你可以根据需要对响应结果进行解析和处理。

    3、Session管理:requests库支持使用Session对象来管理会话,可以在多个请求之间保持会话状态,例如保存登录信息、设置Cookie等。

    4、身份认证:requests库提供了基本身份认证、摘要认证和OAuth等身份认证机制,可以轻松地在请求中添加身份凭证。

    5、SSL验证:requests库默认会验证HTTPS请求的SSL证书,你可以自定义验证方法或禁用SSL验证。

    6、文件上传和下载:requests库可以方便地处理文件的上传和下载,支持多种文件传输方式,如普通文件上传、分块上传、断点续传等。


2、get方法



  • 基本使用方法:

    import requests

    headers = {'User-Agent':'xxx'(用于伪装成浏览器)}

    res = requests.get('url',headers = headers)

    get方法获取网址中的内容并保存在res中


    print(res.text)



    GET 方法返回的数据类型没有固定规定,而是根据服务器端实际配置和所请求资源的内容来确定。通常,通过查看响应头部的 Content-Type 字段可以了解服务器返回的数据类型。

    通常有以下类型的数据:

    1、文本数据:服务器可以返回纯文本数据,如普通文本、HTML、XML、JSON 等。这些数据类型通常以字符串的形式返回。

    2、图像数据:当请求的资源是图像文件时,服务器可以返回图像数据,如JPEG、PNG、GIF 等格式。这些数据类型以二进制形式返回。

    3、二进制数据:有时,服务器可能会返回二进制数据,例如文件下载或媒体文件。这些数据以字节流的形式返回。

    4、文件数据:在某些情况下,服务器可能直接返回文件数据,并提供下载链接。这样的响应可能包含文件的元数据和字节流。


3、post方法



  • 基本使用方法:

    import requests

    url = "https://example.com/api"

    data =

    创建的字典即为要提交的数据


    headers = {"Content-Type": "application/json"}

    response = requests.post(url, json=data, headers=headers)

    获取的响应存在response中




    该例子使用post()方法发送请求,并将响应存储在response变量中。该方法接受两个参数:URL和数据。你可以通过传递一个字典或一个字符串作为数据来发送POST请求。
    除了data参数,post()方法还有其他一些可选参数,如headers、params、json等。这些参数可以用于设置请求头、查询字符串参数或发送JSON数据。




4、requests库常见抛出异常



  • ConnectionError :网络问题,如DNS查询失败,拒绝连接...
  • Response.raise_for_status()抛出一个HTTPError异常:404错误等
  • Requests抛出一个Timeout异常;请求超时
  • Requests抛出一个TooManayRedirects异常:请求超过设定的最大重定向次数



    为避免这些异常导致整个程序停止而需全部重新运行的情况,可以使用python的try-except语句,示例如下:

    import requests

    try:

    response = requests.get('https://example.com', timeout=5)

    # 处理响应数据

    print(response.text)

    except requests.exceptions.Timeout:

    # 请求超时异常处理

    print("请求超时,请稍后重试或检查网络连接。")

    except requests.exceptions.RequestException as e:

    # 其他请求异常处理

    print("请求发生错误:", e)




    通过将请求代码放置在try块中,可以捕获可能抛出的Timeout异常。然后,可以根据具体情况进行适当的处理,例如打印错误信息、重试请求或执行其他操作(即当出现对应异常时就会跳过try:下的语句而去执行except:下的语句)