3.1 模块 requests
在 Python 中,有个用于基本网络操作的库叫做requests
。它提供了很方便的接口来处理网络请求,允许你发送 HTTP 请求并轻松获取响应。
这个库不是 Python 自带的,所以在使用前你需要通过包管理器安装它。
打开你的终端并输入:
pip install requests
安装完库后,你可以在项目中使用 requests
模块。例如,这样你可以查到自己的外部 IP 地址:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # 显示响应状态码
print(response.json()) # 显示 JSON 响应
这里我们向服务(网站)ip.jsontest.com
发送了请求,它返回了一个含有请求 IP 地址的 JSON 对象。这个请求和获取响应都是用一行代码轻松搞定的——这非常方便。其余几行我们只是打印了服务器的响应。
在上面的例子中,我们调用了方法 get()
,下面我会介绍这个方法和 requests
对象的其他方法。
3.2 方法列表
requests
对象有方法来处理各种请求类型,其实就是对应每种 HTTP 请求类型的方法。
方法 | 描述 |
---|---|
requests.get()
|
发送 GET 请求以从服务器获取数据。 |
requests.post() |
发送 POST 请求以将数据发送到服务器。 |
requests.put() |
发送 PUT 请求以更新服务器上的数据。 |
requests.delete() |
发送 DELETE 请求以删除服务器上的数据。 |
requests.head() |
发送 HEAD 请求以获取响应头而不获取响应体。 |
requests.options() |
发送 OPTIONS 请求以获取服务器支持的方法和参数。 |
requests.patch() |
发送 PATCH 请求以部分更新数据。 |
requests.request() |
用于发送所有类型 HTTP 请求 的基本方法。 |
下面我们会探讨一些最基本的方法。
3.3 发送 GET
请求和 POST
请求
GET
请求通常只是一个 URL,也可以包含附加的参数字符串。
1. 发送基本的 GET
请求
GET
请求用于从服务器获取数据。唯一必需的参数是要发起请求的 URL。
示例:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # 显示响应状态码
print(response.json()) # 显示 JSON 响应
2. 发送带参数的 GET
请求
URL 也可以包含附加参数,格式是 key=value&key2=value2&…
在这个例子中,参数以字典形式传递给 params
变量:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. 发送 POST
请求
POST
请求可以包含请求体:文本、JSON 甚至图片。
示例:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 发送 PUT
请求和 DELETE
请求
1. 发送 PUT
请求
PUT
请求用于更新服务器上的数据。
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. 发送 DELETE
请求
DELETE
请求用于删除服务器上的数据。
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
为了更好地理解 GET
、POST
、PUT
和 DELETE
请求的本质,你需要阅读关于网络结构、互联网、Web 和 HTTP
的讲座。很快你就会学到这些内容。
GO TO FULL VERSION