Copia testo da una pagina Web in Text Editor

1

Questa è la mia prima prova su AppleScript.

In definitiva, voglio automatizzare l'aggiunta di testi alla mia libreria di iTunes. La mia prima sfida è dire a Safari di cercare una pagina web per una frase, fare clic sul collegamento, quindi copiare il testo nella pagina che appare negli Appunti e quindi incollarlo nell'Editor di testo.

Non sono sicuro di come dire a Safari di comando + F , incollare una frase dagli appunti e quindi "fare clic" sul collegamento evidenziato. Come potrei farlo? Avrebbe almeno iniziato.

Grazie

    
posta Andrew 11.12.2017 - 00:18
fonte

1 risposta

1

Il tuo primo AppleScript! Incredibile ... E un progetto ambizioso per iniziare, ma posso vedere il suo valore.

La mia risposta non scriverà la sceneggiatura per te, ma ti darò consigli su come affrontare il tuo problema in modo diverso e ottenere ciò che desideri un po 'più facilmente.

Per rispondere innanzitutto alle tue domande specifiche:

Dicendo Safari a Cmd-F

    tell application "Safari" to activate

    tell application "System Events" to keystroke "f" using command down

Incolla una frase dagli appunti

Invia un Cmd-V. Potrebbe essere necessario un piccolo ritardo tra i due comandi di battitura.

"Fai clic" sul link evidenziato

Non puoi. Non sarai in grado di identificare ciò che è evidenziato tramite una ricerca Cmd-F con grande facilità (probabilmente attraverso lo scripting GUI, ma sarà un disastro). Tornerò su questo a breve.

Approccio diverso

Lavorando all'indietro, supponiamo che tu abbia ottenuto il testo che devi incollare in TextEdit . Non incollarlo. Imposta il contenuto di un nuovo documento TextEdit nel contenuto degli appunti:

    tell application "TextEdit" to set text of (make document) to the clipboard

Per impostare gli appunti sul contenuto di una pagina Web di Safari, utilizzare questo comando:

    tell application "Safari" to set the clipboard to  ¬
        (text of current tab of front window) as string

E questo ci riporta a cliccare sul link ...

Se vuoi letteralmente fare clic su un link in una pagina web, un metodo dovrebbe essere sicuro che Consenti Javascript da Apple Events sia selezionato nel menu Develop di Safari, ed esegui a do JavaScript per selezionare il collegamento contenente l'elemento di ricerca pertinente e fare clic su di esso:

    tell application "Safari" to tell document 1 to do JavaScript ¬
        "Array.from(document.links).find(a => a.href.includes(\"cjk\")).click()"

Questo trova solo la prima istanza del tempo di ricerca, che ho dedotto è sufficiente dato che il tuo metodo di fare una ricerca Cmd + F sembrava soddisfare la prima occorrenza come l'unica di importanza.

Tuttavia, ritengo che l'intero processo potrebbe essere semplificato e reso molto più robusto utilizzando Automator per aiutarci. Può estrarre tutti gli URL direttamente da una pagina Web (tutto ciò che devi fare è nutrirlo con l'URL della pagina web in questione). Quindi puoi filtrare questi URL per cercare un testo specifico. Una volta ottenuto l'URL desiderato, invece di fare clic su di esso, Automator può scaricare il suo contenuto come testo e inserirlo direttamente in un nuovo documento TextEdit . Credo che non sia necessario nessun AppleScript, sebbene sia possibile integrarlo con un AppleScript per perfezionare le cose qua e là secondo necessità.

Senza la tua pagina web in questione, non riesco a escogitare il flusso di lavoro specifico per la tua applicazione. Tuttavia, questo ti priverebbe anche della gioia di farlo da solo. Tuttavia, utilizzando questa pagina Web Stack Exchange come esempio, il flusso di lavoro seguente isola l'URL del tuo profilo utente (il link al quale si trova nella parte inferiore della domanda che hai richiesto), scarica il testo dal tuo profilo, e lo trasforma in un nuovo documento TextEdit :

Si spera, questo è sufficiente per farti stare bene per raggiungere il tuo obiettivo. Se hai bisogno di chiarimenti, lascia un commento e ti richiamerò quando posso.

    
risposta data 20.12.2017 - 03:17
fonte

Leggi altre domande sui tag