使用 HTTPparty 和 Nokogiri 获得 "undefined method `css' for nil:NilClass (NoMethodError)"
Getting "undefined method `css' for nil:NilClass (NoMethodError)" with using HTTPparty & Nokogiri
我不确定我做错了什么。我是编码新手,所以它可能非常简单。我环顾四周,找不到解决方案。它在 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
时,尚未设置 @url
变量。您必须以设置调用 scrape_mainpage
时 @url
的方式组织代码。也许你可以把 scrape_mainpage
变成一个实例方法,这意味着它前面没有 self
语句,然后你在初始化这个 class.
的实例后调用它
我不确定我做错了什么。我是编码新手,所以它可能非常简单。我环顾四周,找不到解决方案。它在 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
时,尚未设置 @url
变量。您必须以设置调用 scrape_mainpage
时 @url
的方式组织代码。也许你可以把 scrape_mainpage
变成一个实例方法,这意味着它前面没有 self
语句,然后你在初始化这个 class.