7

私はMechanizeを使用していますが、Mechanizeでできない場合は、のこぎりを利用できます。

事前にではなく、すべてのスクリプトがロードされた後でページをスクレイプしたいと思います。

どうすればこれを行うことができますか?

4

4 に答える 4

6

良いオプションは、Nokogiri、Watir、およびPhantomJsを使用した次のようなものだと思います。

b = Watir::Browser.new(:phantomjs)

b.goto URL

doc = Nokogiri::HTML(b.html)

結果のドキュメントは、スクリプトがロードされた後のものになります。また、ブラウザをロードする必要がないため、phantomjsは便利です。

于 2013-08-14T08:03:23.060 に答える
4

NokogiriとMechanizeは完全なWebブラウザーではなく、ブラウザーモデルのDOMでJavaScriptを実行しません。Rubyを使用して実際のWebブラウザーを制御できるWatirSeleniumのようなものを使用したいとします。

于 2012-05-15T21:51:13.177 に答える
2

watir-webdriverとcapybara-webkitに加えて、セレリティはjrubyのみですが、良いオプションです。

于 2012-05-16T09:19:20.230 に答える
0

mechanizeやnokogiriについては何も知らないので、具体的にコメントすることはできません。ただし、JavaScriptを変更した後に取得する問題は、JavaScriptを増やすことでしか解決できないと私が信じている問題です。新しく生成されたHTMLを取得するには、ドキュメント要素の.innerHTMLを取得する必要があります。ページにjsを挿入する必要があるため、これは注意が必要な場合があります。

これを達成するために私が知っている唯一の方法は、FireFoxプラグインを作成することです。プラグインを使用すると、ページでなくてもページでJavaScriptを実行できます。申し訳ありませんが、私はこれ以上の助けにはなりません。これがあなたを正しい道に導くのに役立つことを願っています。

プラグインに興味がある場合は、ここから始めてください:http://anthonystechblog.wordpress.com/category/internet/firefox/

于 2012-05-15T21:46:05.963 に答える