Ruby Mechanize gem,从本地html副本恢复Mechanize :: Page对象

时间:2012-05-18 13:26:25

标签: ruby gem copy mechanize local

这是我的代码:

agent = Mechanize.new
page = agent.get 'http://google.com'
page.save 'google_index.htm'

如何将google_index.htm恢复为Mechanize::Page对象并继续使用该页面,例如:提交,解析等?

我尝试过YAML::dump()Marshal::dump(),但这似乎是不可能的:

irb(main):024:0> page.class
=> Mechanize::Page

然后:

irb(main):013:0> YAML::dump(page) 
TypeError: can't dump anonymous class Class 

irb(main):023:0> Marshal::dump(page)
TypeError: no marshal_dump is defined for class Nokogiri::XML::Element

2 个答案:

答案 0 :(得分:1)

    f = File.open("google_index.htm")
    doc = Nokogiri::HTML(f)
    # do stuff with f

答案 1 :(得分:1)

也许你可以恢复cookie:

agent.cookie_jar.save_as('cookies')
agent.cookie_jar.load('cookies')

你的会话很可能会过期。