私はMechanizeを使用していますが、Mechanizeでできない場合は、のこぎりを利用できます。
事前にではなく、すべてのスクリプトがロードされた後でページをスクレイプしたいと思います。
どうすればこれを行うことができますか?
私はMechanizeを使用していますが、Mechanizeでできない場合は、のこぎりを利用できます。
事前にではなく、すべてのスクリプトがロードされた後でページをスクレイプしたいと思います。
どうすればこれを行うことができますか?
良いオプションは、Nokogiri、Watir、およびPhantomJsを使用した次のようなものだと思います。
b = Watir::Browser.new(:phantomjs)
b.goto URL
doc = Nokogiri::HTML(b.html)
結果のドキュメントは、スクリプトがロードされた後のものになります。また、ブラウザをロードする必要がないため、phantomjsは便利です。
watir-webdriverとcapybara-webkitに加えて、セレリティはjrubyのみですが、良いオプションです。
mechanizeやnokogiriについては何も知らないので、具体的にコメントすることはできません。ただし、JavaScriptを変更した後に取得する問題は、JavaScriptを増やすことでしか解決できないと私が信じている問題です。新しく生成されたHTMLを取得するには、ドキュメント要素の.innerHTMLを取得する必要があります。ページにjsを挿入する必要があるため、これは注意が必要な場合があります。
これを達成するために私が知っている唯一の方法は、FireFoxプラグインを作成することです。プラグインを使用すると、ページでなくてもページでJavaScriptを実行できます。申し訳ありませんが、私はこれ以上の助けにはなりません。これがあなたを正しい道に導くのに役立つことを願っています。
プラグインに興味がある場合は、ここから始めてください:http://anthonystechblog.wordpress.com/category/internet/firefox/