我如何得到所有的项目与类“成分”,并使用它来创建一个新的成分我在用Nokogiri去上课。我这样做,但只能创建一种成分/获取列表中的第一项:
require 'nokogiri'
require 'open-uri'
url = "http://damndelicious.net/2017/01/16/turkey-and-spinach-veggie-lasagna/"
doc = Nokogiri::HTML(open(url))
ingredients = Ingredient.create do |ingredient|
ingredient.name = doc.at_css(".ingredient").text
end
这是我试图从以下列表中获取项目的示例:
<li class="ingredient">1 tablespoon olive oil</li>
<li class="ingredient">2 cloves garlic, minced</li>
<li class="ingredient">1 onion, diced</li>
<li class="ingredient">2 zucchinis, diced</li>
最佳答案
.at_css
方法返回唯一的第一个匹配项。
要获取与选择器匹配的所有元素,请使用.css
ingredients = doc.css(".ingredient").map do |node|
Ingredient.create!(name: node.text)
end