【发布时间】:2017-03-11 14:18:51
【问题描述】:
如何将名称和描述属性放在一起并为每个岛屿制作一个岛屿对象?我已经尽我所能将两个属性放在一起来制作一个对象,但只能分别获取它们。我需要帮助,因为我必须在两天内提交。这就是我所拥有的:
class MostBeautifulIslands::Islands
attr_accessor :name, :description
@@all = []
def initialize(name)
@name = name
@description = description
@@all << self
end
def self.scrape_world_best_islands
doc = Nokogiri::HTML(open("http://www.planetware.com/world/most-beautiful-islands-in-the-world-sey-1-2.htm"))
islands_names = doc.search("div h2.sitename")
names = islands_names.collect{|island_name| new(island_name.text.strip)}
island_description = doc.search("div.site_desc > p")
descriptions = island_description.collect{|d| d.first.text.strip}
new_island = self.new(names)
new_island
binding.pry
#end
end
end
【问题讨论】:
-
请阅读“minimal reproducible example”。我们需要问题本身中的最小(剥离)HTML。事实上,代码本身加载它并没有帮助,它实际上减慢了我们帮助你的能力,因为我们必须遍历那个 HTML 才能找到你在说什么。