AttributeError:type object' _socketobject'没有属性'错误'

时间:2016-01-13 21:06:19

标签: python python-2.7 selenium-webdriver phantomjs

我正在使用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:

我只能假设这个问题的原因是什么?失败是套接字实际上已经关闭,尽管有错误,并且关闭进程中的其他内容已触发错误。

假设我是正确的,有没有办法实际捕获错误?

我有一个finally子句确保浏览器终止(所以我没有完全崩溃):

finally:
   browser.quit()

1 个答案:

答案 0 :(得分:0)

发现的问题:

异常条款except (httplib.HTTPException, 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:
        ...