当前位置: 首页 > article >正文

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,然后修改项目源码新增。

我主要新增openaiapi_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/.envVITE_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 如何在现实世界中用于自动化工作流程的示例。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/579794.html

相关文章:

  • 【性能测试】Jmeter详细操作-小白使用手册(2)
  • DeepSeekR1之五_RAGFlow中配置DeepSeekR1模型时错误问题及处理
  • WPF 在图像编辑工具开发中的优势
  • 【Proteus仿真】【STM32单片机】家用电计量系统
  • Qt:界面优化
  • Ubuntu 22.04 官方下载安装 Gradle 记录
  • 如何修复“RPC 服务器不可用”错误
  • 本地部署Navidrome个人云音乐平台随时随地畅听本地音乐文件
  • 数据结构 -图 -基础
  • 媲美Deepseek R1 671B的千问QwQ32B本地部署与远程访问实测流程
  • mitmproxy配合Wireshark 抓包分析
  • conda list <package> 指令输出的build和channel含义
  • 电力行业中分布式能源管理(Distributed Energy Management System, DEMS)的实现
  • 【每日学点HarmonyOS Next知识】底部弹窗、对话框不弹出、多模块间跳转、输入框不显示内容、Grid编辑顺序
  • QT系列教程(17) MVC结构之Model模型介绍
  • Spring-全面详解(学习总结)
  • Manus联创澄清:我们并未使用MCP技术
  • Windows中的用户变量和系统变量
  • Zabbix监控进程报警(Zabbix Monitoring Process Alarm)
  • 越早越好!8 个反直觉的金钱真相|金钱心理学