如何用BeautifulSoup检查HTML是否有head元素。

-1 投票
1 回答
625 浏览
提问于 2025-04-17 20:26

我有一个 HTML 文件:

<html>
<head>
</head>
<body>

</body>

</html>

我想用 BeautifulSoup 来遍历这个 HTML 树,我想知道 head 标签是否在 html 标签里面。

我试着找到了 html 标签,但现在我该怎么测试 head 是否在 html 标签里面呢?

invalid = """<html>
<html>

</html>
</html>"""

soup = BeautifulSoup(invalid, 'html.parser')
if soup.find("html") == 1:
    print ('found')
else:
    print 'no html tag'

1 个回答

0

Beautiful Soup 有一个内置的方法可以用来实现这个功能。

from bs4 import BeautifulSoup


invalid = """<html>
<body>
</body>
</html>"""

valid = """<html>
<head>
</head>
<body>
</body>
</html>"""


def hashead(soup):
    if soup.head:
        print 'found head'
    else:
        print 'no head'

badsoup = BeautifulSoup(invalid, 'html.parser')
goodsoup = BeautifulSoup(valid, 'html.parser')

hashead(badsoup)
# >>> no head
hashead(goodsoup)
# >>> found head

撰写回答