Skyvern AI 实现 浏览器爬虫+自动化工具
一、前言
本文Skyvern是一款功能强大的模拟浏览器自动化操作爬虫软件。它通过模拟人类在浏览器中的操作,实现对目标网站的自动化访问、数据抓取和处理。Skyvern支持多种编程语言,用户可根据需求编写脚本,实现高效的数据采集。同时,它具备强大的反爬虫策略应对能力,能在保证数据抓取效率的同时,降低被封禁的风险。Skyvern广泛应用于网络数据挖掘、竞品分析等领域,是企业及个人获取网络信息的有力工具。
二、Skyvern 介绍
Skyvern是一种由Skyvern-AI开发的AI工具,旨在通过使用大型语言模型(LLMs)和计算机视觉技术来自动化基于浏览器的任务和工作流程。该产品的主要目标是帮助用户减少重复性手动工作,提高效率。Skyvern通过简单的API端点实现完全自动化的手动工作流程,替代了脆弱或不稳定的自动化解决方案。
主要特点
- 无需预定义代码:Skyvern能够在从未见过的网站上操作,自动将视觉元素映射到完成工作流程所需的动作,无需任何定制代码。
- 抗布局变化能力:由于Skyvern不依赖预定义的XPath或其他选择器,因此网站布局变化不会影响其操作。
- 大规模工作流程应用:Skyvern能够将一个工作流程应用到大量网站,具有灵活的推理能力。
- 复杂情境处理能力:通过LLM,Skyvern能够理解并处理复杂的交互情形。
应用场景
- 自动数据抓取:无论是价格比较,还是市场研究,Skyvern都能跨多个电商平台快速收集信息。
- 在线表单填写:保险报价申请、报名表格等繁琐过程,只需简单配置即可自动化完成。
- 竞品分析:自动浏览竞争对手网站,获取产品信息并做对比。
工作原理
Skyvern 的灵感来自 BabyAGI 和 AutoGPT 推广的任务驱动自主代理设计——还有一个主要优点:我们让 Skyvern 能够使用 Playwright 等浏览器自动化库与网站进行交互。
三、Skyvern 部署与安装
GitHub:https://github.com/skyvern-ai/skyvern
GitCode:https://gitcode.com/
在线:https://app.skyvern.com/
文档:https://docs.skyvern.com
litellm: https://gitcode.com/gh_mirrors/li/litellm
Docker Compose 设置(推荐)
1、确保您已安装并运行 Docker Desktop。
Docker Desktop 是 Docker 官方提供的桌面应用程序,旨在让开发者能够在 Windows 和 macOS 系统上轻松地构建、运行和共享容器化应用程序。Docker Desktop 提供了一个方便的工具集,使用户能够快速部署容器化应用程序,同时还包括了一些强大的功能和工具,如 Docker Engine、Docker CLI、Docker Compose 等。
这里我就不将 Docker 的详细安装步骤写出来了,如果还没有安装的可以通过下面查看我的另一篇文字
查看详细Docker Desktop安装步骤:
【Docker Desktop 安装使用教程】
查看详细安装 Docker Desktop 相关问题:
【安装 家庭版 Windows 出现 的 Docker 问题】
【安装 Windows Docker Desktop - WSL问题】
【打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题】
2、确保本地没有运行 postgres(运行 docker ps 检查)。
docker ps
3、克隆仓库并导航到根目录。
git clone https://github.com/Skyvern-AI/skyvern.git
GitHub:https://github.com/skyvern-ai/skyvern
4、修改配置(支持litellm)
-
后端配置
根据你使用的LLM修改
.env
文件即可(将需要使用的模型供应商ENABLE_*
改为true,填写相应的密钥*_API_KEY
,修改使用的模型LLM_KEY
)
项目使用的是litellm用于发起请求,若有其他的支持视觉的LLM可以自己参考litellm,然后修改项目源码新增。
我主要新增openai
的 api_base
这个参数,若有和我一样将openai接口国内做的转发可以参考以下步骤。
- 修改
skyvern/config.py
在Settings类中新增类变量OPENAI_API_BASE
OPENAI_API_BASE: str | None = None
- 修改
skyvern/forge/sdk/api/llm/config_registry.py
- 在你需要修改的模型中新增
litellm_params
参数(我使用的gpt4o,其余模型修改方法类似)
- 在你需要修改的模型中新增
LLMConfigRegistry.register_config(
"OPENAI_GPT4O", LLMConfig(
"gpt-4o",
["OPENAI_API_KEY", "OPENAI_API_BASE"], # 检查 .env中参数是否填写
supports_vision=True,
add_assistant_prefix=False,
litellm_params=LiteLLMParams(
api_base=SettingsManager.get_settings().OPENAI_API_BASE,
api_key=None,
api_version=None,
),
)
)
- 修改
.env.example
为.env
- 新增
OPENAI_API_BASE
- 新增
OPENAI_API_BASE="https://xx.cn/v1"
- 前端配置
主要查看skyvern-frontend/.env
中VITE_SKYVERN_API_KEY
是否为空,若为空运行以下代码得到token填写即可。(若代码运行出现 403 则运行以下代码得到token修改即可)
poetry shell # 进入poetry管理的项目环境
poetry run python scripts/create_organization.py Skyvern-Open-Source
5、在 docker-compose.yml 中填写 LLM 提供程序密钥。
如果您想在远程服务器上运行 Skyvern,请确保在 docker-compose.yml 中为 UI 容器设置正确的服务器 IP地址。
environment:
- DATABASE_STRING=postgresql+psycopg://skyvern:skyvern@postgres:5432/skyvern
- BROWSER_TYPE=chromium-headful
- ENABLE_OPENAI=true
- LLM_KEY=OPENAI_GPT4O
- OPENAI_API_KEY=<your_openai_key>
6、通过命令行运行以下命令:
docker compose up -d
7.启动Skyvern
8、在浏览器中导航到 http://localhost:8080 开始使用 UI。
三、Skyvern 的真实案例
我们很高兴看到 Skyvern 是如何在实际中被使用的。以下是一些 Skyvern 如何在现实世界中用于自动化工作流程的示例。