使用Python的requests函数请求网络资源
Python的requests函数是一款功能强大的HTTP库,它使用简单易懂的语法和API,允许我们发送HTTP/1.1请求。通过requests函数,我们可以轻松地访问Web资源,并以多种格式(如JSON、HTML、XML等)获取服务器的响应。
requests库的安装
requests库并不是Python的标准库,需要单独安装。我们可以通过pip命令来安装requests库:
pip install requests
请求授权
有些网站需要在发出请求之前进行认证。requests库允许我们使用基本身份验证或摘要身份验证。例如,以下代码演示了如何使用基本身份验证:
import requests url = 'http://example.com/api/v1' username = 'user' password = 'password' response = requests.get(url, auth=(username, password))
运行以上代码后,requests库将使用提供的用户名和密码进行认证,并返回成功的响应对象。如果认证失败,则会返回相关的HTTP状态码和错误信息。
请求参数
有时我们需要向API或网站发送参数以支持某些操作。requests库提供了多种方式来传递参数,包括将参数设置为查询字符串或将参数编码为HTTP请求正文。例如,以下代码演示了如何通过查询字符串传递参数:
import requests
url = 'http://example.com/search'
params = {'q': 'python requests', 'page': 1}
response = requests.get(url, params=params)
上述代码将发送一个GET请求到http://example.com/search,并将查询字符串设置为?q=python+requests&page=1。
请求头
有时我们需要向请求中添加特定的标头,这些标头通常用于权限设置、浏览器标识等。requests库提供了一个headers参数来设置请求头。例如:
import requests
url = 'http://example.com/api/v1'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
运行以上代码后,requests库将发送一个带有自定义请求头的GET请求。
获取响应
请求完成后,requests库将返回响应对象,该对象包含有关响应的所有信息,包括状态码、文本、头、cookies等。以下是一些常用的响应属性和方法:
1. response.content:响应内容的原始二进制数据
2. response.text:响应内容的文本形式
3. response.status_code:响应的HTTP状态码
4. response.headers:响应头的字典形式
5. response.cookies:响应中包含的cookies
6. response.json():JSON响应内容的字典形式
以下是通过requests库获取百度搜索结果的示例代码:
import requests
url = 'https://www.baidu.com/s'
params = {'wd': 'Python requests'}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:
print('请求成功')
print('响应文本:', response.text)
else:
print('请求失败,状态码:', response.status_code)
上述代码中,我们向百度搜索页面发送GET请求,查询字符串设置为wd=Python+requests,请求头设置了User-Agent标头。如果请求成功,我们将输出响应文本。
总结
在Python中,requests库是处理HTTP请求的一个强大工具,使用起来非常简单易懂。通过requests库,我们可以轻松地发送HTTP请求,处理响应,并以多种格式获取服务器响应。有了这些工具,我们可以更轻松地获取和处理网络资源。
