#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
, что перед ним нет инструкции, тогда вы вызываете его после инициализации экземпляра этого класса.