【发布时间】:2010-08-22 08:43:44
【问题描述】:
我正在尝试使用 hpricot 从基于表格的网站中提取一些信息。我得到了带有 FireBug 的 XPath。
/html/body/div/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table[3]/tbody/tr
这不起作用... 显然,FireBug 的 XPath 是呈现的 HTML 的路径,而不是来自站点的实际 HTML。我读到删除 tbody 可能会解决问题。
我尝试:
/html/body/div/table/tr/td/table/tr[2]/td/table/tr/td[2]/table/tr[3]/td/table[3]/tr
但还是不行……我做了更多的研究,有些人报告说他们让他们的 XPath 删除了数字,所以我试试这个:
/html/body/div/table/tr/td/table/tr/td/table/tr/td/table/tr/td/table/tr
仍然没有运气......
所以我决定这样一步一步做:
(doc/"html/body/div/table/tr").each do |aaa |
(aaa/"td").each do | bbb|
pp bbb
(bbb/"table/tr").each do | ccc|
pp ccc
end
end
end
我在 bbb 中找到了我需要的信息,但在 ccc 中没有。
我做错了什么,或者有没有更好的工具来使用长/复杂的 XPath 废弃 HTML。
【问题讨论】:
标签: ruby xpath firebug hpricot