1

サイトの html をスクレイピングするために使用する次のコード行があります。ご覧のとおり、これにプロキシを渡します

doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => 'http://177.19.134.66:8080'))

これらのプロキシがダウンして、エラーが発生することがあります

接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。-接続(2)

私は ruby​​ を初めて使用しますが、プロキシ IP アドレスのリストを作成したいと考えています。次に、最初のものを使用してスクレイピングを試みます。失敗した場合は、チェックするものがなくなるまで次のものを試してください...

リストを作成してからエラーを処理するにはどうすればよいですか?

4

1 に答える 1

3

最も単純なものは次のとおりです。

['http://localhost:8080','http://localhost:8888','http://localhost:8000'].each do |proxy|
  break if @doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => proxy)) rescue nil
end

ループが終了すると「doc」はスコープ外になるため、「@doc」に注意してください。

于 2012-06-12T23:25:33.853 に答える