我遇到spynner出现奇怪的错误,但问题是通用的。 Spynner是python的有状态的web浏览器模块。Python代码在__init __()函数中没有看到iniialized的类变量
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/spynner-2.16.dev0-py2.7.egg/spynner/browser.py", line 1651, in createRequest
self.cookies,
AttributeError: 'Browser' object has no attribute 'cookies'
Segmentation fault (core dumped)
这里的问题是其与段错误不是让我继续 - 当它的工作原理,但我几乎每次运行时我得到一个失败说这句话的,它工作正常。
望着用于spynner代码中,我看到,饼干变量其实在__init__()
函数初始化浏览器类是这样的:
self.cookies = []
现在失败的真正要说的是,__init__()
不运行因为它没有看到cookies变量。我不明白这怎么可能。没有限制到spynner模块可以有人冒险猜测如何python对象可能会失败,像这样的错误?
编辑:我绝对会在这里粘贴我的代码,除了它不是全部在一个地方为我紧凑地显示它。我应该早点完成,但这里是整体结构以及我如何实例化和使用spynner。
# helper class to get url data
class C:
def __init__(self):
self.browser = spynner.Browser()
def get_data(self, url):
try:
self.browser.load(url)
return self.browser.html
except:
raise
# class that does other stuff among saving url data to disk
class B:
def save_url_to_disk(self, url):
urlObj = C()
html = urlObj.get_data(url)
# do stuff with html
# class that drives everything
class A:
def do_stuff_and_save_url_data(self, url):
fileObj = B()
fileObj.save_url_to_disk(url)
driver = A()
# call this function for multiple URLs.
driver.do_stuff_and_save_url_data(url)
我运行事情是这样的---
# xvfb-run python myfile.py
的段错误可能是别的东西我做的。可能是因为我使用的xvfb而导致处理不当?我还不知道。我需要提到的是,我对python比较陌生。
我注意到,当我运行上面的代码并说'http://www.google.com'时,我每隔一段时间都会收到段错误。
你打电话给Spynner?你是继承浏览器? –
分割错误?无论你做什么,都不应该发生。 – user2357112
你能告诉我们你的代码吗?任何代码在任何时候都会执行'del self.cookies'吗? –