我是applescript的新手。我正在尝试通过 safari 从网页将字符串返回给变量。目标字符串发生变化,但前后的单词是静态的。
例如:苹果 1293.34 美元
“Apple”和“USD”永远不会改变,但我想要的只是两者之间的数字。
该元素没有 ID,我没有运气尝试使用 Javascript 按类获取。
谢谢 :)
我是applescript的新手。我正在尝试通过 safari 从网页将字符串返回给变量。目标字符串发生变化,但前后的单词是静态的。
例如:苹果 1293.34 美元
“Apple”和“USD”永远不会改变,但我想要的只是两者之间的数字。
该元素没有 ID,我没有运气尝试使用 Javascript 按类获取。
谢谢 :)
你可以尝试解析Curl ...
set myUrl to "http://stackoverflow.com/questions/18633200/finding-variable-text-between-two-constants-with-applescript"
set xxx to do shell script "curl " & quoted form of myUrl & " | grep -o Apple.*USD | sed 's/Apple\\(.*\\)USD/\\1/'"
你应该首先找到你的元素。
var element = document.getElementById("elementID");
然后得到你的价值:
var value = parseFloat(element.innerText.split(" ")[1])
这是给定文本的applescript方法。这并不假定 Apple 在文本中只出现一次。这将查看并找到 Apple 在 2 个单词之后被 USD 跟随的位置,然后在它们之间获得适当的值。
set theText to "USD some words Apple USD more words Apple 1293.34 USD some words Apple USD"
set {tids, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "Apple"}
set textItems to text items of theText
set AppleScript's text item delimiters to tids
set theValue to missing value
repeat with i from 2 to (count of textItems)
set thisItem to item i of textItems
try
if word 2 of thisItem is "USD" then
set theValue to word 1 of thisItem
exit repeat
end if
end try
end repeat
return theValue