0

ウォルマートのサイトから価格を削る簡単なルビーファイルがあります。geminstallscrapiとgeminstalltidyを実行しました。Windows 7ボックスでコードを実行すると、次のエラーが発生します。

エラー

c:/Ruby193/lib/ruby/gems/1.9.1/gems/scrapi-2.0.0/lib/scraper/reader.rb:216:in `r escue in parse_page': Scraper::Reader::HTMLParseError: didn't find tidy libs on your system. Please install tidy (http://tidy.sourceforge.net/) (Scraper::Reader ::HTMLParseError)

きちんとしたライブラリが見つからないようですので、パスに入れました。

Path = C:\ Ruby193 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ tidy_ffi-0.1.5 \ lib; C:\ Ruby193 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ tidy-1.1.2 \ lib

しかし、それでも同じようにスローされ、整頓されたlibsエラーを見つけることができません。

よろしくお願いします。

コード

require 'rubygems'
require 'scrapi'
require 'tidy'

scraper = Scraper.define do
process "div.firstRow div.priceAvail>div>div.PriceCompare>div.BodyS", :price => :text
result :price
end

url = URI.parse("http://www.walmart.com/search/search-ng.do?search_constraint=0&ic=48_0&search_query=LOST+third+season&Find.x=17&Find.y=1&Find=Find")
puts scraper.scrape(url)
4

2 に答える 2

0

私はまったく同じ問題を抱えていますが、Linux上です。

これは、reader.rb の find_tidy 関数と関係があります - どういうわけか、ライブラリを見つけることができません。私はその行に行ってコメントしましたが、現在は正常に機能しています。

      # Make sure the Tidy path is set and always apply the default
      # options (these only control things like errors, output type).
      # find_tidy
      options = (options || {}).update(TIDY_OPTIONS)

システムに整頓されたライブラリがあることが確実な場合は、試してみてください。

于 2013-01-29T20:43:03.650 に答える
0

Macでも同じ問題がありました。

攻撃的なコードは、reader.rb ファイルの 204 行目にあります。お気に入りのエディターで開きます。

atom /usr/local/lib/ruby/gems/2.2.0/gems/scrapi-2.0.0/lib/scraper/reader.rb

前の回答が言ったようにコメントアウトしてください。その後大活躍。

于 2015-07-31T11:03:10.117 に答える