首页 > 解决方案 > 如何在 Python 中以编程方式区分 XML 和 HTML?

问题描述

我正在发送一个 http 请求并获得一个 http 响应,但我希望能够提取响应的正文并知道它是否包含 XML 或 HTML。

理想情况下,即使响应中的内容类型不明确,此方法也应该有效(即,它应该适用于不一定指定内容类型的网站)。

目前,我正在使用 lxml 来解析 html/xml,但在解析时不知道我是在处理 HTML 还是 XML。

标签: pythonhtmlxmllxml

解决方案


您可以检查content-type标头以了解您收到的响应类型:

import requests

respond = requests.get(URL)
file_type = respond.headers['content-type']

print(file_type)

>>>'text/html; charset=utf-8'

你也可以做

print(file_type.split(';')[0].split('/')[1])

得到"html""xml"作为输出


推荐阅读