我有这段代码,我成功登录:
require 'mechanize'
require 'logger'
agent = Mechanize.new{|a| a.log = Logger.new(STDERR) }
agent.read_timeout = 60
def add_cookie(agent, uri, cookie)
uri = URI.parse(uri)
Mechanize::Cookie.parse(uri, cookie) do |cookie|
agent.cookie_jar.add(uri, cookie)
end
end
page = agent.get "http://www.webpage.com"
form = page.forms.first
form.correo_ingresar = "user"
form.password = "password"
page = agent.submit form
myarray = page.body.scan(/SetCookie\(\"(.+)\", \"(.+)\"\)/)
登录后我没有被重定向,所以我查看了网页,Java是重定向我的,但是如果我使用page = agent.get("http://webpage.com")
,则会删除所有会话cookie。而且我必须再次登录,这是一个循环,因为我没有超越它。我已经尝试了一些建议,例如ignore_discard
答案 0 :(得分:3)
看起来您有正确的代码来添加Cookie但忘记调用它。 最后尝试:
myarray.each{|line| add_cookie agent, 'http://www.sistemasaplicados.com.mx', "#{line[0]}=#{line[1]}"}
答案 1 :(得分:1)
当使用相同的实例获取新页面时,Mechanize会自动接收,存储和发送cookie。