簡體   English   中英

AttributeError:類型對象“ _socketobject”沒有屬性“ error”

[英]AttributeError: type object '_socketobject' has no attribute 'error'

我正在使用python 2.7.10和Phantom JS 1.9.8。

最近,我開始看到有關.close()的問題。

特別:

我將瀏覽器對象設置為`browser = webdriver.PhantomJS()

然后,我創建BeutifulSoup對象:

browser.get(url)
webpage = browser.page_source
soup = BeautifulSoup(webpage, "lxml")

在browser.close()上,我時不時地得到:

...
except socket.error as s_err:
AttributeError: type object '_socketobject' has no attribute 'error'

哪個在“ catch子句”上觸發:

except socket.error as s_err:

我只能假定導致此“ catch”失敗的原因是盡管發生了錯誤,套接字實際上仍已關閉,並且關閉過程中的其他操作已觸發了該錯誤。

假設我是對的,有沒有一種方法可以真正捕獲錯誤?

我有一個finally子句,可確保瀏覽器終止(因此我不會完全崩潰):

finally:
   browser.quit()

發現了問題:

except (httplib.HTTPException, socket.error)的異常子句是錯誤的:

  • 它捆綁了兩個不相關的異常(不是世界末日,但還不能)
  • 我實際上是from socket import error as socket_error import errnofrom socket import error as socket_error但我的異常子句使用了不存在的socket.error(理論上應該可以,但是...)

我現在拆分了異常,並使用errno test / check:

except socket_error as s_err:
     if s_err == errno.ECONNREFUSED or s_err == errno.ECONNRESET:
        ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM