验证字符串是否是python中的有效HTML?

sum*_*mit 4 python html-parsing

为了找出字符串包含具有正确语法的有效 html,最好使用什么技术?

我尝试从模块 html.parser 中查看 HTMLParser ,如果它在解析过程中没有产生任何错误,我会得出结论,该字符串是一个有效的 HTML 。但是它对我没有帮助,因为它甚至解析无效字符串而不会引发任何错误。

from html.parser import HTMLParser

parser = HTMLParser()

parser.feed('<h1> hi')
parser.close()
Run Code Online (Sandbox Code Playgroud)

我预计它会抛出一些异常或错误,因为缺少结束标记,但事实并非如此。

Rah*_*rma 5

    from bs4 import BeautifulSoup
    st = """<html>
    ... <head><title>I'm title</title></head>
    ... </html>"""
    st1="who are you"
    bool(BeautifulSoup(st, "html.parser").find())
    True
    bool(BeautifulSoup(st1, "html.parser").find())
    False
Run Code Online (Sandbox Code Playgroud)

  • 这是行不通的。对于无效的 html,如“&lt;div&gt;div&gt;”和“&lt;div&lt;&gt;div&lt;”,它返回“True” (5认同)