http身份验证的Ruby Mechanize问题
我在使用http身份验证的网站上遇到了问题,我有一个网站列表,我对这些网站做了一些修改,但其中一些网站上有http身份验证。我不希望得到这些网站的内容,我希望能够确定它们是否由http auth保护,然后继续。例如,在下面的代码段中,agent.get永远不会返回,因此我无法处理它。我怎么处理这样的案子http身份验证的Ruby Mechanize问题,ruby,mechanize,http-authentication,mechanize-ruby,Ruby,Mechanize,Http Authentication,Mechanize Ruby,我在使用http身份验证的网站上遇到了问题,我有一个网站列表,我对这些网站做了一些修改,但其中一些网站上有http身份验证。我不希望得到这些网站的内容,我希望能够确定它们是否由http auth保护,然后继续。例如,在下面的代码段中,agent.get永远不会返回,因此我无法处理它。我怎么处理这样的案子 require 'mechanize' agent = Mechanize.new page = agent.get('http://freyalovesmusic.co.uk') 您可以假设
require 'mechanize'
agent = Mechanize.new
page = agent.get('http://freyalovesmusic.co.uk')
您可以假设,如果页面加载时间过长,则使用http身份验证。显然不是100%准确,但可能足够适合你的情况 您可以使用超时模块在一定时间后继续,即使agent.get从未返回:
require 'mechanize'
require 'timeout'
agent = Mechanize.new
begin
Timeout::timeout(5) do
page = agent.get('http://freyalovesmusic.co.uk')
end
rescue Timeout::Error
puts 'Page likely using http authentication'
end
它应该引发一个
Mechanize::UnauthorizedError
,但出于某种原因,它行为不端。也许你应该在mechanize github问题表单上报告它。哇,太棒了。。。这就是最终要做的,实际上是在阅读之前做的。这验证了我的想法。