質問: "いいえ" then exit repeat end timeout end tell end repeat close theWindow activate display dialog "終了しました" end tell end tell ``` ### 試したこと 1. Automatorの「リンクURLを取得」「URLにフィルタを適用」だと、ページ内のリンクURLの一括取得は可能だが、フィルタ項目に「〜を含まない」がないため、余計なリンクURLを取り除くことができない(「完全なURL」以外では不明) 2. Google Chromeの**view sourceコマンドと、select allコマンドから、**AppleScriptの**text item delimiters of AppleScript**の検索を利用してリンクURLを抜き出せないかと考えたが、不勉強のためコードで再現することができない ### まとめ・知りたい方法 **1ページ内に掲載されているリンクURLを取得する方法** **2取得したリンクURLにフィルタをかけて、条件に適合したURLのみをリスト化する方法** **3リストを表示する時に、URLではなくアンカーテキストで表示させる方法** ### 補足情報(FW/ツールのバージョンなど) OS:macOS High Sierra バージョン10.13.6 モデル:iMac (21.5-inch, Mid 2011) プロセッサ:2.5 GHz Intel Core i5 メモリ:4 GB 1333 MHz DDR3 スクリプトエディタ バージョン2.10 Automator バージョン2.8
回答: (1)と(2)だったら、こんな感じでしょうか。Safariで実行してみました。オープン中のページからリンクURLを抽出して、除外URLを除外します。実行前に、 http://piyocast.com/as/archives/3352 のように設定しておく必要があります。実行するとわかりますが、フル記述のURL以外の相対URLも取れるので、そのあたりをどうするかも問題です。 (3)は「アンカー」という日本語の意味がわかりません。もしかして、タイトルのことを指しているのでしょうか? set aList to {} set ngList to {"https://www.facebook.com/", "javascript:"} --フィルタ(除外)したいURL tell application "Safari" set targDoc to front document set the link_count to (do JavaScript "document.links.length" in targDoc) repeat with i from 0 to (link_count - 1) set aSRC to do JavaScript (("document.links[" & i as string) & "].getAttribute('href', 2)") in targDoc --ループで除外URLをのぞく set hitF to false repeat with ii in ngList set jj to contents of ii if aSRC begins with jj then set hitF to true exit repeat end if end repeat if hitF = false then set the end of aList to aSRC end if end repeat end tell return aList