apple script editor, ricavare valore da sito web

 
Nuovo argomento    Rispondi    Faqintosh :: Forum :: Domande da principianti
Precedente   Successivo  
Autore Messaggio
kira69


Registrato: 11/03/10 19:30
Messaggi: 6

Novello

R13 Messaggio Inviato: Gio 11 Mar 2010, 19:43    Oggetto: apple script editor, ricavare valore da sito web Rispondi citando

ciao a tutti,
complimenti per il "faqforum"
ho bisogno di fare uno script, che apra una pagina in safari ( e ok) e dentro questa pagina "peschi " / " copi" un determinato valore per poi inserirlo in un campo o incollare in text edit .

sapete se è possibile data una pagina web, far dire allo script " prendi quel valore e memorizzalo per un uso successivo?

nel concreto, devo convertire un importo da euro a dollari, e vorrei che lo script recuperasse il tasso di cambio da un sito web, ma non so come fargli " leggere " il valore....

grazie per l'aiuto
Top
Profilo Invia messaggio privato
stefano


Registrato: 09/01/08 12:14
Messaggi: 1524
Residenza: Rimini
Admin

R13 Messaggio Inviato: Ven 12 Mar 2010, 10:15    Oggetto: Re: apple script editor, ricavare valore da sito web Rispondi citando

kira69 ha scritto:
ciao a tutti,
complimenti per il "faqforum"
ho bisogno di fare uno script, che apra una pagina in safari ( e ok) e dentro questa pagina "peschi " / " copi" un determinato valore per poi inserirlo in un campo o incollare in text edit .

sapete se è possibile data una pagina web, far dire allo script " prendi quel valore e memorizzalo per un uso successivo?

nel concreto, devo convertire un importo da euro a dollari, e vorrei che lo script recuperasse il tasso di cambio da un sito web, ma non so come fargli " leggere " il valore....

grazie per l'aiuto


ciao e benvenuto
Quello che vuoi fare è il parsing di una richiesta soap per estrapolare il tuo valore, cosa che AppleScript supporta perfettamente e in teoria non ti servirebbe neppure interagire con Safari, ma procedo con la tua richiesta.
Per vedere ulteriori comandi disponibili per Safari da AppleScript devi aprire il dizionario Safari dalla libreria di Script Editor.

Codice:
property link : "http://www.apple.com"
property obiettivo : {"<title>", "</title>"}

tell application "Safari"
   set questo_documento to make new document at beginning of documents -- apre una nuova pagina e ne memorizza il riferimento per un uso successivo
   delay 1 -- attesa creazione finestra
   set URL of questo_documento to link -- apre il link nella nuova finestra appena creata
   delay 3 -- attesa caricamento
   copy obiettivo to {i, f}
   set sorgente_pagina to source of document 1 -- mette in una variabile il contenuto della pagina come html, appunto la sorgente
   delay 5 -- attesa caricamento
   set partenza to offset of i in sorgente_pagina -- conta i caratteri fino al tag <title>
   set arrivo to offset of f in sorgente_pagina -- conta i caratteri fino al tag </title>
   set stringa to (characters (partenza + (length of i)) thru (arrivo - 1) in sorgente_pagina) as string -- ricava il testo contenuto tra i due tag
   display dialog "Il titolo della pagina è:" & return & stringa
   -- set the clipboard to stringa -- mette la stringa negli appunti
   -- qui potresti chiamare Script Editor e mettere Apple nel testo, è facile basta guardare la libreria di Script Editor per capire come fare
end tell

_________________
coloro i quali affermano che internet è un covo di illegalità, significa che usano internet solo per sfruttare l'illegalità, alias: si sa solo di ciò che si conosce
noi siamo il futuro, perciò non è colpa di nessuno, semmai colpa nostra

Aiutami nel mio addestramento Jedi mentre fronteggio la minaccia di Volkswagen al Pianeta Terra
Top
Profilo Invia messaggio privato HomePage AIM
kira69


