2017-07-24 53 views
1

我知道可能使用findAll函數查找與BeautifulSoup的HTML頁面中的字符串。如果目標是BeautifulSoup網站,例如:與BeautifulSoup檢查,如果一個HTML頁面不包含某個字符串

page = urllib2.urlopen('https://www.crummy.com/software/BeautifulSoup/bs4/doc/') 

soup = BeautifulSoup(page, "html.parser") 

print soup.findAll(text="python") 

其結果將是:

[u'python'] 

但是我怎麼檢查,看看是否有沒有任何出現次數?有可能有布爾結果嗎?

+3

檢查結果的長度會做什麼?如果沒有,這將是一個空的列表? – Psidom

+0

你說得對。我爲這個問題增加了一個擴展的例子,並且是合理的。 – EGS

+0

這是檢查是否存在具有該確切文本的元素。與包含字符串的html不同。 – pguardiario

回答

2

空列表進行評估,以False,所以if語句,你可以只使用一個,例如:

if soup.findAll(text="python") : 

或者,如果你想更明確的,你可以使用bool並把它交給布爾

bool(soup.findAll(text="python")) 

您也可以使用lambda在find_all收集標籤,如果text不包含某些字符串

soup.find_all(lambda tag: "python" not in tag.text) 

或者,如果你想檢查是否所有NavigableString S IN的soup不包含某些字符串使用:

all("python" not in s for s in soup.strings) 
相關問題