
5 行代码让 Agent 替你完成网页下载Browser-Use 下载自动化实战【免费下载链接】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-useBrowser-Use 是开源的 Python 浏览器 Agent 库它能驱动真实浏览器替你找链接、点下载、把文件存到你指定的目录。适合想摆脱手动点按钮 翻下载文件夹这类重复操作的开发者和业务人员。手动下载 vs Agent 下载差别在哪你上次下文件是什么流程盯着一个页面等进度条走完切到系统 Downloads 目录再手动把文件挪到项目文件夹里。三个动作每个文件都要重复一遍。换成 Browser-Use 之后之前你在页面上翻找链接、盯弹窗、等进度条、切文件夹挪文件全程人肉值守之后你只写一句任务描述Agent 自己打开页面、定位目标文件、完成点击文件直接落到你指定的目录批量场景下差别更明显。下 1 个文件手动也就多花 30 秒下 20 个文件就是 10 分钟以上纯等待Agent 模式下这 20 分钟可以完全去干别的事。下载流程里谁在干活一次下载从触发到落盘数据是这样流动的。浏览器里点击下载由 Agent 点击或页面直接触发浏览器通过 CDP 协议发出下载事件下载监控器 全程监听这些事件它负责建目录、等文件写完、确认文件完整文件存到哪里由 BrowserProfile 的downloads_path说了算文件写完的瞬间事件总线 派发一个FileDownloadedEvent外部代码立刻拿到文件名、大小和完整路径一句话总结下载监控器管下载过程BrowserProfile 管落盘位置事件总线管通知谁。你不需要写任何轮询代码。Agent 的行为由 LLM 驱动上表是不同模型跑同一套基准时的成功率。换句话说换一家 LLM下载任务的执行风格和能力都会有差异这点后面选模型时可以留意。一行命令安装 最小可运行示例安装只有一条命令pip install browser-use运行前把 LLM 的密钥放到环境变量里比如GOOGLE_API_KEY。下面是完整可运行的最小脚本import asyncio import os from browser_use import Agent, Browser, ChatGoogle llm ChatGoogle(modelgemini-2.5-flash, api_keyos.getenv(GOOGLE_API_KEY)) browser Browser(downloads_path~/Downloads/auto_downloads) async def run(): agent Agent( taskGo to https://file-examples.com/ and download the smallest doc file., llmllm, browserbrowser, ) await agent.run(max_steps25) if __name__ __main__: asyncio.run(run())跑起来你会看到三样东西终端里先后出现下载开始和下载完成两条日志各自带文件名文件保留原始文件名直接出现在~/Downloads/auto_downloads不用翻浏览器默认目录agent.run(max_steps25)保证 Agent 最多思考 25 步任务卡住也会停下来关键参数各说一句task任务描述Agent 就靠这句话决定去哪里、点哪个链接downloads_path文件落盘目录详见下一节max_stepsAgent 的最大步数上限防止它反复尝试跑飞llm驱动 Agent 的模型browser_use/llm/目录下覆盖 OpenAI、Anthropic、Google 等多家接入按需替换仓库里还有带下载完第一个再下第二个的完整脚本可以参考 examples/features/download_file.py。进阶用法下载目录怎么指定不传downloads_path时Browser-Use 会在系统临时目录里建一个browser-use-downloads-xxxxxxxx的随机目录xxxxxxxx是随机 ID用完再找就费劲了。显式指定一个路径更省心browser Browser(downloads_path~/work/reports/invoice)路径支持~目录不存在会自动创建同一次运行的所有下载都累积在这里适合按项目分目录归档。如何监听下载完成事件下载完要做后续处理归档、上传、发通知时给事件总线挂一个回调即可from browser_use.browser.events import FileDownloadedEvent async def on_downloaded(event: FileDownloadedEvent) - None: print(fsaved: {event.file_name} ({event.file_size}B) - {event.path}) browser.event_bus.on(FileDownloadedEvent, on_downloaded)事件对象自带file_name文件名、file_size字节数、path完整路径、file_type扩展名字段可以按文件类型分流到不同处理逻辑。回调在 Agent 运行期间持续生效每完成一个文件触发一次不需要轮询。两个真实任务示例示例 1月度报表批量下载任务描述task登录公司OA报表中心下载2026年7月各部门的费用报表预期结果报表逐个落到downloads_path指定目录配合完成回调可以逐个核对文件名和大小省去手动整理环节。示例 2每日数据 CSV 归档任务描述task打开数据平台导出页下载最近7天每天的数据CSV每下一个文件后继续下一个预期结果Agent 逐个下载、逐个推进文件按天命名落在同一目录回调里直接接后续的统计或上传步骤。相关示例与模块仓库里还有几个值得翻一下的地方examples/features/parallel_agents.py多个 Agent 并行跑不同下载任务examples/features/custom_system_prompt.py用自定义系统提示词约束 Agent 的行为边界browser_use/browser/watchdogs/downloads_watchdog.py下载监控器源码想搞懂下载检测细节就看它下一步回到开头那个场景把固定目录配上、回调挂上先用 25 步的小任务验证整条链路再放量到月度报表这种批量活。【免费下载链接】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),仅供参考