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
この特定の場合。
なぜこれが起こっているのでしょうか?私は何が欠けているのですか、またはいくつかのバグのために面白いノコギリの行動がありますか?どのポインタも歓迎します。
実験用のマークアップサンプルをいくつか投稿できますか?それが長いのなら、それを握ってください。 https://gist.github.com/ – d11wtq
いいえ、XPathが非常に壊れやすいように見えることを除いて、特別なことはありません。可能であれば、ページのより意味論的な側面( 'id'や' class'属性など)に固執する必要があります。 @ d11wtqによれば、使用するXMLの実際の例を示す必要があります。 – Phrogz
ありがとう!それは実際にmozillaによって追加された 'tbody'タグであり、本来はそこにはありません。 xpathから削除すると動作します – tengee