Ruby 如何在Mechanize中获取重定向日志?
在ruby中,如果您使用mechanize,下面的301/302重定向如下Ruby 如何在Mechanize中获取重定向日志?,ruby,redirect,mechanize,Ruby,Redirect,Mechanize,在ruby中,如果您使用mechanize,下面的301/302重定向如下 require 'mechanize' m = WWW::Mechanize.new m.get('http://google.com') 如何获取mechanize重定向通过的页面列表?(如=>=>) 好的,下面是mechanize中负责重定向的代码 elsif res_klass <= Net::HTTPRedirection return page unless follow_redir
require 'mechanize'
m = WWW::Mechanize.new
m.get('http://google.com')
如何获取mechanize重定向通过的页面列表?(如=>=>)
好的,下面是mechanize中负责重定向的代码
elsif res_klass <= Net::HTTPRedirection
return page unless follow_redirect?
log.info("follow redirect to: #{ response['Location'] }") if log
from_uri = page.uri
raise RedirectLimitReachedError.new(page, redirects) if redirects + 1 > redirection_limit
redirect_verb = options[:verb] == :head ? :head : :get
page = fetch_page( :uri => response['Location'].to_s,
:referer => page,
:params => [],
:verb => redirect_verb,
:redirects => redirects + 1
)
@history.push(page, from_uri)
return page
elsif res\u klass重定向\u限制
重定向动词=选项[:动词]==:头?:头:得到
page=fetch\u page(:uri=>response['Location'])。到,
:referer=>page,
:params=>[],
:动词=>重定向动词,
:重定向=>重定向+1
)
@history.push(第页,来自_uri)
返回页
但是尝试m.history.map{p|puts p.uri}显示的uri是上一页的3倍。我不确定,但有几件事需要尝试:
m.history[i].uri中的内容
这里的关键是利用内置的登录Mechanize。下面是使用内置Rails日志记录工具的完整代码示例 需要“机械化” 需要“记录器” mechanize\u logger=logger.new('log/mechanize.log') mechanize_logger.level=记录器::信息 url='1〕http://google.com" agent=Mechanize.new agent.log=mechanize\u记录器 agent.get(url) 然后检查日志目录中log/mechanize.log的输出,您将看到整个mechanize过程,包括中间URL for m.redirection_limit in 0..99 begin m.get(url) break rescue WWW::Mechanize::RedirectLimitReachedError # code here could get control at # intermediate redirection levels end end