2010-12-17 13 views
3

JavaScriptとそのコードを実行する方法に関する質問があります。わかっているように、タグに埋め込まれたJavaScriptコードがいくつかあり、ブラウザウィンドウ内でネイティブに実行されます。これはかなり一般的なことで、Webページが現在どのように機能しているかです。ブラウザウィンドウを表示せずにページにJavaScriptコードを実行

私たちがサーフィンしているウェブページとのやりとりを希望する場合は、GreaseMonkeyなどのツールを使用して、ページ挙動を希望のものに変更できるUserScriptsを記述する必要があります。これにはまだブラウザーウィンドウを開いてターゲットを参照する必要があります。

質問:ブラウザウィンドウを開いていなくても、特定のページでJavaScriptコードを実行できますか?

./clibrowser http://google.com userscript.js 

たスクリプトでは、例えば、我々は、クエリからのデータをフェッチするためにいくつかのAJAXコードを実行し、可能性:私は意味、理想的なソリューションで私たちを呼び出すことができるようにしたいコマンドラインツールが存在することになりますそれをデータベースに保存する他のPHPスクリプトに渡してください。

私はこの質問が簡素化すると思います:JavaScriptエンジンを備えた「コマンドラインブラウザ」のようなツールはありますか?私は知っている、それは奇妙に聞こえることがありますが、私は私の心の中にあるアイデアのためだけに興味があります。

答えて

3

はい、あります。 NodeJSは、ChromeのV8 javascriptエンジン(http://nodejs.org/)で動作します。

また、Javaで実行されるRhinoもあります:http://www.mozilla.org/rhino/

これらのことは、「ブラウザ」は含まれていないということです。それらはjavascriptを実行できるjavascriptエンジンですが、HTMLを解析/操作する機能は提供していません。ボックス。しかし、これらのエンジンに組み込まれたjavascriptライブラリがあり、ほとんどの作業を簡素化します。

+0

Node.JSはページをロードしてそのコードと対話できますか?あなたはそのトピックのリソースに私を指摘できますか? –

+0

@Tomasz Kowalczyk - あなたはHTMLのスクレイピングを求めていると思いますか?はい、NodeJSはそれをとてもうまく行います。 'request'を使用してWebページを取得し、' jsdom'と 'jQuery'のポートを使用すると、単純にjQueryを使用して任意のページのテキスト/要素を見つけることができます。これを見てみましょう:http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs –

+0

NodeJSとJSDOM。 – adamse

0

JavaScriptが完全にサポートされたWebkitベースのヘッドレスブラウザである、phantomjs:http://phantomjs.orgがあります。それはあなたがページにナビゲートし、それと対話し、そのページの文脈で望むどんなスクリプトも動かせるインターフェイスを公開します。

関連する問題