介绍
Requests是一个Python库,它允许您向网站发送HTTP/1.1请求。它还带有一些额外的功能,如为HTTP请求添加标头。
安装
要安装Requests库,请使用pip命令。在命令行中输入以下命令即可:
pip install requests
发出HTTP请求
要发出HTTP请求,首先您需要导入requests模块, 然后使用requests.get()方法传递URL作为参数。
以下是一个示例:
import requests
response = requests.get('https://www.example.com')
此代码将向example.com发出HTTP GET请求,并将响应存储在response对象中。
请注意,如果URL不存在,则会引发异常。
GET请求
GET请求是向服务器请求特定资源的常用方法。以下是一个使用GET请求从example.com获取网页内容的例子。
import requests
response = requests.get('https://www.example.com')
print(response.text)
这将获取example.com网站的HTML并将其打印到控制台上。
POST请求
POST请求被用于发送数据到服务器的常见方法。以下是一个使用POST请求将用户名和密码发送到example.com的例子。
import requests
payload = {'username': 'myusername', 'password': 'mypassword'}
response = requests.post('https://www.example.com/login', data=payload)
print(response.text)
这个示例将使用用户名和密码向example.com的登录URL发出POST请求。请注意,请求数据以Python字典形式表示,然后使用"data"参数传递给post()函数。
请求头-Headers
请求头包含一些在请求期间发送到服务器的元数据。例如,“User-Agent”请求头包含有关正在请求资源的浏览器或应用程序的信息。以下是一个示例,展示如何使用请求头获取response的编码方式。
import requests
response = requests.get('https://www.example.com/')
print(response.encoding)
这个示例向example.com发出了一个GET请求,并在response对象中获取响应的编码方式。
但是,如果服务器不返回编码,则这种方法是不起作用的。您可以使用请求头传递Accept-Encoding参数,以便要求服务器返回编码方式。以下是一个示例:
import requests
headers = {'Accept-Encoding': 'gzip'}
response = requests.get('https://www.example.com/', headers=headers)
print(response.encoding)
这个示例在请求头中添加了Accept-Encoding参数,以便要求服务器返回gzip编码的响应。 现在,如果服务器返回gzip编码,则response.encoding应返回“gzip”。
操作Cookies
Requests还可以处理cookies。可以使用两种方法来处理cookie:
手动设置cookie并将其添加到包含请求数据的字典中。
自动通过创建Session对象来设置cookie。
手动设置cookie
以下是一个使用cookies的示例代码:
import requests
cookies = {'auth_token': 'my_token'}
response = requests.get('https://www.example.com/', cookies=cookies)
print(response.text)
这个示例手动设置了cookie,并将其传递给get()函数。如果名称为“auth_token”的cookie在example.com上存在,则服务器将返回请求的响应。
使用Session对象自动设置cookie
以下是使用Session对象实现cookie自动设置的示例代码:
import requests
s = requests.Session()
s.get('https://www.example.com/set-cookie/1')
response = s.get('https://www.example.com/cookies')
print(response.cookies['example_cookie'])
使用Session对象可以自动管理cookie。在此示例中,我们使用Session对象创建一个新的会话,并通过向服务器发送一个请求来设置cookie。然后我们通过像往常一样发送请求,但是我们不需要手动添加cookie, 因为它们已经包含在会话中。
异常处理
使用Requests时,可能会遇到各种HTTP错误。例如,如果试图从不存在的URL获取响应,则会引发异常。 可以使用try-except语句来捕获这些异常并对其进行处理。
import requests
try:
response = requests.get('https://www.example.com/404')
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
在此示例中,我们使用try-except语句来获取一个不存在的URL的响应。 使用raise_for_status()方法可以检查响应是否包含了错误消息。 如果响应包含错误信息,则HTTPError异常将被引发。
结论
Requests是一个非常流行的Python库,用于发送HTTP/1.1请求。它易于学习和使用,并提供了许多有用的功能,例如设置请求头和处理cookie。如果您需要与Web服务器交互,则可以使用Requests库轻松地执行此操作。