【问题标题】:Custom rake produces error: rake aborted! Don't know how to build task自定义 rake 产生错误:rake aborted!不知道如何构建任务
【发布时间】:2014-10-22 10:09:04
【问题描述】:

我正在尝试测试一个简单的 rake 任务(如下),但我不断收到错误消息:rake aborted! Don't know how to build task

lib/tasks/scrape.rake

task scrape_bbc: :environment do

  @request = HTTParty.get("http://feeds.bbci.co.uk/news/rss.xml")

  @html = Nokogiri::HTML(@request)
  @html.css("#item ul li")[0..4].each do |link|

   puts link.text

  end

end

错误的跟踪是:

rake aborted!
NoMethodError: undefined method `match' for #<HTTParty::Response:0x007fbcc4fb6430>
/Users/James/.rvm/gems/ruby-2.1.2@rails414/gems/httparty-0.13.1/lib/httparty/response.rb:66:in `method_missing'
/Users/James/.rvm/gems/ruby-2.1.2@rails414/gems/nokogiri-1.6.3.1/lib/nokogiri/html/document.rb:255:in `detect_encoding'
/Users/James/.rvm/gems/ruby-2.1.2@rails414/gems/nokogiri-1.6.3.1/lib/nokogiri/html/document.rb:201:in `parse'
/Users/James/.rvm/gems/ruby-2.1.2@rails414/gems/nokogiri-1.6.3.1/lib/nokogiri/html.rb:15:in `HTML'
/Users/James/Projects/colate/lib/tasks/scrape.rake:5:in `block in <top (required)>'
/Users/James/.rvm/gems/ruby-2.1.2@rails414/bin/ruby_executable_hooks:15:in `eval'
/Users/James/.rvm/gems/ruby-2.1.2@rails414/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => scrape_bbc

【问题讨论】:

  • 使用--trace 选项运行rake 任务并将日志放在这里。
  • 完整的痕迹在上面 ^

标签: ruby-on-rails ruby web-scraping rake rvm


【解决方案1】:

您的任务被称为scrape_bbc,但您正试图通过名称scrape 来调用它。

【讨论】:

  • 对不起,你是对的,但这是之前的尝试,我的错。实际的痕迹现在就在那里。
  • 如果您编辑您的问题,您应该添加明确的编辑,以便保留原始答案。我的回答已经没有任何意义了。现在或以后查看此内容的人会错过最初的上下文。
【解决方案2】:

Nokogiri 期待一个包含 HTML 的字符串。你给了它一个HTTParty::Response 对象。将 Nokogiri @response.body 作为参数而不只是 @response 应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2011-04-09
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    相关资源
    最近更新 更多