【问题标题】:Nokogiri and xpath for extracting table data用于提取表数据的 Nokogiri 和 xpath
【发布时间】:2017-03-07 07:54:28
【问题描述】:

我是个新手,我正在尝试从表中抓取一些数据,但使用 xpath 时运气不佳。我可以得到我需要的第一个字段,但是……什么都没有。

每一行的表结构如下:

<tr bgcolor="#FFF7E7">
<td valign="Top"><font color="#8C4510">
<span id="DataGrid1__ctl3_Label2">Index</span>
</font></td>
<td><font color="#8C4510"><a href="javascript:__doPostBack('DataGrid1$_ctl3$_ctl0','')"><font color="#8C4510">Title</font></a></font></td>
<td><font color="#8C4510"><a href="javascript:__doPostBack('DataGrid1$_ctl3$_ctl2','')"><font color="#8C4510">People</font></a></font></td>
<td valign="Top"><font color="#8C4510">Date</font></td><td><font color="#8C4510"><a href="javascript:__doPostBack('DataGrid1$_ctl3$_ctl4','')">
<font color="#8C4510">Text</font></a></font></td>
<td><font color="#8C4510"><a href="javascript:__doPostBack('DataGrid1$_ctl3$_ctl6','')"><font color="#8C4510">Outcome</font></a></font></td>
<td valign="Top">
<font color="#8C4510"><a href="javascript:__doPostBack('DataGrid1$_ctl3$_ctl8','')"><font color="#8C4510">Click link for more</font></a></font></td>
</tr>

我正在尝试提取索引、标题、人物、文本、结果字段以及链接。 我正在设法提取索引,但似乎无法获得其余部分。

在我的 ruby​​ 代码中,我对实际获取表格的调用似乎正在工作,但是除了索引之外,我为表格的每一行提取字段的循环不是。

任何帮助都会很棒。

【问题讨论】:

  • 你有一个错字“ahref”应该是“a href”。

标签: ruby html-table nokogiri


【解决方案1】:

使用您在此处提供的摘录,您可以使用以下 XPath 查询提取文本和链接:

require 'rubygems'
require 'nokogiri'

f = File.open('test.html')
doc = Nokogiri::HTML(f)

doc.xpath("//tr//td//a").each do |node|
  puts "#{node.text().strip()}: #{node.attribute('href')}"
end
f.close

但是,没有看到表中的其他行,不确定这是否对其余行有任何帮助。

【讨论】:

  • 谢谢。这很有帮助。我需要前五个字段的文本,只需要最后一个字段的链接(然后我需要单击它),以便调整它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多