【发布时间】:2017-06-21 06:21:54
【问题描述】:
我已使用 nokogiri ruby gem 为仅 tableData 类下的文本抓取一个 html 文件。 html代码设置如下:
<div class="table-wrap">
<table class="table">
<tbody>
<tr>
<td class="tableData"> Jane Doe</td>
<td class="tableData"> 01/01/2017</td>
<td class="tableData">01/09/2017 </td>
<td class="tableData">Vacation</td>
</tr>
<tr>
<td class="tableData">John Doe</td>
<td class="tableData"> 01/01/2017</td>
<td class="tableData">01/09/2017 </td>
<td class="tableData">Vacation</td>
</tr>
</tbody>
</table>
</div>
我用来爬网的代码是这样的:
vt = page.css("td[class='tableData']").text
puts vt
给出这个输出:
Jane Doe 01/01/201701/09/2017 VacationJohn Doe 01/01/201701/09/2017 Vacation
我想在一个数组中填充一个数组,其中只包含与每个人相关的 4 个文本值。应该是这样的:
[[Jane Doe, 01/01/2017, 01/09/2017, Vacation], [John Doe, 01/01/2017, 01/09/2017, Vacation]]
我是编码新手,我不确定如何创建一个 for 循环来迭代 html 代码本身或 vt 变量以生成数组数组。我知道在 for 循环之后涉及一些 push 语句,但它是我无法组合起来的 for 循环的实际结构。如果您能在回答中就 for 循环在这种情况下的工作方式提供一些解释,我们将不胜感激。
【问题讨论】:
-
我认为
age.css("td[class='tableData']").map(&:text)可以做到
标签: html arrays ruby web-scraping arrayofarrays