0

sinewソースコードからサンプルを実行しようとしていますが、私のマシンでは機能していません。サンプルは次のとおりです(githubから直接取得):

get "http://www.amazon.com/gp/bestsellers/books/ref=sv_b_3"
noko.css(".zg_itemRow").each do |item|
  row = { }
  row[:url] = item.css(".zg_title a").first[:href]
  row[:title] = item.css(".zg_title")
  row[:img] = item.css(".zg_itemImage_normal img").first[:src]
  csv_emit(row)
end

私はruby1.9.3とrvmでubuntu12.04を使用しています。これが私が入力したもので、その後にエラーが続きます。

jefferton@ubuntu:~/IdeaProjects/sinew_scrape$ sinew sell_list.sinew
curl http://www.amazon.com/gp/bestsellers/books/ref=sv_b_3
/home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/text_util.rb:48:in `popen': No such file or directory - tidy -asxml  -bare  -quiet  -utf8  -wrap 0 --doctype omit --hide-comments yes --force-output yes -f /dev/null (Errno::ENOENT)
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/text_util.rb:48:in `html_tidy'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/main.rb:33:in `html'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/main.rb:59:in `noko'
from sell_list.sinew:9:in `_run'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/main.rb:121:in `instance_eval'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/main.rb:121:in `_run'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/lib/sinew/main.rb:16:in `initialize'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/bin/sinew:19:in `new'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/bin/sinew:19:in `block in <top (required)>'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/bin/sinew:18:in `each'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/gems/sinew-1.0.2/bin/sinew:18:in `<top (required)>'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/bin/sinew:19:in `load'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/bin/sinew:19:in `<main>'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `eval'
from /home/jefferton/.rvm/gems/ruby-1.9.3-head/bin/ruby_noexec_wrapper:14:in `<main>'

もっと具体的な質問をしたいのですが、ここで何をすべきかわかりません。

ありがとう。

4

2 に答える 2

1

最初に Html-Tidy と Curl をインストールする必要があります。https://github.com/gurgeous/sinew/wikiを参照してください 。ここで表示されるエラーは、Html-Tidy が見つからないためです。スペースなしのフォルダー (プログラム ファイルではない) にインストールし、システムまたはユーザーの PATH 変数にパスを追加します。カールでも同じことをします。コマンドラインから 2 つのアプリをテストしますが、独自のマップではなく、それらが機能するかどうかを確認します。

于 2012-06-17T23:30:39.663 に答える
1

そのライブラリは調べる価値があるかもしれませんが、なぜ彼らが mechanize よりも curl を使用するのか、または html tidy が何のためにあるのか想像できません。そして、そのような実行可能ファイルへのシェルアウトは、悪いアプローチです。私の意見は、それを避けて、代わりに機械化を使用することです。

于 2012-06-18T01:37:54.717 に答える