1

たくさんの JavaScript を使って Web ページをスクレイピングしようとしています。pguardiano の助けを借りて、このコードを Ruby で作成しました。

 require 'rubygems'
 require 'watir-webdriver'
 require 'csv'
 @browser = Watir::Browser.new
 @browser.goto 'http://www.oddsportal.com/matches/soccer/'
 CSV.open('out.csv', 'w') do |out|
 @browser.trs(:class => /deactivate/).each do |tr|
    out << tr.tds.map(&:text)
 end
 end

スクレイピングは、約 1 時間のスリープ時間でバックグラウンドで再帰的に行われます。ルビー、特に Web スクレイピングの経験がないので、いくつか質問があります。

  1. CPU と RAM の消費量が多い新しい Firefox セッションが開かれるたびに、それを回避するにはどうすればよいですか?

  2. GUI を使用せずに Firefox エンジンを使用することは可能ですか?

4

1 に答える 1

2

ヘッドレスオプションを試すことができます。

require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
b = Watir::Browser.start 'www.google.com'
puts b.title
b.close
headless.destroy

別の方法として、セレン サーバーを使用することもできます。3 つ目の方法は、 Kapowのようなスクレーパーを使用することです。

于 2012-04-08T16:30:56.013 に答える