繁体   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