hpricot を使用してテーブル ベースの Web サイトから情報を抽出しようとしています。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をスクラップするためのより良いツールがあります.