【Python Requests 库介绍】

一、Requests库简介

Requests是一个广泛使用的Python第三方库,专门用于发送HTTP/HTTPS请求。与Python内置的urllib相比,Requests提供了更加直观和灵活的API。

1. 安装Requests

pip install requests

2. 为什么选择Requests

  • 人性化的接口:Requests的设计哲学是"人类优先",它提供了一个简洁的API,使得发送HTTP请求变得直观易懂。
  • 丰富的HTTP方法支持:除了基础的GET和POST请求,Requests还支持其他HTTP方法,如PUT、DELETE、HEAD等。
  • 灵活的参数和数据传递:Requests允许用户以多种方式传递查询参数、表单数据、多部分编码的文件等。
  • 自动处理Cookies:Requests可以自动处理服务器响应中的Cookies,并在后续请求中发送它们。
  • SSL证书验证:默认情况下,Requests会验证HTTPS请求的SSL证书,增加了安全性。
  • 会话和连接池:通过会话(Session)对象,Requests可以维持一个持久的连接池,提高了与特定服务器进行连续请求的效率。

二、基本使用

1. 发送请求

a. GET请求

GET请求是最常见的HTTP请求类型,用于从指定的URL检索数据。

import requests

# 发送GET请求
response = requests.get('https://www.example.com')

# 打印响应内容
print(response.text)

b. POST请求

POST请求通常用于向服务器提交数据。例如,填写在线表单时,表单数据通常通过POST请求发送到服务器。

# 发送POST请求,并附带一些数据
response = requests.post('https://www.example.com', data={'key': 'value'})

# 打印响应内容
print(response.text)

2. 处理响应

a. 状态码

HTTP状态码是服务器响应客户端请求的状态的数字代码。例如,200表示成功,404表示未找到。

# 打印状态码
print(response.status_code)

b. 响应头

响应头包含了服务器对请求的响应的元数据,例如内容类型、日期、服务器类型等。

# 打印响应头
print(response.headers)

三、高级特性

Requests库不仅提供了基本的HTTP请求功能,还包括一些高级特性,使得处理复杂网络请求变得更加高效和安全。

1. 会话对象

会话(Session)对象允许你在多个请求之间保持某些参数,例如cookies。这在需要处理登录认证或保持会话状态的场景中尤其有用。

import requests

# 创建一个会话对象
session = requests.Session()

# 发送请求,这些请求会共享相同的cookies等设置
response_one = session.get('https://www.example.com/login')
response_two = session.get('https://www.example.com/user')

# 关闭会话
session.close()

使用会话对象可以显著提高效率,尤其是在与同一个服务器进行多次交互时,因为它能够重用底层的TCP连接。

2. 超时设置

在进行网络请求时,设置超时可以防止程序在等待响应时无限期地挂起。

# 发送GET请求,并设置超时为5秒
response = requests.get('https://www.example.com', timeout=5)

如果请求在指定的时间内没有完成,Requests将引发一个超时异常。

3. 错误和异常处理

在使用Requests时,可能会遇到各种错误和异常,例如网络连接问题、超时等。

try:
    response = requests.get('https://www.example.com', timeout=5)
    response.raise_for_status()  # 如果响应状态码不是200,将引发HTTPError异常
except requests.Timeout:
    print("请求超时")
except requests.HTTPError as e:
    print(f"HTTP错误: {e}")
except requests.RequestException as e:
    print(f"请求异常: {e}")
  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武帝为此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值