【问题标题】:Is there a way to delete Ghost.py's leftovers after I finished using it?有没有办法在我用完之后删除 Ghost.py 的剩菜?
【发布时间】:2015-02-22 20:35:04
【问题描述】:

我在脚本中使用 ghost 包来抓取网站。由于我有很多页面要刮,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 对象?

【问题讨论】:

    标签: python ghost.py


    【解决方案1】:

    当前版本的 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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2018-04-28
      • 2021-08-25
      • 2020-05-27
      • 2021-07-15
      • 1970-01-01
      • 2019-12-13
      相关资源
      最近更新 更多