我正在使用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)
我如何才能正确装载宝石?
运行一些测试并在每个项目上得到相同的错误:
Failures:
1) Register Frozen Pizza should be $5.00 each
Failure/Error: expect(subject.total).to eq 5.00
expected: 5.0
got: {"Frozen Pizza"=>1}
(compared using ==)
# ./register_spec.rb:11:in `block (3 levels) in <top (required)>'
2) Register Corn should be $0.50 each
Failure/Error: expect(subject.total).to eq 0.50
expected: 0.5
got: {"Corn"=>1}
(compared using ==)
# ./register_spec.rb:20:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)
不知道是什么导致了这 16 个错误。这是规范文件的一部分:
require 'register'
require 'timecop'
describe Register do
subject { described_class.new }
describe 'Frozen Pizza' do
it 'should be $5.00 each' do …Run Code Online (Sandbox Code Playgroud)