1
我试图创建一个unittest可以找到身体标签内的html标签,我试图做出以下测试,但由于某种原因,我看到语法错误,我有正确设置美丽的汤,等:美丽的汤发现标签标签
for tag in soup.find_all(re.compile("""<html.*><body.*></body></html>""")):
count+=1
self.assertEqual(count,1)
我试图创建一个unittest可以找到身体标签内的html标签,我试图做出以下测试,但由于某种原因,我看到语法错误,我有正确设置美丽的汤,等:美丽的汤发现标签标签
for tag in soup.find_all(re.compile("""<html.*><body.*></body></html>""")):
count+=1
self.assertEqual(count,1)
可以使用.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]
为什么这样?为什么不只是搜索所有'html'标签,然后检查每个'html'标签内是否有'body'标签? – Manhattan 2015-03-03 01:53:41
那么我想做的测试是专门找到body标签是在html标签内。 – Marorin 2015-03-03 02:32:20