我试图创建一个单元测试,可以在html标签中找到body标签,我试图进行以下测试,但由于某些原因我发现语法错误,我有正确设置美丽的汤等:
for tag in soup.find_all(re.compile("""<html.*><body.*></body></html>""")):
count+=1
self.assertEqual(count,1)
答案 0 :(得分:2)
您可以使用.parent
属性查看感兴趣的标记的父标记:
html = '<html>\
<head>\
<title>Test</title>\
</head>\
<body>\
bla\
<a><body></body></a>\
</body>\
</html>\
<body>\
bla\
</body>'
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
bodies = soup.findAll('body')
for body in bodies:
parent = body.parent.name
if ( parent == 'html' ):
print('Good! Parent = ' + body.parent.name)
else:
print('Uh oh! Parent = ' + body.parent.name)
示例文档包含一个<body>
标记,该标记适当地是<html>
标记的子标记,一个嵌套在其他标记中的标记,以及一个完全位于文档外部的标记。输出是这样的:
Good! Parent = html
Uh oh! Parent = a
Uh oh! Parent = [document]