AttributeError:“NoneType”对象没有“get\u text”属性

2024-04-23 17:09:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用

Telephone = soup.find(itemprop="telephone").get_text()

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

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

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

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


Tags: text标记numbergethtml错误电话号码find
1条回答
网友
1楼 · 发布于 2024-04-23 17:09:37

在Python中使用try except可以很容易地做到这一点,它的工作原理是:如果try块中的给定命令执行时没有任何错误,那么它就永远不会进入except块,但是,如果在try块中执行命令时出现错误,则它会搜索相关的except处理程序并在相应的except块中执行命令。try-except块的常见用法是防止遇到问题时程序停止。

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

始终可以同时使用多个except命令来相应地处理各种异常。

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

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

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

相关问题 更多 >