使用BeautifulSoup

时间:2018-06-08 16:03:54

标签: python beautifulsoup

我有以下代码:

surface = calendar_containers[0].findAll('td', class_ = 's-color')
    for i in surface:
        surfaces.append(i.find('span')['title'])

我用来从我想要搜索的网站中检索范围标题。

代码返回一个元素列表,直到它遇到一个没有span标题的元素,然后返回“TypeError:'NoneType'对象不可订阅”。

我想知道是否有可能使脚本在每次运行到'Nonetype'时附加一个像“None”这样的文本并继续追加下一个元素。

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,但您可能最好用以下代码替换surfaces.append(i.find('span')['title'])

cont = i.find('span')
title = cont['title'] if cont else 'None'
surfaces.append(title)

答案 1 :(得分:1)

试试这个:

surface = calendar_containers[0].findAll('td', class_ = 's-color')
for i in surface:
    try:
        surfaces.append(i.find('span')['title'])
    except TypeError:
        surfaces.append('None')