我有工作正常以下时,有没有孩子的h4
标签:re.compile不BeautifulSoup4文本元素工作时,有孩子
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
的文本中,那么我可以继续。
不知道,但不会是're.compile (“。* Super Users。*”,flags = re.DOTALL)'来处理换行符? –
不幸的是,这似乎并没有奏效。这可能是行饲料,因为我测试'如果h4.text [:5] ==“超级”'并且它通过。也许我的正则表达式关闭? – rjbogz
好吧,试试're.compile(“。* Super \ s + Users。*”))',所有的空格都不是空格。 –