나는 웹 스 크레이퍼를 만들고있어. 그래서 어떻게 배울 수 있는지.Ruby 및 Nokogiri에서이 정의되지 않은 메서드 오류가 발생하는 이유는 무엇입니까?
는scraper.rb : 23 : 'item_container'에서 : 정의되지 않은 메서드 전무에 대한 'CSS'내가 터미널에서 실행할 때, 나는 내용의 오류 메시지가 무엇입니까 NilClass (NoMethodError)은 여기
은 내 scraper.rb의 코드
require 'HTTParty'
require 'Nokogiri'
class Scraper
attr_accessor :parse_page
def initialize
doc = HTTParty.get("http://store.nike.com/us/en_us/pw/mens-nikeid-lifestyle-shoes/1k9Z7puZoneZoi3")
@parse_page ||= Nokogiri::HTML(doc) #memoized @parse_page so it only gets assigned once.
end
def get_names
names = item_container.css(".product-name").css("p").children.map { |name| name.text }.compact
end
def get_prices
prices = item_container.css(".product-price").css("span.local").children.map { |price| price.text }.compact
end
private
def item_container
parse_page.css(".grid-item-info")
end
scraper = Scraper.new
names = scraper.get_names
prices = scraper.get_prices
(0...prices.size).each do |index|
puts "- - - index: #{index + 1} - - -"
puts "Name: #{names[index]} | Price: #{prices[index]}"
end
end
왜이 오류가 발생하는지 알려주실 수 있습니까? 어떻게 해결할 수 있습니까? 미리 감사드립니다.
필자는'require'에 전달 된 값을 소문자로 입력해야한다고 생각합니다. 그렇게 한 후에,이 코드는 나를 위해 일했습니다. – pdoherty926
나는 당신이 추천 한대로했다. 여전히 같은 오류가 발생합니다. – NeyLive
그게 바로 Ruby 2.3.1입니다. Nokogiri의 어떤 버전을 설치하셨습니까? – NeyLive