1

我是个新手,我正在尝试从表中抓取一些数据,但使用 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​​ 代码中,我对实际获取表的调用似乎正在工作,但是除了索引之外,我为表的每一行提取字段的循环不是。

任何帮助都会很棒。

4

1 回答 1

2

使用您在此处提供的摘录,您可以使用以下 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

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

于 2012-06-07T16:13:33.443 回答