2017-09-12 2 views
0

Ich versuche ein Skript, das einen Dialog der aktuellen iTunes Top 20 anzeigt. Wie ich dies tun möchte, ist der HTML-Code von der Top-100-Website und extrahieren Sie dann für Text zwischen zwei Strings, um den Namen des Songs zu erhalten. Für das erste Lied ist das äußerst erfolgreich.Applescript, um den gesamten Text nicht zwischen zwei Strings zu entfernen

Allerdings funktioniert es nur für das erste Lied jedes Mal. Die einzige Möglichkeit, wie ich das beheben kann, ist eher bekommen alles zwischen den beiden Zeichenfolgen, ich könnte alles nicht zwischen ihnen löschen. Dies würde mir dann hoffentlich alle Songnamen als String geben.

Weiß jemand, wie man das macht?

Holen Sie sich das HTML:

set curlcommand to "curl https://www.apple.com/itunes/charts/songs/" 
set html to (do shell script curlcommand) 

Holen Sie sich den Song Name:

set AppleScript's text item delimiters to "width=\"100\" height=\"100\" alt=\"" 
set theText to item 2 of every text item of html 
set AppleScript's text item delimiters to "\"></a>" 
set theText to item 1 of every text item of theText 
set AppleScript's text item delimiters to "" 

Antwort

0

Sie die Shell verwenden könnte eine Liste mit allen Songnamen Zeile für Zeile zu erhalten (dies ist kein Apple Liste).

set charts to (do shell script " 
curl -s 'https://www.apple.com/itunes/charts/songs/'| tr '\"' '\n' |awk '/^ alt=$/ {getline;print}'") 

tr '\"' '\n' ersetzt die doppelten Anführungszeichen mit neuen Linien (tr manual page)

awk '/^ alt=$/ {getline;print}' druckt die Zeile nach der Zeile alt=, wo der Song-Name geschrieben (awk manual page)

Verwandte Themen