2017-02-13 7 views
0

私はリンスクリプトを作成したいと思います。Applescript - HTMLが特定のテキストを含むまでWebページをリロードする

HTMLに特定のキーワードが表示されるまで、Chrome(またはSafari)で現在のウェブページを自動的にリロードする必要があります。このキーワードが見つかったら、再読み込みを停止します。

ウェブページに広告があるゾーンがあります。私はいくつかの特定の広告を見ることができる限り、ページをリロードする必要があります。これは、キーワードadPrahaがHTMLにあることを意味します。

お願いします。

set keyword to "adPraha" 
tell application "Safari" 
    -- get the current window 
    set myWindow to (get current tab of window 1) 

    repeat 
     do JavaScript "window.location.reload()" in myWindow 


     -- wait for the page to load   
     repeat until ((do JavaScript "document.readyState;" in myWindow) is equal to "complete") 
      delay 0.5 
     end repeat 

     set pageContent to text of myWindow 

     if pageContent contains keyword then 

     else 

     end if 

     delay 2 -- wait a bit before running again 

    end repeat 
end tell 
+0

このスクリプトで実際に何が問題になっていますか?それは私にとってうまくいくようです。 'if/else'と' else/end if'の間に表示ダイアログを追加し、 'pageContent'が' keyword'を含んでいたときにスクリプトを正常に検出しました。あなたは 'exit repeat'コマンドを探していますか? 'else/endif'の間に置くか、' 'キーワードを含む ''を' 'キーワードを含んでいない ''に置き換え、キーワードの紛失時に繰り返しを終了します。 –

答えて

0

このスクリプトでは、ページでキーワードが検出されたことを示すダイアログボックスが表示されます。 Safariでのみ動作します。 Google ChromeはJavaScriptを少し違った形で実行します:

tell application "Safari" 

    set keyword to "adPraha" 
    repeat 
     set myWindow to current tab of first window 
     activate 

     do JavaScript "window.location.reload()" in myWindow 

     repeat while (do JavaScript "document.readyState" in document 1) is not "complete" 
      delay 0.5 
     end repeat 

     set pageContent to do JavaScript ("window.document.documentElement.outerHTML") in myWindow 

     if pageContent contains keyword then 
      display dialog "found it" 
      exit repeat 
     end if 
     delay 2 -- wait a bit before running again 
    end repeat 
end tell 

これは機能しますか?

+0

ありがとうございます!これはウェブ上の単語で動作します。しかし、私はHTMLソースコードでキーワードを検索したいと思います。ウェブ内の一部のタグまたは一部のHTML値。それを検索することは可能ですか?私はHTMLを解析するためのスクリプトをいくつか見つけましたが、それはできません。 –

+0

スクリプトはすでにHTMLソースコードを検索しています。 :) –

関連する問題