2012-06-17 1 views
0

sinew 소스 코드에서 샘플을 실행하려고하지만 내 컴퓨터에서 작동하지 않습니다.Sinew (ruby web scraper) 예제가 내 컴퓨터에서 작동하지 않습니다

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 

내가 루비 1.9.3와 RVM에 우분투 12.04을 사용하고 있습니다 : 여기에 (자신의 GitHub의에서 직접 촬영) 샘플입니다. 여기에 내가 입력 한 내용이 있으며 그 뒤에 오류가 있습니다.

[email protected]:~/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>' 

나는 좀 더 구체적인 것을 알고 싶지만 여기서 무엇을해야할지 모르겠다.

감사합니다.

답변

1

그 라이브러리는 조사할만한 가치가 있을지 모르지만 왜 기계화 된 말풍선을 사용하는지 또는 HTML 깔끔함이 무엇인지에 대해 상상할 수는 없습니다. 그리고 그러한 실행 파일로 포격하는 것은 나쁜 접근입니다. 내 의견은 그것을 피하고 대신 기계화를 사용하는 것입니다.

+0

감사합니다. mechanize는 좋습니다! html_tidy는 * 할 일 *이 * html을 더 깔끔하고 쉽게 작업 할 수 있도록 만들어졌습니다 *. 결국 잘못된 형식의 사이트 전체가 파괴됩니다. –

1

먼저 Html-Tidy와 Curl을 설치해야합니다 (https://github.com/gurgeous/sinew/wiki ). 오류는 Html-Tidy를 찾을 수 없기 때문에 발생합니다. 공백없이 프로그램 파일이 아닌 폴더에 설치하고 경로를 시스템 또는 사용자 PATH 변수에 추가하십시오. 말리는 것과 똑같이하십시오. 명령 줄에서 두 개의 응용 프로그램을 테스트하지만 자체 맵에서는 테스트하지 마십시오.

+0

감사합니다. 그러나 나는 내가 가지고 있었던 것을 모르는 문제를 해결했기 때문에 다른 하나를 선택했다. –

+0

pguardiario가 맞습니다. 내 대답에도이를 언급해야합니다. - 행복한 코딩! – peter