响应对象(response object)是在 Python Web 应用程序中最常用的对象之一。在 Web 应用程序中,请求(request)将发送到 Web 服务器来获得一个响应(response)。Python 中的 response 对象包含向客户端发送响应的方法和属性。
一个典型的 response 对象主要有以下几个常用的属性和方法:
- status_code:响应的状态码。它是从 HTTP 规范定义的状态码列表中取得的;
- headers:响应头信息,它是一个字典对象,包含了诸如 Content-Type、Content-Length 等关于响应的元数据;
- cookies:响应返回的 Cookie,是一个字典对象,包含了所有 Cookie 的键值对;
- content:响应的内容;
- text:响应的内容的文本形式;
- encoding:响应的编码;
- json():将响应的内容解码为 JSON 格式;
- raise_for_status():如果响应状态码是 400 或更高,则会抛出异常。
下面通过两个实例说明 response 对象的使用。
示例一:获取豆瓣 Top 250 电影列表
首先需要安装 requests 库,它是一个用于发送 HTTP/1.1 请求的库。
import requests
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
r = requests.get(url, headers=headers)
print(r.status_code)
print(r.headers['Content-Type'])
print(r.cookies)
print(r.encoding)
上面的代码使用 requests 库向豆瓣 Top 250 的电影列表发送了一个 get 请求,并将响应保存到变量 r中。
运行代码后,可以看到控制台打印出了如下信息:
200
text/html; charset=utf-8
<RequestsCookieJar[]>
utf-8
这里,我们通过 r.status_code 获取了响应的状态码,通过 r.headers 获取了响应头信息,通过 r.cookies 获取了响应返回的 Cookie,通过 r.encoding 获取了响应的编码。需要注意的是,headers、cookies 等属性返回的都是字典对象。
示例二:获取短网址的真实链接
下面通过获取短网址的真实链接来演示如何使用 response 对象。
在 Python 的 requests 库中,有一个叫做 allow_redirects 的参数,它默认为 True,表示允许跟踪网页重定向。如果我们将其设为 False,那么响应对象中的 URL 就是短链接的 URL,否则就是长链接的 URL。
代码如下:
import requests
url = 'https://t.cn/EA7agS2'
r = requests.get(url, allow_redirects=False)
print(r.status_code)
print(r.headers['Content-Type'])
print(r.cookies)
print(r.encoding)
print(r.url)
上面的代码获取了一个短网址 https://t.cn/EA7agS2 的真实链接,并将响应保存到变量 r 中。
执行代码后,您可以看到控制台输出如下信息:
302
text/html
<RequestsCookieJar[]>
ISO-8859-1
http://bbs.feng.com/read-htm-tid-12156963.html
这里需要注意的是,在 allow_redirects=False 情况下,status_code 的返回值为 302,表示重定向;而在 allow_redirects=True 情况下,返回的是长链接的状态码。
以上就是 response 对象的使用攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:response对象的使用(实例讲解) - Python技术站