open-uri + hpricot を使用して Web ページを解析しようとしていますが、宝石が欲しいものをもたらさないため、解析プロセスに問題があるようです。
具体的には、このdiv (ID は'pasajes' ) をこの URLで取得したい:
私はこのコードを書きます:
require 'nokogiri'
require 'hpricot'
require 'open-uri'
document = Hpricot(open('http://www.despegar.com.ar/')) # WITH HPRICOT
document2 = Nokogiri::HTML(open('http://www.despegar.com.ar/')) # WITH NOKOGIRI
pasajes = document.search("//div[@id='pasajes']")
pasajes2 = document2.xpath("//div[@id='pasajes']")
しかし、それは何ももたらしません!hpricot と nokogiri の両方で多くのことを試しました。
- そのdivへの絶対パスを指定してみます
- セレクターで CSS パスを試す
- hpricot 検索ショートカット (doc//"div#pasajes") で試してみます
- 「pasajes」divに到達するためのほぼすべての可能な相対パス
最後に、恐ろしい解決策を見つけました。私はwatirライブラリを使用し、Webブラウザを開いた後、htmlをhpricotに渡しました。このようにして、hpricot は 'pasajes' div を認識します。しかし、解析目的のためだけに Web ブラウザを開きたくありません...
私が間違っていることは何ですか?オープンウリの効きが悪い?プリコットですか?