2 votes

Une automatisation utilisant AppleScript peut-elle copier le texte d'une page Web dans une application d'édition de texte ?

Pour mon premier essai avec AppleScript, je cherche à automatiser une commande de recherche et quelques actions de suivi qui devraient normalement être saisies par l'utilisateur.

En fin de compte, je veux automatiser l'ajout de paroles de chansons à ma bibliothèque iTunes. Mon premier défi consiste à demander à Safari de rechercher une phrase dans une page web, de cliquer sur le lien, puis de copier le texte brut de la page qui s'affiche dans le presse-papiers et de le coller dans l'éditeur de texte.

Je ne sais pas comment dire à Safari de command + F , collez une phrase à partir du presse-papiers, puis "cliquez" sur le lien en surbrillance.

Je n'ai pas besoin d'un script complet, mais d'une aide pour démarrer au minimum.

Comment pourrais-je réaliser une ou plusieurs parties de cette automatisation ?

3voto

OnePablo Points 1

Votre premier AppleScript ! Incroyable... Et un projet ambitieux pour commencer, mais je peux voir sa valeur.

Ma réponse n'écrira pas le script pour vous, mais je vous donnerai des conseils pour aborder votre problème différemment et obtenir ce que vous voulez un peu plus facilement.

Pour répondre d'abord à vos questions spécifiques :

Dire à Safari de faire Cmd-F

    tell application "Safari" to activate

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

Coller une phrase à partir du presse-papiers

Envoyez un Cmd-V. Il se peut que vous ayez besoin d'un petit délai entre les deux commandes clavier.

"Cliquez sur le lien en surbrillance

Tu ne peux pas. Vous ne serez pas en mesure d'identifier ce qui est mis en évidence via une recherche Cmd-F avec une grande facilité (peut-être par le biais d'un script GUI, mais ce sera un désordre). Je reviendrai bientôt sur ce point.

Une approche différente

En travaillant à l'envers, supposons que vous avez obtenu le texte que vous devez coller dans TextEdit . Ne le collez pas. Définissez le contenu d'un nouveau fichier TextEdit au contenu du presse-papiers :

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

Afin de définir le presse-papiers au contenu d'une page web Safari, utilisez cette commande :

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

Et cela nous ramène à cliquer sur le lien...

Si vous voulez littéralement cliquer sur un lien sur une page web, une méthode serait de s'assurer que Autoriser le Javascript à partir des événements Apple est vérifié dans la fenêtre Développer et lancez un do JavaScript pour choisir le lien contenant l'élément de recherche pertinent et le cliquer :

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

Cette méthode ne trouve que la première occurrence de l'heure de recherche, ce qui, j'en ai déduit, est suffisant étant donné que votre méthode de recherche par Cmd+F semblait se contenter d'accepter la première occurrence comme étant la seule d'importance.

Cependant, je pense que l'ensemble du processus pourrait être simplifié et rendu beaucoup plus robuste en utilisant les éléments suivants Automator pour nous aider. Il peut extraire toutes les URL directement d'une page web (il suffit de lui fournir l'URL de la page web en question). Vous pouvez ensuite filtrer ces URL pour rechercher un texte spécifique. Une fois que vous avez l'URL que vous désirez, au lieu de cliquer dessus, Automator peut télécharger son contenu sous forme de texte et l'insérer directement dans une nouvelle TextEdit document. Je pense que pratiquement aucun AppleScript ne sera nécessaire, bien que vous puissiez le compléter avec un peu d'AppleScript pour affiner les choses ici et là si nécessaire.

Sans votre page web en question, je ne peux pas concevoir le flux de travail spécifique à votre application. Cependant, cela vous priverait également de la joie de le faire vous-même. Mais en utilisant ce Stack Exchange à titre d'exemple, le flux de travail suivant isole l'URL de votre profil d'utilisateur (dont le lien se trouve en bas de la question que vous avez posée), télécharge le texte de votre profil et le transforme en un nouveau fichier TextEdit document :

enter image description here

Nous espérons que cela suffira à vous mettre sur la voie de la réalisation de votre objectif. Si vous avez besoin de précisions, laissez un commentaire et je vous répondrai dès que possible.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X