1

我正在尝试使用大量 javascript 抓取网页。在 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 小时。我没有 ruby​​ 的经验,尤其是网页抓取,所以我有几个问题。

  1. 每次打开一个新的 firefox 会话并消耗大量 cpu 和 ram 时,我怎样才能避免这种情况?

  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

另一种方法是使用selenium 服务器。第三种选择是使用像Kapow这样的刮刀。

于 2012-04-08T16:30:56.013 回答