2017-10-19 6 views
0

をこする:ルビーMechanizeのは、私はそれが動作する、ウェブサイトのすべての結果ページをこすりしようとしているが、時々スクリプトが停止し、このエラーを表示するResponseCodeError

502 => Net::HTTPBadGateway for https://website.com/id/12/ -- unhandled response (Mechanize::ResponseCodeError) 

私はそれが見つかった場合でも、スクリプトを続けていきたいと考えてエラー。

マイスクリプト:

require 'mechanize' 
require 'csv' 

a = Mechanize.new 
CSV.open('datas.csv', "wb") do |csv| 
    page = a.get("https://website.com/?page=1-200") #498 
    number = 0 
    page.links_with(:class => "btn btn-default").each do |link| 
     post_link = link.href 
     inside_page = a.get("https://website.com#{post_link}") 
     title = inside_page.at("h1.serviceTitle").text.strip 
     author = inside_page.at(".name").text.strip 
     number+=1 
     csv << [title, author] 
    end 
end 

任意のアイデア?

答えて

0

これは、適切な例外処理によって簡単に解決されます。あなたはcheck this page for a better explanationあなたのコードのよう

、あなたはそれが動作しますので、

CSV.open('datas.csv', "wb") do |csv| 
    begin 
    a = Mechanize.new 
    page = a.get("https://website.com/?page=1-200") #498 
    number = 0 
    page.links_with(:class => "btn btn-default").each do |link| 
     post_link = link.href 
     inside_page = a.get("https://website.com#{post_link}") 
     title = inside_page.at("h1.serviceTitle").text.strip 
     author = inside_page.at(".name").text.strip 
     number+=1 
     csv << [title, author] 
    end 
    rescue => e 
    // do nothing and move on to the next line 
    end 
end 
+0

THXのような例外を処理することができますすることができます!私はあなたのリンクをチェックします – Rubyx

関連する問題