2012-05-15 8 views

答えて

4

鋸山とMechanizeのは、完全なWebブラウザではなく、やりますブラウザモデルのDOMでJavaScriptを実行しないでください。 WatirまたはSeleniumのようなものを使用して、Rubyを使って実際のWebブラウザを制御できるようにしたいとします。

+1

JavaScriptが有効になっているブラウザを自動化して、ウィンドウが表示されないようにするには、(capybara-webkit)[https://github.com/thoughtbot/capybara-webkit]や(PhantomJS)[http: //phantomjs.org/](他にもあります)。 – echristopherson

+1

@echristophersonありがとう;それらはそれぞれ[capybara-webkit](https://github.com/thoughtbot/capybara-webkit)と[PhantomJS](http://phantomjs.org/)です(固定マークアップリンク)。 – Phrogz

0

機械化やノコギリについては何も知らないので、具体的にはコメントできません。しかし、JavaScriptが変更された後にJavaScriptを取得する問題は、より多くのJavaScriptでのみ解決できると私は考えています。新しく生成されたHTMLを取得するには、document要素の.innerHTMLを取得する必要があります。これはページにjsを注入する必要があるため、扱いにくいことがあります。

私がこれを達成するために知っている唯一の方法は、FireFoxプラグインを書くことです。あなたのページではないにもかかわらず、プラグインを使用すると、ページ上でJavaScriptを実行することができます。申し訳ありませんが私はより多くのヘルプではない、私はこれが正しい道にあなたを置くのに役立つことを願っています。

あなたは、プラグインに興味があるなら、これは開始する一つの場所は次のとおりです。http://anthonystechblog.wordpress.com/category/internet/firefox/

+0

あなた自身のプラグインをゼロから動かす代わりに、Greasemonkeyがおそらくそれを行うことができます。 – FatalError

2

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

私は良いオプションは、鋸山、ワチール、およびPhantomJsと、このようなものだと思います
6

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

b.goto URL

doc = Nokogiri::HTML(b.html)

結果のドキュメントが時にスクリプトの後からとなります読み込まれました。また、ブラウザを読み込む必要がないため、ファントムがうまくいきます。

関連する問題