如何用BeautifulSoup检查HTML是否有head元素。
我有一个 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