2015-10-13 77 views
1

我試圖在Python網頁中使用BeautifulSoup 4,通過其封閉文本在網頁中找到<a>標記。我用一個真實的表達,如下面的例子:BeautifulSoup:查找帶有嵌入標記的標記文本

>>> from bs4 import BeautifulSoup as BS 
soup = BS('<a>lalala <del>10</del> lalala </a>') 
soup1 = BS('<a>lalala 10 lalala </a>' 
>>> soup.find_all('a', text=re.compile('lalala')) 
[] 
>>> soup1.find_all('a', text=re.compile('lalala')) 
[<a>lalala 10 lalala </a>] 

爲什麼嵌入式<del></del>標籤不讓我找到<a>標籤,其文本中包含呢?我該如何解決它?

+0

**提示**你在你的例子:)忘了'進口re' –

+0

幹得好;-) – user3230304

回答

1

這有什麼,與你的正則表達式,但方式.string(該text說法是在一個名爲string在美麗的湯4.4.0)的說法作品即它返回None如果一個標籤包含一個以上的事情。 您可以使用a function做到這一點:

def in_text(tag): 
    return tag.name == 'a' and 'lalala' in tag.text 

soup.find_all(in_text) 

其中產量:

[<a>lalala <del>10</del> lalala </a>] 
相關問題