Applescript删除两个字符串之间的所有文本

时间:2017-09-12 07:07:54

标签: applescript

我正在尝试制作一个脚本,显示当前iTunes Top 20的对话框。我打算这样做是从前100个网站获取html代码,然后在两个字符串之间提取文本以获取名称这首歌。对于第一首歌,这是非常成功的。

但是,它每次只适用于第一首歌。我能想到解决这个问题的唯一方法就是 get 两个字符串之间的所有内容,我可以删除它们之间的所有而不是。这有希望然后给我作为一个字符串的所有歌曲名称。

有谁知道怎么做?

获取HTML:

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

获取歌曲名称:

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 ""

1 个答案:

答案 0 :(得分:0)

您可以使用shell逐行获取包含所有歌曲名称的列表(这不是AppleScript列表)。

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

tr '\"' '\n'用新行(tr manual page

替换双引号

awk '/^ alt=$/ {getline;print}'打印出写有歌曲名称的行alt=之后的行(awk manual page