Как и в случае с другим вашим вопросом, с которым я вам помог, целевые данные уже находятся в таблице , и поэтому я буду использовать данные таблицы для получить информацию, так как структура ее структуры вряд ли изменится, где целью 'g-body '
из 5
не всегда могут быть Соединенные Штаты.
Я получаю свои данные немного по-другому:
set theURL to "https://www.nytimes.com/interactive/2020/world/coronavirus-maps.html?action=click&pgtype=Article&state=default&module=styln-coronavirus&variant=show®ion=TOP_BANNER&context=storyline_menu"
tell application "Safari" to make new document with properties {URL:theURL}
tell application "System Events"
repeat until exists ¬
(UI elements of groups of toolbar 1 of window 1 of ¬
application process "Safari" whose name = "Reload this page")
delay 0.5
end repeat
end tell
tell application "Safari" to tell document 1 to set CountriesTable to ¬
do JavaScript "document.getElementsByClassName('svelte-f9sygj')[0].innerText;"
tell application "Safari" to close its front window
set awkCommand to ¬
"awk '/United States/{print $3,\"Cases &\",$4,\"Deaths\"}'"
set notificationMessage to ¬
do shell script awkCommand & "<<<" & CountriesTable's quoted form
display notification notificationMessage subtitle "US COVID-19 UPDATE" sound name "glass"
- ПРИМЕЧАНИЕ: Код , используемый для определения, когда страница in Safari завершил загрузку в macOS Mojave и более поздних версиях, однако для macOS High Sierra и некоторых более ранних версий добавьте words
buttons of
перед UI elements ...
в repeat until exists ¬ ...
коде .
Примечание: пример AppleScript код только и не содержит обработки ошибок , которая может быть уместной. Пользователь должен добавить любую обработку ошибок , которая может быть уместной, необходимой или желаемой. Взгляните на оператор try и error оператор в Руководство по языку AppleScript . См. Также Работа с ошибками . Кроме того, может потребоваться использование delay command между событиями, где это необходимо, например, delay 0.5
, со значением задержка установлена соответствующим образом.