use*_*620 14 ruby redirect http mechanize
我正在使用mechanize/nokogiri宝石来解析一些随机页面.我遇到301/302重定向问题.以下是代码片段:
agent = Mechanize.new
page = agent.get('http://example.com/page1')
Run Code Online (Sandbox Code Playgroud)
mydomain.com上的测试服务器将使用301/302状态代码将page1重定向到page2,因此我希望有
page.code == "301"
Run Code Online (Sandbox Code Playgroud)
相反,我总是得到page.code == "200"
.
我的要求是:
我知道我可以看到page1 agent.history
,但那不可靠.我也想要重定向状态代码.
如何使用mechanize实现此行为?
pgu*_*rio 23
您可以关闭重定向并继续关注位置标题:
agent.redirect_ok = false
page = agent.get 'http://www.google.com'
status_code = page.code
while page.code[/30[12]/]
page = agent.get page.header['location']
end
Run Code Online (Sandbox Code Playgroud)