2012-05-03 3 views
0

페이지 소스를 가져 오는 데 문제가 있습니다.기본 http 인증을 무시해야합니다.

require 'mechanize' 

    agent = Mechanize.new   
    page = agent.get("https://#{ip}/") 

끝이 오류 :

/home/lord/.gem/ruby/1.9.1/gems/mechanize-2.4/lib/mechanize/http/agent.rb:682:in `response_authenticate': 401 => Net::HTTPUnauthorized for https://82.144.208.6/cgi-bin/welcome.cgi -- no credentials found, provide some with #add_auth -- available realms: r722 (Mechanize::UnauthorizedError) 
from /home/lord/.gem/ruby/1.9.1/gems/mechanize-2.4/lib/mechanize/http/agent.rb:288:in `fetch' 
from /home/lord/.gem/ruby/1.9.1/gems/mechanize-2.4/lib/mechanize.rb:407:in `get' 
from /home/lord/ruby/ruby_backup/backup-done.ru:35:in `block (2 levels) in <main>' 

가 어떻게 인증 HTTP를 무시하고 소스를받을 수 있나요? thx

+2

그렇지 않으면이 페이지에 액세스 할 수 없습니다. –

+0

예, 그렇지만 curl을 사용하는 경우 - resp에 오류 페이지 –

답변

1

예외에는 페이지 접근자가 포함됩니다. 문서는 설명 : http://mechanize.rubyforge.org/Mechanize/ResponseCodeError.html

보십시오 : 당신은 자격 증명을 제공해야합니다

begin 
    page = agent.get ... 
rescue Mechanize::ResponseCodeError => e 
    page = e.page 
end 
+0

thx가 있습니다. ResponseCodeError를 HTTPUnauthorized로 변경하고 작업 완료 –

관련 문제