使用xpaths使用HTML抓取有什么特别的考虑吗?

时间:2011-11-15 22:18:32

标签: html ruby xpath nokogiri web-scraping

我正在尝试使用带有xpath的Nokogiri从HTML中的某个位置抓取数据。我使用的xpath是:

 /html/body/table/tbody/tr[2]/td/table/tbody/tr[2]/td[2]

xpath指向:

<td class="anatxt" nowrap=""> CELL TXT DATA <div id="div0" style="visibility: hidden; position: absolute">

代码很简单:

#!/usr/bin/ruby -w

require 'rubygems'
require 'nokogiri'

page1 = Nokogiri::HTML(open('test1.html'))

a = page1.xpath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[2]/td[2]").text
p a

它适用于其他较短路径,但只针对此特定情况返回""

为什么会发生这种情况?我错过了什么,或者由于某些错误,是否有一个有趣的Nokogiri行为?欢迎任何指示。

1 个答案:

答案 0 :(得分:4)

tbody 标记可能实际上并不存在。 有些浏览器会在不存在时添加它们,但Nokogiri不会。