“Python中如何使用requests库发送HTTP请求”
在Python中,requests库是一个常用的HTTP请求库,可用于发送HTTP请求。这个库可以轻松发送HTTP/1.1请求,并自动处理连接池、下游代理、cookie等问题。requests库是在Python标准库的基础上构建的,因此使用非常简单。下面我们将简单介绍如何使用requests库发送HTTP请求。
首先,我们需要安装requests库。在cmd中输入以下命令来安装:
pip install requests
requests库安装完成后,我们可以在Python文件中引入该库:
import requests
requests库提供了多种HTTP请求方法,包括GET、POST、PUT、DELETE、HEAD、PATCH,下面我们将一一介绍。
## 1. GET请求
发送GET请求的方法为requests.get(),示例代码如下:
import requests url = 'https://www.baidu.com' response = requests.get(url) print(response.content)
该代码发送了一个GET请求到百度,然后将结果以字节形式打印出来。我们可以看到,response.content返回的是一个字节对象,表示响应内容。
requests.get()方法有多个参数,其中比较常用的有params、headers和timeout:
- params:请求参数,可以是字典或字符串格式。
- headers:请求头,可以是字典格式。
- timeout:请求超时时间,单位为秒。
举个例子,我们可以对百度搜索一下“Python”,代码如下:
import requests
url = 'https://www.baidu.com/s'
params = {'wd': 'Python'}
headers = {'User-Agent': 'Mozilla/5.0'}
timeout = 5
response = requests.get(url, params=params, headers=headers, timeout=timeout)
print(response.content)
该代码发送了一个GET请求,url变量指定了请求的URL,params变量指定了请求参数,headers变量指定了请求头,timeout变量指定了超时时间,请求结果和上面的例子类似。
## 2. POST请求
与GET请求类似,requests库也支持POST请求。发送POST请求的方法为requests.post(),示例代码如下:
import requests
url = 'http://httpbin.org/post'
data = {'name': 'Mike', 'age': 18}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.post(url, data=data, headers=headers)
print(response.json())
该代码发送了一个POST请求到httpbin.org/post,data变量指定了请求参数,headers变量指定了请求头,这里我们还使用了response.json()方法来将响应内容转换为JSON格式的字典对象,打印出来看一下。
requests.post()方法的参数与requests.get()方法类似,同时还有files参数可以用于上传文件。
## 3. PUT请求
PUT请求与POST请求类似,但语义有所不同。PUT操作是“幂等”的,即执行多次PUT操作的结果与执行一次PUT操作的结果相同。发送PUT请求的方法为requests.put(),示例代码如下:
import requests
url = 'http://httpbin.org/put'
data = {'name': 'Mike', 'age': 21}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.put(url, data=data, headers=headers)
print(response.json())
该代码发送了一个PUT请求到httpbin.org/put,data变量指定了请求参数,headers变量指定了请求头,我们同样使用response.json()方法获取响应内容。PUT方法的参数与POST方法相似。
## 4. DELETE请求
DELETE请求用于删除指定的资源。发送DELETE请求的方法为requests.delete(),示例代码如下:
import requests
url = 'http://httpbin.org/delete'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.delete(url, headers=headers)
print(response.json())
该代码发送了一个DELETE请求到httpbin.org/delete,headers变量指定了请求头,我们同样使用response.json()方法获取响应内容。
## 5. HEAD请求
HEAD请求用于获取指定资源的头部信息,与GET请求类似,但不会返回响应体。发送HEAD请求的方法为requests.head(),示例代码如下:
import requests
url = 'https://www.baidu.com'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.head(url, headers=headers)
print(response.headers)
该代码发送了一个HEAD请求到百度,headers变量指定了请求头,我们可以使用response.headers属性获取响应头信息。
## 6. PATCH请求
PATCH请求用于对指定资源进行部分更新,与PUT请求相比,PATCH请求更加精细化。发送PATCH请求的方法为requests.patch(),示例代码如下:
import requests
url = 'http://httpbin.org/patch'
data = {'name': 'Mike', 'age': 30}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.patch(url, data=data, headers=headers)
print(response.json())
该代码发送了一个PATCH请求到httpbin.org/patch,data变量指定了请求参数,headers变量指定了请求头。PATCH方法的参数与PUT方法相似。
综上所述,requests库提供了多种HTTP请求方法,而且使用非常方便。有了这个库,我们可以轻松实现各种有趣的HTTP请求功能。
