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

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 如何在现实世界中用于自动化工作流程的示例。

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

相关文章:

  • coze ai assistant Task 2
  • Flash Attention 算法简介
  • Math.NET Numerics 库怎么装
  • 【Linux内核系列】:文件系统
  • 治愈系自媒体运营方案
  • Linux 字符设备驱动实例
  • 第二章:Qt常用界面组件
  • Java程序开发之Spring Boot快速入门:5分钟搭建RESTful API
  • angular中下载接口返回文件
  • Qt的QMenu 和 QAction的样式设置
  • 骑士74CMS_v3.34.0SE版uniapp全开源小程序怎么编译admin和member流程一篇文章说清楚
  • 计算机毕业设计:ktv点歌系统
  • 使用arm嵌入式编译器+makefile编译管理keil项目
  • openai agents SDK原理详解
  • golang从入门到做牛马:第十六篇-Go语言`range`:循环遍历的“瑞士军刀”
  • PID控制器的整定的方法
  • Java中的加盐加密:提升密码存储安全性的关键实践
  • docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境
  • 【Pandas】pandas Series shift
  • 操作系统知识点28
  • 阿联酋与美国达成超过2000亿美元协议
  • 四川内江警方通报一起持刀伤人致死案:因车辆停放引起,嫌犯被抓获
  • 四川甘孜炉霍县觉日寺管委会主任呷玛降泽被查
  • 奥运“四朝元老”华天回国参赛,伤势未愈谨慎出战全国锦标赛
  • 杞支雅男评《1517》|放眼世界,立足德国
  • 俄谈判代表团已抵达土耳其,谈判预计在莫斯科时间10时左右开始