1. 简介
Python的requests库是一个用来发送HTTP请求的第三方库,它简化了与HTTP服务器之间的通信过程。它提供了简洁的API,使得发送GET、POST、PUT、DELETE等请求变得非常容易。requests库同样也支持文件上传、Cookies和会话管理等功能,因此非常适合与Web API进行交互。
2. 安装requests
2.1 在命令行中安装
可以使用pip命令在命令行中安装requests库:
pip install requests
2.2 在Python解释器中安装
在Python解释器中安装requests库,可以使用以下命令:
import requests
3. 发送GET请求
requests库提供了get方法来发送GET请求。下面是一个使用GET请求获取网页内容的例子:
import requests
response = requests.get("https://api.github.com")
print(response.text)
代码中,我们使用了requests.get方法发送了一个GET请求,请求https://api.github.com这个网址,并将响应的内容打印出来。response对象包含了服务器返回的所有内容,可以通过response.text来获取响应的内容。
4. 发送POST请求
requests库还提供了post方法来发送POST请求。下面是一个使用POST请求提交表单数据的例子:
import requests
data = {
'name': 'John',
'age': 30
}
response = requests.post("https://httpbin.org/post", data=data)
print(response.text)
在这个例子中,我们定义了一个data字典,包含了要提交的表单数据。然后使用requests.post方法发送POST请求,请求https://httpbin.org/post这个网址,并将表单数据作为请求的主体发送到服务器上。
5. 设置请求头
requests库允许你设置请求头,以满足服务器的要求。下面是一个示例:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get("https://www.google.com", headers=headers)
print(response.text)
在这个例子中,我们定义了一个headers字典,指定了User-Agent这个请求头。然后使用requests.get方法发送GET请求,并将headers作为参数传递进去。
6. 处理响应
在发送请求后,我们通常需要对服务器的响应进行处理。requests库提供了多种方法来处理响应,包括获取响应的内容、状态码、响应头等。
6.1 获取响应的内容
可以使用response.text来获取响应的内容:
import requests
response = requests.get("https://api.github.com")
content = response.text
上述代码中,我们将响应的内容赋值给了content变量。
6.2 获取状态码
可以使用response.status_code来获取响应的状态码:
import requests
response = requests.get("https://api.github.com")
status_code = response.status_code
上述代码中,我们将响应的状态码赋值给了status_code变量。
6.3 获取响应头
可以使用response.headers来获取响应的头部信息:
import requests
response = requests.get("https://api.github.com")
headers = response.headers
上述代码中,我们将响应的头部信息赋值给了headers变量。
7. 错误处理
在发送请求的过程中,可能会出现一些错误,例如请求超时、连接错误等。requests库提供了异常处理机制,方便我们捕获和处理这些错误。
以下是一个示例,演示了如何捕获异常:
import requests
try:
response = requests.get("https://www.invalidurl.com", timeout=5)
print(response.text)
except requests.exceptions.RequestException as e:
print("An error occurred:", e)
上述代码中,我们使用了try-except语句块来捕获并处理异常。如果发生了异常,会执行except语句块中的代码。
总结
本文介绍了使用requests库发送HTTP请求的基本方法和常用功能。我们可以使用requests.get发送GET请求,requests.post发送POST请求;可以设置请求头,处理响应内容、状态码和响应头;还可以处理请求过程中的异常。requests库非常简单易用,是进行HTTP请求的首选工具。