requests
是 Python 中用于发送 HTTP 请求的常用第三方库,可以方便地实现多种请求方式(如 GET、POST、PUT、DELETE 等),以及文件上传、Cookies 管理等功能。以下是 requests 模块的使用方法和注意事项:
-
安装 requests:使用 pip 命令安装 requests 库,命令为 "pip install requests"。
以下是 requests
模块中一些常用方法的整理和示例:
1、requests.get(url, params=None, **kwargs)
:GET 请求通常用于获取资源,例如网页、图片或 API 数据。可以通过在 URL 中添加查询字符串参数或使用 params
参数来发送查询字符
import requests
response = requests.get('https://httpbin.org/get', params={'key1': 'value1', 'key2': 'value2'})
print(response.status_code) # 输出状态码,例如:200
print(response.content) # 输出二进制内容
print(response.text) # 输出文本内容
2、requests.post(url, data=None, json=None, **kwargs)
:POST 请求通常用于向服务器提交数据,例如表单数据、JSON 数据或文件上传等。可以使用 data
或 json
参数来传递数据。
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.status_code) # 输出状态码,例如:200
print(response.content) # 输出二进制内容
print(response.text) # 输出文本内容
3、requests.put(url, data=None, **kwargs)
:PUT 请求通常用于更新资源,例如向服务器上传新版本的文件或修改数据库记录等。可以使用 data
参数来传递需要更新的内容。
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.put('https://httpbin.org/put', data=payload)
print(response.status_code) # 输出状态码,例如:200
print(response.content) # 输出二进制内容
print(response.text) # 输出文本内容
4、requests.delete(url, **kwargs)
:DELETE 请求用于删除给定 URL 上的资源,并返回响应对象。
import requests
response = requests.delete('https://httpbin.org/delete')
print(response.status_code) # 输出状态码,例如:200
print(response.content) # 输出二进制内容
print(response.text) # 输出文本内容
5、requests.head(url, **kwargs)
:HEAD 请求和 GET 请求类似,但是不返回响应体。因此,响应对象只包含响应头信息。
import requests
response = requests.head('https://httpbin.org/get')
print(response.status_code) # 输出状态码,例如:200
print(response.headers) # 输出响应头信息
6、requests.patch(url, data=None, **kwargs)
:PATCH 请求用于部分更新资源。可以使用 data
参数来传递需要更新的内容。import requests
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.patch('https://httpbin.org/patch', data=payload)
print(response.status_code) # 输出状态码,例如:200
print(response.content) # 输出二进制内容
print(response.text) # 输出文本内容
7、requests.options(url, **kwargs)
:OPTIONS 请求获取有关请求 URL 支持的方法和其他详细信息。这个方法很少使用。
import requests
response = requests.options('https://httpbin.org/get')
print(response.status_code) # 输出状态码,例如:200
print(response.headers) # 输出响应头信息
在使用 requests
模块的方法时,需要注意以下事项:
-
requests.get(url, params=None, **kwargs)
:GET 请求可以通过在 URL 中添加查询字符串参数,或者使用params
参数来发送查询字符串。params
参数应该是一个字典类型。 -
requests.post(url, data=None, json=None, **kwargs)
:POST 请求传递数据可以使用data
或json
参数。如果是 JSON 数据,json
参数会自动将数据编码为 JSON 格式并设置适当的 Content-Type 头。data
参数应该是一个字典类型。 -
requests.put(url, data=None, **kwargs)
:PUT 请求可以通过data
参数来传递数据。如果请求中包含数据,则应该对 Content-Type 设置正确的值。 -
requests.delete(url, **kwargs)
:DELETE 请求删除给定 URL 上的资源,并返回响应对象。 -
requests.head(url, **kwargs)
:HEAD 请求和 GET 请求类似,但是不返回响应体。因此,响应对象只包含响应头信息。 -
requests.patch(url, data=None, **kwargs)
:PATCH 请求用于部分更新资源。可以使用data
参数来传递需要更新的内容。 -
requests.options(url, **kwargs)
:OPTIONS 请求获取有关请求 URL 支持的方法和其他详细信息。这个方法很少使用。
除此之外,还需要注意以下几点:
- 如果请求成功,响应对象的 status_code 属性会等于 200。
- 可以通过响应对象的 content 属性访问响应的二进制数据,通过 text 属性访问文本内容。
- 可以使用 headers 属性访问响应头信息,例如 Content-Type、Content-Length 等。
requests
模块还提供了其他参数和选项,例如 headers、timeout 和 auth 等。可以查看官方文档以获取更多信息。