Python中使用Requests模块

介绍

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库轻松地执行此操作。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签