AttributeError:' NoneType'对象没有属性' get_text'

时间:2015-02-07 20:50:58

标签: python attributeerror

我正在使用

解析HTML文本
Telephone = soup.find(itemprop="telephone").get_text()

如果电话号码位于itemprop标记之后的HTML中,我会收到一个数字并获取输出(例如"Telephone Number: 34834243244")。

当然,如果没有找到电话号码,我会收到AttributeError: 'NoneType' object has no attribute 'get_text'。没关系。

但是,在这种情况下,我希望Python不要打印错误消息,而是设置Telephone = "-"并获取输出"Telephone Number: -"

有人可以建议如何处理这个错误吗?

1 个答案:

答案 0 :(得分:3)

你可以通过使用try来轻松地做到这一点,除了在Python中,它的工作方式如下:如果try块中的给定命令执行没有任何错误,那么它永远不会进入except块,但是如果执行命令时有一些错误在try块中,它搜索相关的except处理程序并执行相应的except块中的命令。 try except block的常见用法是防止程序在遇到某些问题时暂停。

try:
    Telephone = soup.find(itemprop="telephone").get_text()
except AttributeError:
    print "Telephone Number: -"

除了命令之外,您总是可以使用多个命令来相应地处理各种异常。

完全结构化的异常处理看起来像这样:

try:
    result = x / y
except ZeroDivisionError:
    print "division by zero!"
else:
    print "result is", result
finally:
    print "executing finally clause"

您可以找到有关Exception handling的更多信息并使用相应的