3

Apple automator を使用して safari に Web ページをダウンロードして保存してもらいたいです。Safari ウィンドウを開いた状態で、AppleScript Editor で次のスクリプトを実行します。

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 で次のエラーが表示されます。

「ドキュメント「Python プログラミング言語 – 公式ウェブサイト」は「python.htm」として保存できませんでした。」

そのエラー ボックスで [OK] をクリックすると、AppleScript Editor のダイアログ ボックスに次のエラーが表示されます。

「AppleScript エラー
Safari でエラーが発生しました: AppleEvent ハンドラが失敗しました。」

AppleScript エディタの下部には「結果」というボックスがあり、次のメッセージも表示されます。

"エラー "Safari でエラーが発生しました: AppleEvent ハンドラが失敗しました。" 数値 -10000"

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

不思議なことに、「get document 1」と「save document 1」の行を「tell application safari」ブロックの外に移動し、applescript を「python.htm」として保存しましたが、Firefox で開いたときにすべて間抜けに見えました。したがって、問題は、Safari が保存できず、一般的に osx が保存できないことです。

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

何度か再起動してソフトウェアを更新しました。

これが私のバージョンです:

Safari: バージョン 5.1 (6534.50)
OSX Snow Leopard: バージョン 10.6.8 AppleScript 2.1.2
AppleScript Editor: バージョン 2.3 (118)
私は携帯電話につながれており、モバイル アクセス ポイントとして使用しています。それが重要かどうかはわかりません。

この男は同じエラーを受け取ったと思いますが、答えはありません:

この AppleScript が Mac OS X 10.5 Leopard で「AppleEvent handler failed」エラーを受け取るのはなぜですか?

誰でも推測できますか?ありがとう。

4

1 に答える 1

1

本当の答えはわかりませんが、50回以上のビューとタンブルウィードがあるので、何か投稿しようと思いました.

どうやらcurlを使用することになっているようです:

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 の投稿を見たところ、これが「唯一の方法」であると言われたので、Safari で「名前を付けて保存」を使用する方法がない可能性があります。これは一般的な AppleScript エラーですが、回答がありませんでした。b/c これはAppleScript ボードではありませんか?とにかく、元の投稿は機能するはずで、私はそれ以上のことを知りません.私は、人々がこれをボード上またはグーグル経由で見つけた場合、答えが役立つかもしれないし、モッズがただ望んでいるだけかもしれないと考えました.これが明らかな解決策である場合は削除します)。

于 2011-09-05T22:20:23.010 に答える