2015-02-07 18 views
-1

我解析與AttributeError的:「NoneType」對象有沒有屬性「get_text」

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

HTML文本在電話號碼是itemprop標籤後的HTML的情況下,我收到了許多,並得到輸出(例如,"Telephone Number: 34834243244")。

當然,我收到沒有電話號碼被發現的情況下AttributeError: 'NoneType' object has no attribute 'get_text'。沒事兒。

但是,在這種情況下,我希望Python不要打印錯誤消息,而是設置Telephone = "-"並獲得輸出"Telephone Number: -"

誰能告訴我如何處理這個問題?

+1

兩種選擇,要麼:測試'是None'事先;或'嘗試'並捕獲'AttributeError'。 – jonrsharpe 2015-02-07 20:53:00

回答

1

您可以輕鬆地做到這一點通過使用try除了在Python中,它是這樣工作:如果在try塊中給定的命令沒有任何錯誤執行,然後它不會進入不同的塊,但是如果在執行某些錯誤在try塊的命令,那它搜索相關except處理程序,並在不同的塊執行相應的命令。 try塊的常見用法是阻止程序在遇到某些問題時停止。

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並相應地使用

相關問題