从html表达式Python中获取布尔值

时间:2013-05-22 13:46:33

标签: python html boolean beautifulsoup

我想为这个opertions分配一个布尔值:

soup = BeautifulSoup(page)
x = soup.find('tr')
y = x.findAll('td')
left = y[0]

如果assert('blah'in left['class'])成立 - 意味着左边有一个名为'blah'的类,那么 return true

2 个答案:

答案 0 :(得分:0)

BTW,您使用的是find而不是find_all,因此无需像y[0]

那样索引第一次重播
soup = BeautifulSoup(page)
x = soup.find('tr')
y = x.find('td', attrs={'class': 'blah'})
return len(y)>0 # or assert len(y)>0

答案 1 :(得分:0)

假设left有密钥class,那么

return True if 'blah' in left['class'] else False

如果这个假设并不总是成立,你可以用

来破坏它
return True if 'class' in left and 'blah' in left['class'] else False

但事情变得越来越难看。

如果使用assert,则在此条件不为真时抛出异常(并且不返回任何值)。如果那是你真正想要的;

 assert('blah' in left['class'])
 return True

将评估您的assert并抛出异常,或者继续并返回True。这相当于;

 if 'blah' in left['class']:
     return True
 else:
     raise AssertionError('blah not in left["class"]')