0

我有一个类似于html以下格式的网页:

<form name="test">

<td> .... </td>
  .
  .
  .
<td> <A HREF="http://www.edu/st/file.html">alo</A> </td>
<td> <A HREF="http://www.dom/st/file.html">foo</A> </td>
<td> bla bla </td>

</form>

现在,我只知道 value bla bla,我们可以根据 value 跟踪或找到3rd last .. value (这里是alo)?我可以在价值观的帮助下追踪这些,HREF但这些HREF价值观并不总是固定的,它们可以是任何时候的任何东西。

4

2 回答 2

1

http://nokogiri.org/

它可以帮助您解析 html 代码,然后通过选择器找到元素

于 2013-01-22T20:15:58.237 回答
1

从 HTML 文档中提取所有<td>内容很容易,但它并不是浏览 DOM 的万无一失的方法。但是,鉴于示例 HTML 的局限性,这里有一个解决方案。我怀疑它会在现实世界的情况下工作。

Mechanize 在内部使用 Nokogiri 进行繁重的工作,因此require 'nokogiri'如果您已经需要 Mechanize,则无需这样做。

require 'nokogiri'

doc = Nokogiri::HTML::DocumentFragment.parse(<<EOT)
<td> <A HREF="http://www.edu/st/file.html">alo</A> </td>
<td> <A HREF="http://www.dom/st/file.html">foo</A> </td>
<td> bla bla </td>
EOT

doc.search('td')[-3].at('a')['href']
=> "http://www.edu/st/file.html"

如何从 Mechanize“代理”获取 Nokogiri 文档留给用户练习。

于 2013-01-22T21:26:29.453 回答