2017-07-24 64 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) 
相关问题