Soup.select,只获得第一个结果

时间:2015-06-24 21:05:38

标签: python beautifulsoup

有没有办法从for i soup.select(table)获得第一个结果?我只想要第一个表,之后的每个表都应该被忽略。代码后跟一个if语句:if i.find('th', text = 'Foo'):

TLDR;

寻找类似的内容:if i[0].find('th', text = 'Foo'):

1 个答案:

答案 0 :(得分:2)

一种方法是在第一次迭代后立即break

for i in soup.select('table'):
    if i.find('th', text = 'Foo'):
        ...
    break

另一个是链接方法,如果找不到元素,则捕获异常:

try:
    el = soup.select('table')[0].find('th', text='Foo')
except AttributeError, TypeError:
    print('element not found')

注意:soup.select('table')[0]soup.find('table')会给出相同的结果