Registrato: 11/03/10 19:30
Messaggi: 6

Novello

R13 Messaggio Inviato: Ven 12 Mar 2010, 10:56    Oggetto: Rispondi citando

sei gentilissimo, è un grande passo avanti per il risultato, ma non ci sono ancora

ho modificato il tuo script con i valori che puoi vedere qui sotto, ma il dialogo finale, riporta quasi tutto il sorgente della pagina, non solo il valore indicato dal tag " obiettivo", forse sono solo alcuni i tag che possono essere " letti "?


property link : "http://www.borsaitaliana.it/borsa/azioni/scheda.html?isin=FI0009000681&lang=it="
property obiettivo : {"<td>", "</td>"}

tell application "Safari"
set questo_documento to make new document at beginning of documents -- apre una nuova pagina e ne memorizza il riferimento per un uso successivo
delay 4 -- attesa creazione finestra
set URL of questo_documento to link -- apre il link nella nuova finestra appena creata
delay 4 -- attesa caricamento
copy obiettivo to {i, f}
set sorgente_pagina to source of document 1 -- mette in una variabile il contenuto della pagina come html, appunto la sorgente
delay 4 -- attesa caricamento
set partenza to offset of i in sorgente_pagina -- conta i caratteri fino al tag <title>
set arrivo to offset of f in sorgente_pagina -- conta i caratteri fino al tag </title>
set stringa to (characters (partenza + (length of i)) thru (arrivo - 1) in sorgente_pagina) as string -- ricava il testo contenuto tra i due tag
display dialog "Il titolo della pagina è:" & return & stringa
-- set the clipboard to stringa -- mette la stringa negli appunti
-- qui potresti chiamare Script Editor e mettere Apple nel testo, è facile basta guardare la libreria di Script Editor per capire come fare
end tell
Top
Profilo Invia messaggio privato
kira69


Registrato: 11/03/10 19:30
Messaggi: 6

Novello

R13 Messaggio Inviato: Ven 12 Mar 2010, 11:01    Oggetto: Rispondi citando

uhm , per altro ho provato anche con un altro sito e con un tag diverso ma mi riporta sempre tutto l url...
Top
Profilo Invia messaggio privato
stefano


Registrato: 09/01/08 12:14
Messaggi: 1524
Residenza: Rimini
Admin

R13 Messaggio Inviato: Ven 12 Mar 2010, 19:31    Oggetto: Rispondi citando

kira69 ha scritto:
uhm , per altro ho provato anche con un altro sito e con un tag diverso ma mi riporta sempre tutto l url...


nel mio caso era semplice, al tag <title> non applichi niente
mentre invece in alcuni casi al delimitatore può applicata una classe <td class="title_page" nowrap="nowrap" ecc per cui il risultato può essere inaspettato con valori addirittura negativi
prova ad inserire solo <td come stringa iniziale
dovrai poi eseguire ulteriori parsing positivi e negativi per rimuovere il codice in eccesso ( cerca ">" ), un lavorone che se ne va a pallino come cambiano stile o struttura, sarebbe allora meglio la richiesta soap, ma anche li non ci sono certezze.
_________________
coloro i quali affermano che internet è un covo di illegalità, significa che usano internet solo per sfruttare l'illegalità, alias: si sa solo di ciò che si conosce
noi siamo il futuro, perciò non è colpa di nessuno, semmai colpa nostra

Aiutami nel mio addestramento Jedi mentre fronteggio la minaccia di Volkswagen al Pianeta Terra
Top
Profilo Invia messaggio privato HomePage AIM
kira69


Registrato: 11/03/10 19:30
Messaggi: 6

Novello

R13 Messaggio Inviato: Ven 12 Mar 2010, 23:37    Oggetto: Rispondi citando

beh ho risolto cosi...

