网络操作

Python SELF ZH
第 23 级 , 课程 2
可用

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())

为了更好地理解 GETPOSTPUTDELETE 请求的本质,你需要阅读关于网络结构、互联网、Web 和 HTTP 的讲座。很快你就会学到这些内容。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION