gpt4 book ai didi

python - 如何用python检测字符串是否包含html代码?

转载 作者:IT老高 更新时间:2023-10-28 21:00:35 44 4
gpt4 key购买 nike

如何检测字符串是否包含 html(可以是 html4、html5,只是文本中的部分 html)?我不需要 HTML 版本,而是如果字符串只是一个文本或者它包含一个 html。文本通常是多行的,也有空行

更新:

示例输入:

html:

<head><title>I'm title</title></head>
Hello, <b>world</b>

非html:

<ht fldf d><
<html><head> head <body></body> html

最佳答案

您可以使用 HTML 解析器,例如 BeautifulSoup .请注意,它确实尽最大努力解析 HTML,甚至是损坏的 HTML,它可能非常宽松,也可能不是非常宽松,具体取决于 underlying parser。 :

>>> from bs4 import BeautifulSoup
>>> html = """<html>
... <head><title>I'm title</title></head>
... </html>"""
>>> non_html = "This is not an html"
>>> bool(BeautifulSoup(html, "html.parser").find())
True
>>> bool(BeautifulSoup(non_html, "html.parser").find())
False

这基本上试图在字符串中找到任何 html 元素。如果找到 - 结果是 True

另一个带有 HTML 片段的示例:

>>> html = "Hello, <b>world</b>"
>>> bool(BeautifulSoup(html, "html.parser").find())
True

或者,您可以使用 lxml.html :

>>> import lxml.html
>>> html = 'Hello, <b>world</b>'
>>> non_html = "<ht fldf d><"
>>> lxml.html.fromstring(html).find('.//*') is not None
True
>>> lxml.html.fromstring(non_html).find('.//*') is not None
False

关于python - 如何用python检测字符串是否包含html代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856035/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com