AttributeError:“ NoneType”对象没有属性“ get_text”

RC_*_*ata 1 python attributeerror

我正在解析HTML文本

Telephone = soup.find(itemprop="telephone").get_text()
Run Code Online (Sandbox Code Playgroud)

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

当然,AttributeError: 'NoneType' object has no attribute 'get_text'如果找不到电话号码,我会收到。那样就好。

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

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

Zda*_*daR 5

您可以通过在Python中使用tryexcept轻松地做到这一点,它的工作原理是:如果try块中的给定命令被执行而没有任何错误,则它永远不会进入except块,但是,如果在try中执行命令时出现一些错误然后,它搜索相关的except处理程序并在相应的except块中执行命令。tryexcept块的常见用法是在遇到某些问题时防止程序停止。

try:
    Telephone = soup.find(itemprop="telephone").get_text()
except AttributeError:
    print "Telephone Number: -"
Run Code Online (Sandbox Code Playgroud)

您始终可以同时使用多个(除命令以外)命令来相应地处理各种异常。

完全结构化的异常处理如下所示:

try:
    result = x / y
except ZeroDivisionError:
    print "division by zero!"
else:
    print "result is", result
finally:
    print "executing finally clause"
Run Code Online (Sandbox Code Playgroud)

您可以找到有关异常处理的更多信息并相应地使用