2017-01-22 225 views
1

如何獲得具有類別「成分」的所有項目並將其用於創建新成分?我正在用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> 

回答

3

.at_css方法返回唯一的第一個匹配項。

爲了得到一個選擇器匹配的所有元素使用.css

ingredients = doc.css(".ingredient").map do |node| 
    Ingredient.create!(name: node.text) 
end 
相關問題