AppleScript网页爬虫脚本报错:变量input未定义,求修复
修复AppleScript爬虫代码的变量未定义错误
问题原因
你遇到的the variable input is not defined错误,是因为input是AppleScript的保留关键字,不能用来作为自定义变量名,脚本解析时会将其识别为系统关键字而非你定义的变量,从而抛出未定义错误。
修复后的代码
将变量名替换为非保留字(比如elementHTML)即可解决问题:
to getInputByClass(theClass, num) -- 定义接收两个参数的函数:theClass和num tell application "Safari" -- 指定操作对象为Safari set elementHTML to do JavaScript "document.getElementsByClassName('" & theClass & "')[" & num & "].innerHTML;" in document 1 end tell return elementHTML end getInputByClass getInputByClass("r", 0)
额外注意事项
- 运行脚本前确保Safari已经打开,且有至少一个加载完成的标签页(
document 1对应第一个标签页) - 确认目标网页中确实存在class为
r的元素,且索引0对应的元素存在,否则JavaScript会返回undefined,AppleScript可能会抛出其他错误
内容的提问来源于stack exchange,提问作者funnysquid
相关产品推荐
相关产品推荐

