当任何 <td>.</td>. 值已知时,是否有可能找到 <td> .. </td> 文本?



我有一个网页,其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>

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

从 HTML 文档中提取每个<td>很容易,但这并不是导航 DOM 的万无一失的方法。但是,鉴于示例 HTML 的限制,这里有一个解决方案。不过,我怀疑它在现实世界中是否有效。

Mechanize

在内部使用 Nokogiri 来完成繁重的工作,因此如果您已经需要 Mechanize,则无需执行require 'nokogiri'操作。

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"

如何从机械化"代理"获取Nokogiri文档留给用户练习。

请参阅 http://nokogiri.org/

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

相关内容

  • 没有找到相关文章

最新更新