Ruby::Mechanize::cookie\u jar

Ruby::Mechanize::cookie\u jar,ruby,cookies,mechanize,mechanize-ruby,Ruby,Cookies,Mechanize,Mechanize Ruby,我有一个网站,有四种不同的重新定向,似乎并不总是传递cookies 因此,我在这里进行了研究,并尝试了以下几种解决方案: 创建一个临时cookie_jar并每次分配它。 我还尝试手动传递cookies,如下所示: cookie = Mechanize::Cookie.new("TLSID",bot.cookie_jar.jar['.manageyourloans.com'] ["/"]["TLSID"].value) cookie.domain = ".manageyourloans.c

我有一个网站,有四种不同的重新定向,似乎并不总是传递cookies

因此,我在这里进行了研究,并尝试了以下几种解决方案:

创建一个临时cookie_jar并每次分配它。 我还尝试手动传递cookies,如下所示:

cookie = Mechanize::Cookie.new("TLSID",bot.cookie_jar.jar['.manageyourloans.com']    
["/"]["TLSID"].value)
cookie.domain = ".manageyourloans.com"
cookie.path = "/"
bot.cookie_jar.add(bot.history.last.uri,cookie)

cookie = Mechanize::Cookie.new("TLHID",bot.cookie_jar.jar['.manageyourloans.com']
["/"]["TLHID"].value)
cookie.domain = ".manageyourloans.com"
cookie.path = "/"
bot.cookie_jar.add(bot.history.last.uri,cookie)
上面的问题是,如果不需要传递,我会得到一个错误。
是否可以执行以下操作。有10-12个不同的cookie值似乎被传递,其中一些与每个页面(重定向)有关,或者只是其中的一些。如何执行上述操作并手动传递cookies,但如果该值不存在,则只传递null


或者有更好的方法吗?

我注意到,过去某个版本的mechanize存在一个问题,当cookie域看起来像:.domain.com并且请求是针对domain.com时,cookie将无法设置

这可能不是最好的解决方法,但我当时的解决方案是将monkey patch mechanize去掉cookie的域部分:

class Mechanize::Cookie
  class << self; alias_method :old_parse, :parse end
  def self.parse(uri, str, log = Mechanize.log, &block)
    str.gsub!(/domain[^;]*;/,'')
    old_parse(uri, str, log, &block)
  end
end
类机械化::Cookie

class我注意到,在过去的某个版本的mechanize中,当cookie域看起来像:.domain.com并且请求是针对domain.com时,cookie无法设置

这可能不是最好的解决方法,但我当时的解决方案是将monkey patch mechanize去掉cookie的域部分:

class Mechanize::Cookie
  class << self; alias_method :old_parse, :parse end
  def self.parse(uri, str, log = Mechanize.log, &block)
    str.gsub!(/domain[^;]*;/,'')
    old_parse(uri, str, log, &block)
  end
end
类机械化::Cookie
班