【问题标题】:Getting "undefined method `css' for nil:NilClass (NoMethodError)" with using HTTPparty & Nokogiri使用 HTTPparty 和 Nokogiri 获取“nil:NilClass (NoMethodError) 的未定义方法‘css’”
【发布时间】:2020-12-04 20:21:41
【问题描述】:

我不确定我做错了什么。我是编码新手,所以它可能非常简单。我环顾四周,找不到解决方案。它在 self.scrape_mainpage 函数的第一行。

require 'HTTParty'
require 'Nokogiri'
require 'byebug'
require 'sqlite3'




class Scraper

    attr_accessor :page
    restaurants = []


    def initialize(page="https://www.tripadvisor.com/Restaurants-g31892-Rogers_Arkansas.html")
        @page = page
        url_convert
    end

    def url_convert
        unparsed_page = HTTParty.get(@page)
        @url = Nokogiri::HTML(unparsed_page.body)
    end

    def self.scrape_mainpage
        href = @url.css('_15_ydu6b')[0]["href"].text
        byebug
    end

end

【问题讨论】:

  • 你能显示你正在运行的代码吗?比如创建类的实例等。另外,你应该在scrape_mainpage方法的第一行添加你的byebug,这样它就会触发!

标签: ruby nokogiri httparty


【解决方案1】:

当您第一次调用scrape_mainpage 时,@url 变量尚未设置。您必须以一种在调用scrape_mainpage 时设置@url 的方式组织代码。也许你可以把scrape_mainpage变成一个实例方法,这意味着它前面没有self语句,然后你在初始化这个类的实例之后调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2013-11-14
    • 2013-01-14
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多