Получение «неопределенного метода ‘css’ для nil: NilClass (nometoderror)» с использованием HTTPparty

#ruby #nokogiri #httparty

#ruby #nokogiri #httparty

Вопрос:

Я не уверен, что я делаю неправильно. Я новичок в кодировании, поэтому это может быть что-то очень простое. Я огляделся и не могу найти решение. Это в первой строке функции 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
 

Комментарии:

1. Не могли бы вы показать код, который вы используете? Например, создание экземпляра класса и т. Д. Кроме того, вы должны добавить свой byebug в качестве первой строки в scrape_mainpage методе, чтобы он сработал!

Ответ №1:

scrape_mainpage При первом вызове @url переменная еще не установлена. Вы должны организовать свой код таким образом, чтобы время scrape_mainpage вызова @url было установлено. Возможно, вы можете превратиться scrape_mainpage в метод экземпляра, это означает self , что перед ним нет инструкции, тогда вы вызываете его после инициализации экземпляра этого класса.