gpt4 book ai didi

ruby-on-rails - capybara Poltergeist IOError : closed stream

转载 作者:行者123 更新时间:2023-12-04 03:44:31 27 4
gpt4 key购买 nike

我正在使用 Capybara 进行网页抓取。我注意到一个问题,之后 Poltergeist 会在内存中徘徊,消耗系统资源。 Poltergeist Github 页面指出 Capybara ( https://github.com/teampoltergeist/poltergeist ) 存在内存泄漏问题,他们建议调用

session.driver.quit

这解决了我的内存问题,但是当我稍后想再次使用 Capybara 时,我收到错误消息:

IOError: closed stream

我相信只需刷新 Capybara session 即可解决此问题,但找不到允许我重新启动全新 session 的公共(public)方法。

1) 有没有办法可以解决我的问题?

2) 重置 session 是重新打开流的最佳方式吗?

最佳答案

最有效的解决方案是启动一个新的 Capybara session ,如下所示:

session = Capybara::Session.new(:poltergeist, Rails.application)
session.visit(...)
session.driver.quit

对于我的程序,我将其封装在 WebScraper 模块中,如下所示:

module WebScraper
attr_accessor :session

delegate :visit, :save_screenshot, to: :session

def start_session
@session ||= Capybara::Session.new(:poltergeist, Rails.application)
end

def end_session
@session.driver.quit
@session = nil
end
end

关于ruby-on-rails - capybara Poltergeist IOError : closed stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com