AHK 里经常会遇到“下载文件、读取网页、调用接口、控制浏览器”这些需求。很多人一开始会把它们混在一起,其实它们是几条不同路线。选错路线,脚本会又慢又不稳定。
先给结论
- 只是下载一个直链文件:可以用
URLDownloadToFile。 - 需要请求接口、提交参数、读取 JSON:优先用 HTTP 请求。
- 需要操作已经打开的网页:考虑 Chrome.ahk、JS 注入或浏览器自动化。
- 网页只是展示数据,背后有接口:优先找接口,不要急着模拟点击。
下载直链文件
URLDownloadToFile 适合最简单的下载场景:一个 URL 对应一个文件,不需要登录、不需要请求头、不需要复杂参数。
#Requires AutoHotkey v1.1
url := "https://example.com/test.txt"
save := A_ScriptDir "\test.txt"
URLDownloadToFile, %url%, %save%
if ErrorLevel
MsgBox, 下载失败
else
MsgBox, 下载完成:%save%
什么时候不要用 URLDownloadToFile
如果接口需要登录态、Cookie、请求头、POST 参数,或者返回的是 JSON,URLDownloadToFile 就不太合适了。这个时候应该换成 HTTP 请求对象。
http := ComObjCreate("WinHttp.WinHttpRequest.5.1")
http.Open("GET", "https://example.com/api", false)
http.Send()
MsgBox, % http.ResponseText
浏览器自动化不是第一选择
如果目标网站有接口,直接请求接口通常更稳定;如果没有接口,或者页面逻辑必须在浏览器里跑,再考虑浏览器控制。不要一上来就用图像识别去点网页按钮。
三条路线怎么选
- 文件下载:
URLDownloadToFile或 HTTP 下载。 - 数据接口:HTTP 请求,解析返回内容。
- 网页交互:Chrome.ahk、JS 注入、浏览器自动化。
常见坑
- 下载链接不是文件直链,而是需要登录后的跳转地址。
- 接口需要请求头,直接访问会返回空内容或 403。
- 网页上的内容是 JS 动态加载,直接下载 HTML 看不到数据。
- 把浏览器自动化当成万能方案,最后脚本速度慢、维护难。
站内延伸
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)