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