这知识点真细,Python 获取 HTTP 响应头和响应体
⛳️ 实战案例场景
这篇博客涉及的知识点很小,就是为了获取 HTTP 响应数据,其中包括响应头和响应体两部分内容,如果配合开发者工具查阅,本文对应的数据查看地址如下所示:
案例目标是使用 Python 读取这些信息,本文用到的模块是 requests
,特点是简洁,实用。
案例中使用的站点是 example.com,一个专门用于我们爬虫学习练手的站点。
获取服务器响应内容的代码非常简单,如下所示:
得到的结果是响应对象 <Response [200]>
⛳️ 可获取的响应头
上文中的 res 是响应对象,先通过 dir 函数,查阅一下其包含的属性和方法。
删除私有内容,得到如下结果集:
其中只读属性为:
apparent_encoding
:chardet 库编码;content
:响应内容(字节类型);is_permanent_redirect
:是否为永久定向;links
:解析链接;ok
:当status_code
小于 400,为 True;text
:响应内容(unicode 类型);
上述内容可以直接进行代码测试获取:
代码中被我注释掉的 res.text
和 res.content
就是获取网页请求体内容,区别可以简单理解为文本和二进制的区别。
除上述内容外,我们还可以获取网页编码等内容:
上述代码中的 res.headers
就已经实现本文标题提及的响应头内容,运行代码会输出如下数据。
该内容以字典形式呈现,可以直接对其中的值进行提取,所以一般看到的代码如下所示:
获取头部信息除了直接用字典的键访问意外,还可以使用 get()
方法获取,代码如下所示:
使用 get()
方法的好处就是可以设置一个默认值,当目标字典中没有对应键值时,可以返回。
前文的代码中还提及了 res.status_code
,即网页状态码,在编写代码时,可以将响应状态码与 requests
模块提供的内置响应状态码做对比,查看请求是否成功。
内置的状态码如下所示:
输出结果都为 200。
📣📣📣📣📣📣🌻 本文如果发现错误,欢迎在评论区中指正哦 💗
评论