2009-04-14 12 views
4

いくつかのウェブサイトにアクセスするスクリプトを書く必要があります。コマンドラインからのスクリプトはいくつかのページを取得し、いくつかのフォームを投稿し、いくつかの情報をスクラップします。OSXのスクリプトからFirefoxを遠隔操作する方法

libwww-perlのようなライブラリ "ブラウザ"になることはできません。これはユーザのやり取りが必要な場合があるためです(captchas、ajax-onlyフォーム、あらゆる相互作用の驚きなど)。

私が考えることができる最も実用的な方法は、Firefoxでタブをリモートで開き、Javascriptを注入することです(GreasemonkeyとSeleniumのようなものです)。それは必ずしもFirefox用である必要はありません、それが簡単なら別のブラウザにすることができます。

これを行うにはどうすればよいでしょうか?

答えて

1

「最良の」方法はわかりませんが、AppleScriptを使用することもできます。しかし、Firefoxには広範なスクリプト機能はありません。Safariを使用したい場合は、JavaScriptコードをドキュメントに挿入するAppleScriptコマンドがあります(do JavaScriptコマンドを使用してSafariのスクリプト辞書編集者)。

また、コマンドラインからAppleScriptスクリプトを実行するために、osascriptを使用します。

osascript path/to/script.scpt 
+0

Ruby、Perl、Pythonなどのより一般的な言語からApplescritコマンドを送信できますか? – taw

+0

確かに、選択した言語からシステムコマンドを実行できる限りです。たとえば、Pythonでは、次のようなものを使用できます。 os.system( 'osascript -e "" -e "" -e "<というように...>") – hbw

3

あなたはSelenium Remote Controlと考えていますか?以前はツールを使ってブラウザの自動操作を行っていましたが、非常にうまく動作しています。多くの柔軟性を提供します。

正確なニーズに応じて、使いやすいFirefoxプラグインであるSelenium IDEを活用できるかもしれません。スクリプティング

2

XPCOMを使用すると、想像を絶する方法でFirefoxを拡張できます。おそらく別のプロセスと接続する何らかのインターフェースを書くことができます。

0

OS X上にsrcriptを書くには、私がお勧めする2通りの方法があり、どちらもルビにあります。最初はWatirで、Mac OS X上でFirefoxとSafariの両方を制御する自動テストフレームワークです。

スクリーンスクレイピングのもう1つの方法は、本当に使いやすいhtmlパーサーであるhpricotを使用することです。

バックグラウンドでWatirはこれを行うにはJSSh - a TCP/IP JavaScript Shell Server for Firefoxを使用します。 JSSHでは、Telnetセッションからブラウザを制御できます。

いずれにしても、もしあなたがキャッチパの場合、彼らはあなたを止めるでしょう。

関連する問題