我在脚本中使用了ghost包来抓取网站。由于我要刮擦许多页面,因此鬼影被使用了很多次,每页大约30次,因此我可能要刮擦数百页。我注意到,在运行脚本时,大约25页后我开始出现Ghost :: Qt :: Qthread错误,甚至在此之前,ghost似乎并不一致,这意味着:ghost基本上是用来从一个简单的电话号码中提取电话号码的页面看起来像这样:



我怀疑这与内存过载或类似问题有关,但我必须承认我是Python的新手,并且对编程没有足够的技巧(我来自硬件世界)。

有人遇到过这类问题吗?
我知道ghost有一个叫做remove_page的方法,该方法应该删除创建的“页面”,但是我尝试使用它,但是我认为它不起作用(或者我缺少了一些东西),这是我尝试使用此remove并删除后的代码,我仍然可以使用该对象:

from ghost import Ghost
gh=Ghost()
page, page_name = gh.create_page()
gh.remove_page(page)


运行此命令并键入page后,我希望没有定义任何页面。如何释放资源,删除页面,甚至删除创建的gh对象?

最佳答案

当前版本的Ghost.py(0.2.3)已解决此问题。但是,0.1.2以后的版本在加载某些网站时会出现一些错误。在自己的进程中运行Ghost.py代码将解决以下旧版本的内存问题:

from multiprocessing import Process
from ghost import Ghost

def load_page(url):
    gh = Ghost()
    page, page_name = gh.open(url)

p = multiprocessing.Process(target=load_page, args=(url))
p.start()
p.join


如果需要从流程中获取数据,则必须考虑使用多处理队列。

关于python - 使用完Ghost.py后,有没有办法删除它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28662923/

10-12 20:10