如果h4
标记中没有子项,我有以下工作正常:
if (BS.find('div', {"id" : "table_content"}).find('h4', text=re.compile(".*Super Users.*"))):
print "Found Super Users!"
但是,当h4
标记有子项时,打印永远不会发生。我尝试使用以下方法进行调试:
for h4 in BS.find('div', {"id" : "table_content"}).findAll('h4'):
print h4.text
产生:
Users
Super Users
(TMP)
Administrators
....
基本上,(TMP)
部分似乎正在抛弃它,因为它是来自h4
标记的子文本的文本,如下所示:
<h4>Super User
<span>(<a href="/tmp">TMP</a>)</span>
</h4>
这样做的缺点是(TMP)
并不总是存在,所以我不能做出假设。我只需要知道Super User
是否在h4
的文本中,然后我就可以继续。
答案 0 :(得分:2)
请勿在{{1}}参数中设置标记类型(h4)或将其单独设置为BS的方法:
find
或
if (BS.find('div', {"id" : "table_content"}).find(text=re.compile(".*Super Users.*"))):
print "Found Super Users!"