ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Browser-Use 网页文件下载自动化实战:让 Agent 替你点下载,文件落到你想去的目录

Browser-Use 网页文件下载自动化实战:让 Agent 替你点下载,文件落到你想去的目录

Browser-Use 网页文件下载自动化实战:让 Agent 替你点下载,文件落到你想去的目录

【免费下载链接】browser-useOpen-source Python library for AI browser agents, plus Browser Use Cloud: stealth browsers and a hosted agent API.项目地址: https://gitcode.com/GitHub_Trending/br/browser-use

月底你要从电商后台批量拉运单:开页面、找文件、点下载、再切文件夹确认落没落地。这类重复劳动可以交给 Browser-Use 的网页文件下载自动化——Agent 自己打开浏览器、定位目标文件、完成点击下载,文件直接存进你指定的目录。下面带你从安装到落盘走一遍,并讲清楚怎么在下载完成时收到通知。

下载怎么运转:三个组件各管什么

Browser-Use 的网页文件下载自动化由三个组件分工完成,你不需要自己写任何下载逻辑:

组件职责对应文件
下载监听器监听浏览器下载进度,接住文件并完成落盘downloads_watchdog.py
浏览器配置BrowserProfile持有downloads_path配置,决定文件存哪profile.py
事件总线发出FileDownloadedEvent,把"下载完成"上报给外部代码events.py

监听器管接住,配置管落哪,事件总管线通知,三者拼成完整链路。

上面是官方基准图:横轴是单任务成本,纵轴是准确率,每个点对应一个模型,给你的下载任务选模型时可以参考。

第一步跑通:从安装到文件落盘

  1. 安装,只需要一条命令:
pip install browser-use
  1. 写第一个脚本:让 Agent 打开 file-examples.com,从列表里挑最小的 doc 文件下载。max_steps=25限制它最多思考 25 步,防止跑飞。
import asyncio import os from browser_use import Agent, Browser, ChatOpenAI model = ChatOpenAI(model='gpt-4o', api_key=os.getenv('OPENAI_API_KEY')) browser = Browser(downloads_path='~/Downloads/file_samples') async def main(): agent = Agent( task='Open https://file-examples.com/, find the smallest DOC file in the list and download it.', llm=model, browser=browser, ) await agent.run(max_steps=25) if __name__ == '__main__': asyncio.run(main())

模型可自由替换,browser_use/llm/ 目录下已接入 OpenAI、Google、Anthropic 等各家。

  1. 验证结果:✅ 终端会看到两行关键日志——下载开始一行、Successfully downloaded一行,后者直接打印完整落盘路径。文件保留原始文件名出现在~/Downloads/file_samples,不用再去浏览器默认下载目录翻。

常用设置:downloads_path 与 FileDownloadedEvent

不传downloads_path时,Browser-Use 会在系统临时目录下建一个形如browser-use-downloads-xxxx的随机子目录。名字不可预测,事后核对很难找。如果你要按项目归档,就显式指定路径,例如Browser(downloads_path='~/work/reports/invoice')。目录不存在会自动创建,所有下载都累积在那里。

如果你要在下载完成后做后续处理(归档、上传、发通知),就在事件总线上挂一个回调。FileDownloadedEvent对象自带file_name、file_size、path、file_type等字段,方便按文件类型分流:

from browser_use.browser.events import FileDownloadedEvent async def on_downloaded(event: FileDownloadedEvent) -> None: print(f'{event.file_name} ({event.file_size}B) -> {event.path}') browser.event_bus.on(FileDownloadedEvent, on_downloaded)

回调挂上后在 Agent 运行期间一直生效,你不再需要轮询文件是否到位。

接到真实业务:两个任务句示例

电商运营:促销后批量拉运单。活动结束要对账,需要把后台的发货运单全部取回来。

task='登录电商后台发货管理页,找到7月15日所有订单的运单,逐个下载'

预期结果:运单逐个落到downloads_path指定目录,完成回调里按顺序核对文件名和数量,不用边点边数。

IT 运维:从监控平台取告警日志。值班时需要把各服务器昨天的告警日志收齐,附到工单里。

task='打开监控平台的日志导出页,逐个下载每台服务器昨天的告警日志,直到全部下载完'

预期结果:文件按服务器命名进入同一目录,回调里直接接后续归档或上传步骤。

延伸阅读:并行、自定义提示词与 Gmail

  • parallel_agents.py:下载任务量大时,怎么让多个 Agent 并行跑。
  • custom_system_prompt.py:需要约束 Agent 行为时,怎么用自定义系统提示词注入规则。
  • gmail_2fa_integration.py:怎么把收件箱相关任务(如取附件)也接进自动化流程。

下个月底,把这条批量取文件流程交出去:任务句写清楚、目标目录定好,剩下的就是在指定文件夹里核对文件。

【免费下载链接】browser-useOpen-source Python library for AI browser agents, plus Browser Use Cloud: stealth browsers and a hosted agent API.项目地址: https://gitcode.com/GitHub_Trending/br/browser-use

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进