我想用xpath中的Nokogiri從HTML中的位置抓取數據。我使用XPath是:有什麼特別的考慮使用xpaths使用HTML抓取?
/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行爲由於一些錯誤?任何指針都是受歡迎的。
您可以發佈一些(完整)示例標記供我們進行實驗嗎?如果它很長,請點它。 https://gist.github.com/ – d11wtq
不,沒有什麼特別的考慮,除了你的XPath看起來異常脆弱。如果可能的話,你應該在頁面的更多語義方面(比如'id'和'class'屬性)。正如@ d11wtq所說的,您需要向我們展示一個使用XML的真實例子。 – Phrogz
感謝人!它實際上是mozilla添加的'tbody'標籤,它本來不是。它工作,如果你從xpath中刪除它 – tengee