欢迎访问宙启技术站
智能推送

使用Python的requests函数请求网络资源

发布时间:2023-06-05 10:16:18

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请求,处理响应,并以多种格式获取服务器响应。有了这些工具,我们可以更轻松地获取和处理网络资源。