我有工作正常以下時,有沒有孩子的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。*」))',所有的空格都不是空格。 –