我如何在同一个div类下获取每个li的文本。现在,我的代码将所有文本一起返回到一个字符串中

问题描述 投票:0回答:1

我正在用Nokogiri(HTML / CSS)刮擦食谱的成分。每个成分在成分div下的li中。现在,我的代码正在收集所有成分,而不会将它们分成字符串。如何将每个li文本放入数组中?

该站点有此

<div class="easyrecipe">
 <div class="ingredients">
  <ul>
   <li class="ingredient" itemprop="recipeIngredient"> 1 tbsp flax</l>
   <li class="ingredient" itemprop="recipeIngredient"> 3 tbsp water</l>
   <li class="ingredient" itemprop="recipeIngredient"> ½ cup spelt</l>
  </ul>

我试图通过此方法来解析它并将成分放入数组中

ingredients = page.css("div.easyrecipe").each do |section|
      section.css("li.ingredient").text

我正在得到这个“ 1汤匙亚麻碎粉3汤匙温水½杯拼字”

html-lists nokogiri screen-scraping
1个回答
0
投票

首先,您的配料表在div.ingredients内的div.easyrecipe之内。

第二,您只是打印出每个部分的所有列表文本。而不是添加每个部分的文本。您要添加每种成分的文本。

我改为将其更改为:

ingredients = page.css("div.easyrecipe").each do |section|
  section.css("li.ingredient").each do |ingredient|
    ingredient.text

结果:

p ingredients
= ["1 tbsp ground flax","3 tbsp warm water","½ cup spelt"]
© www.soinside.com 2019 - 2024. All rights reserved.