2011-08-03 8 views
2

Appleオートメーションを使用してSafariでWebページをダウンロードして保存します。Applescript:SafariがWebページを保存できません(AppleEvent Handlerがエラーに失敗します)

tell application "Safari" 
    set URL of document 1 to "http://www.python.org" 
    delay 6 
    get document 1 
    delay 6 
    save document 1 in "/mydir/" & "python" & ".htm" 
end tell 

Safariが正しいURLが表示され、その後私はSafariで、次のエラーを取得:オープンSafariのウィンドウで、私はAppleScriptのエディタで次のスクリプトを実行し

「文書「のPythonプログラミング言語 - 公式サイト "を" python.htm "として保存できませんでした。"

私はそのエラーボックスの「OK」をクリックして、AppleScriptのエディタは、ダイアログボックスで私は、このエラーを与える:

「AppleScriptのエラー
Safariがエラーを得た:AppleEventのハンドラが失敗しました。」

AppleScriptのエディタは「結果」と呼ばれる下部のボックスを持っており、それはまた、次のメッセージが表示されます。

「エラー 『Safariはエラーを得た:AppleEventのハンドラは、失敗した』番号-10000」

をとWebページは保存されません。私はこのb/cの原因を知りません。過去にページを保存するために同じ(または類似の)コードを使用していたことを99%確信しています。

奇妙なことに、「ドキュメントを取得する」と「ドキュメントを保存する」という行を「tell application safari」ブロックの外に移動して、AppleScriptを「python.htm」として保存しました。 。だから問題は、Safariは保存できないし、一般的にはOSXではないということだ。

また、chmodを使用して、ターゲットの保存ディレクトリのすべての権限をall(bashの777引数で使用)に変更しました。

ソフトウェアを数回再起動しました。

サファリ::バージョン5.1(6534.50)
OSX Snow Leopardは:バージョン10.6.8 のAppleScript 2.1.2
のAppleScriptエディタ:バージョン2.3(118)
私はつながよ。ここ

は私のバージョンです私の携帯電話に、それをモバイルアクセスポイントとして使用しています。私はそれが重要かどうかわからない。

私はこの男が同じエラーが、ノーの答えを得たと思う:

Why does this AppleScript get an "AppleEvent handler failed" error on Mac OS X 10.5 Leopard?

誰もが推測を得ましたか。ありがとう。

答えて

1

私は本当の答えは分かりませんが、50以上の再生回数と落ち着きがあるので、何かを投稿すると思いました。

どうやらあなたはカールを使用することになっている:

tell application "Safari" 
    set URL of document 1 to "http://www.python.org" 
    delay 6 
    get document 1 
    set my_html to URL of document 1 
end tell 

set my_new_file to "/Users/your_user_name/python.htm" 
set my_script to "curl " & my_html & " >> " & my_new_file 

do shell script my_script 

(私はmacscripter上のポストを見て、彼らはこれがそうかもしれないとして保存」を使用する方法はありません「行くための唯一の方法」と述べましたこれは一般的なAppleScriptエラーですが、これはAppleScriptボードではありませんか?とにかく、元の投稿が動作するはずですが、私はそれ以上のことは分かりません。私は人々がこれを掲示板やグーグルで見つけたら、回答が役に立つかもしれない、あるいは、これが明白な解決策であれば、改造者が単に削除したいと思うかもしれない)。

+0

いいえ、これはobvoiusの解決策ではありません。 'my_new_file'の' quoted form 'を使うことを忘れないでください。それを行うと、あなたのソリューションは機能します。 :) – fireshadow52

+1

私はそれを私のAppleScriptエディタから貼り付け、それが動作していたので、それは動作すると思います。 2行目から最後までの行では、my_new_fileは3行目から最後の行に設定された文字列変数です。だから、多すぎる行があり、読みにくいかもしれません。あなたは "end tell"の後のすべてを削除し、この行で置き換えることができます:シェルスクリプト "curl"&my_html& ">>"& "/Users/you_user_name/python.htm" – PatentDeathSquad

関連する問題