property link : "http://www.borsaitaliana.it/borsa/azioni/scheda.html?isin=FI0009000681&lang=it="
tell application "Safari"
set questo_documento to make new document at beginning of documents
delay 2 -- attesa creazione finestra
set URL of questo_documento to link
delay 10 -- attesa caricamento
set sorgente_pagina to source of document 1
delay 3 -- attesa caricamento
set the clipboard to sorgente_pagina
delay 1 -- attesa caricamento
tell application "TextEdit"
activate
tell application "System Events"
keystroke "n" using command down
end tell
delay 2 -- attesa creazione finestra
tell application "System Events"
keystroke "v" using command down
end tell
tell application "System Events"
keystroke "f" using command down
keystroke "even_ht"
keystroke return
key code 124
key code 124
key code 124
key code 124 using shift down
key code 124 using shift down
key code 124 using shift down
key code 124 using shift down
key code 124 using shift down
keystroke "c" using command down
keystroke "n" using command down
keystroke "v" using command down
end tell
end tell
end tell
Top
Profilo Invia messaggio privato
stefano


Registrato: 09/01/08 12:14
Messaggi: 1524
Residenza: Rimini
Admin

R13 Messaggio Inviato: Sab 13 Mar 2010, 01:15    Oggetto: Rispondi citando

be' se il risultato era accettabile così allora bastava un
Codice:
property link : "http://www.borsaitaliana.it/borsa/azioni/scheda.html?isin=FI0009000681&lang=it="
set a to POSIX path of (path to desktop folder)
set t to current date
set dt to (year of t & ft((month of t) as number) & ft(day of t) & ft(hours of t) & ft(minutes of t)) as string
set f to "borsaitaliana.it_" & dt & ".html"
set p to a & f
do shell script "curl -o " & quoted form of p & " '" & link & "'"
tell application "TextEdit"
   open p
end tell
on ft(tt)
   set g to (characters 1 thru 2 of ((reverse of every character of ("0" & tt)) as string))
   return (reverse of g) as string
end ft

_________________
coloro i quali affermano che internet è un covo di illegalità, significa che usano internet solo per sfruttare l'illegalità, alias: si sa solo di ciò che si conosce
noi siamo il futuro, perciò non è colpa di nessuno, semmai colpa nostra

Aiutami nel mio addestramento Jedi mentre fronteggio la minaccia di Volkswagen al Pianeta Terra
Top
Profilo Invia messaggio privato HomePage AIM
kira69


Registrato: 11/03/10 19:30
Messaggi: 6

Novello

R13 Messaggio Inviato: Sab 13 Mar 2010, 08:34    Oggetto: Rispondi citando

ciao, grazie ancora per la pazienza,
questo ultimo script che hai postato copia tutta la pagina
A me serve solo il valore dell'ultimo scambio.

Se c'è un modo più " veloce" e meno dispersivo di ottenere quel dato, sarebbe perfetto.

certo è.. che il tuo script mi ha fatto venire una nuova ispirazione per un ulteriore sviluppo.
Top
Profilo Invia messaggio privato
stefano


Registrato: 09/01/08 12:14
Messaggi: 1524
Residenza: Rimini
Admin

R13 Messaggio Inviato: Dom 14 Mar 2010, 00:49    Oggetto: Rispondi citando

kira69 ha scritto:
certo è.. che il tuo script mi ha fatto venire una nuova ispirazione per un ulteriore sviluppo.


quello è il mio obiettivo veramente, non risolverti la cosa Wink
pardon
_________________
coloro i quali affermano che internet è un covo di illegalità, significa che usano internet solo per sfruttare l'illegalità, alias: si sa solo di ciò che si conosce
noi siamo il futuro, perciò non è colpa di nessuno, semmai colpa nostra

Aiutami nel mio addestramento Jedi mentre fronteggio la minaccia di Volkswagen al Pianeta Terra
Top
Profilo Invia messaggio privato HomePage AIM
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Faqintosh :: Forum :: Domande da principianti Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi

Cerca il Forum con Google