RubyにてWebスクレイピングをおこないたいと思っております。
対象のURLは末尾の7桁の数字を変更して、変更した先のh2要素を抜くというものです。
初回のアクセス時にbasic認証があり、mechanizeで対策をしたのですが(以下コード)
現在問題点は2つございます。
①unexpected end of input errorが起きているが場所がわからない
②mechanizeの書き方が間違っていないか?
ご教示いただけると幸いです
require './Loader.rb' require 'open-uri' require 'openssl' require 'nokogiri' require 'mechanize' test = Loader.new test.loading agent = WWW::Mechanize.new{|a| a.log=Logger.new('access.log')} agent.verify_mode = OpenSSL::SSL::VERIFY_NONE agent.user_agent = 'Windows IE11' agent.add_auth("URLパス", 'ユーザー名', 'パスワード') url = "対象URL" $arry.each do $num charset = nil begin html = open(agent.get(url)) do |f| charset = f.charset f.read rescue Timeout::Error puts "caught Timeout::Error!" retry # タイムアウト用 rescue WWW::Mechanize::ResponseCodeError => e case e.response_code when "404" puts "caught Net::HTTPNotFound!" next # 404用 when "502" puts "caught Net::HTTPBadGateway!" retry # 502用 else puts "caught Excepcion!" + e.response_code retry end doc = Nokogiri::HTML.parse(html, nil, charset) doc.xpath('//div[@id="main"]/h2').each do |node| p node end end

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/09 04:19