gpt4 book ai didi

ruby - 从 HTML 表格中提取数据

转载 作者:行者123 更新时间:2023-12-04 16:22:48 25 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




8 年前关闭。




我正在 Mechanize gem 中学习 Nokogiri,但我无法找出用于从 html 表构建数组的正确选择器。这是我需要从中提取数据的 HTML 表:

<table id="propertysearchresults">
<thead>…</thead>
<tbody>
<tr class="prototype_r">
<td class="transparent">…</td>
<td>...</td>
<td> ITEM ONE </td>
<td> ITEM TWO </td>
<td class="location">…</td>
<td> ITEM THREE </td>
<td class="text_right">ITEM FOUR</td>
</tr>
<tr class="prototype_r">
<td class="transparent">…</td>
<td>...</td>
<td> ITEM ONE </td>
<td> ITEM TWO </td>
<td class="location">…</td>
<td> ITEM THREE </td>
<td class="text_right">ITEM FOUR</td>
</tr>
</tbody>
</table>

我想为每行数据的第 1 项到第 4 项构建一个数组。如果有人可以帮助解决语法问题,我将不胜感激。谢谢!!!

最佳答案

假设项目一/二/三/四总是在相同的 td 索引中,你可以这样做:

# Writing standalone; use Mechanize to fetch if you like
require 'nokogiri'
doc = Nokogiri.HTML( page_html )

data = doc.css('#propertysearchresults > tbody > tr').map do |row|
row.elements.to_a.values_at(2,3,5,6).map(&:text)
end

p data
#=> [
#=> [" ITEM ONE ", " ITEM TWO ", " ITEM THREE ", "ITEM FOUR"],
#=> [" ITEM ONE ", " ITEM TWO ", " ITEM THREE ", "ITEM FOUR"]
#=> ]

这使用 CSS 表达式来选择行,并为每个查找子元素( <td> )作为数组,通过索引提取正确的元素,然后获取 text对于每个。

关于ruby - 从 HTML 表格中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com