LoadError:无法加载此类文件-Capybara独立代码

Dil*_*ter 5 ruby webpage screen-scraping web-scraping

我正在使用Ruby和以下教程(http://ngauthier.com/2014/06/scraping-the-web-with-ruby.html)构建一个简单的矿工。

这是我目前拥有的代码:

#!/usr/bin/ruby

require 'capybara'
require 'capybara/poltergeist'

include Capybara::DSL
Capybara.default_driver = :poltergeist

visit "http://dilloncarter.com"

all(".posts .post ").each do |post|
    title = post.find("h1 a").text
    url   = post.find("h1 a")["href"]
    date  = post.find("a")["datetime"]
    summary = post.find("p.preview").text


    puts title
    puts url
    puts date
    puts summary
    puts " "

end
Run Code Online (Sandbox Code Playgroud)

并且我在加载gemfile时遇到错误,如下所示:

LoadError: cannot load such file -- capybara
from /Users/dilloncarter/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/dilloncarter/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from WP_Miner.rb:3
from /Users/dilloncarter/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我如何才能正确装载宝石?

tom*_*ave 5

你有没有安装capybarapoltergeist

我刚刚检查了您链接的教程,但似乎没有提到Gemfiles。
另外,如果这是您的脚本,则不需要Gemfile。

您只需要在系统上安装并在ruby加载路径中可用的宝石即可require找到它们。

在终端中尝试:

$ gem list capybara
Run Code Online (Sandbox Code Playgroud)

查看是否已安装。如果不是,请使用以下命令安装它们:

$ gem install poltergeist
Run Code Online (Sandbox Code Playgroud)

Capybara是Poltergeist的依赖项,将自动安装。

这样做,脚本应该可以工作。


小智 1

将 poltergeist 添加到您的 Gemfile gem 'poltergeist'