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.mzph.cn/bicheng/73036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot + MyBatis + MySQL:快速搭建CRUD应用

一、引言 1. 项目背景与目标 在现代Web开发中&#xff0c;CRUD&#xff08;创建、读取、更新、删除&#xff09;操作是几乎所有应用程序的核心功能。本项目旨在通过Spring Boot、MyBatis和MySQL技术栈&#xff0c;快速搭建一个高效、简洁的CRUD应用。我们将从零开始&#xff…

【Academy】OAuth 2.0 身份验证漏洞 ------ OAuth 2.0 authentication vulnerabilities

OAuth 2.0 身份验证漏洞 ------ OAuth 2.0 authentication vulnerabilities 1. 什么是 OAuth&#xff1f;2. OAuth 2.0 是如何工作的&#xff1f;3. OAuth 授权类型3.1 OAuth 范围3.2 授权代码授权类型3.3 隐式授权类型 4. OAuth 身份验证4.1 识别 OAuth 身份验证4.2 侦察OAuth…

C#常用的循环语句

在C#中&#xff0c;循环是一种控制结构&#xff0c;用于重复执行一组语句直到满足特定条件。C#提供了几种循环结构&#xff0c;包括for循环、while循环、do-while循环和foreach循环。每种循环都有其特定的用途和场景。下面我将逐一介绍这些循环的用法。 一、C#循环类型 1. fo…

C语言(23)

字符串函数 11.strstr函数 1.1函数介绍&#xff1a; 头文件&#xff1a;string.h char *strstr ( const char * str1,const char *str2); 作用&#xff1a;在一个字符串&#xff08;str1&#xff09;中寻找另外一个字符串&#xff08;str2&#xff09;是否出现过 如果找到…

Vue3实战学习(Vue3的基础语法学习与使用(超详细))(3)

目录 &#xff08;1&#xff09;Vue3工程环境准备、项目基础脚手架搭建详细教程。(博客链接) &#xff08;2&#xff09;Vue3的基础语法学习与使用。 &#xff08;1&#xff09;"{{}}"绑定数据。 <1>ref()函数定义变量——绑定数据。 <2>reactive({...})…

vtkDepthSortPolyData 根据相机视图方向对多边形数据进行排序

1. 作用 在 3D 渲染中&#xff0c;透明对象的渲染顺序非常重要。如果透明对象的渲染顺序不正确&#xff0c;可能会导致错误的视觉效果&#xff08;例如&#xff0c;远处的透明对象遮挡了近处的透明对象&#xff09;。vtkDepthSortPolyData 通过对多边形数据进行深度排序&#…

【2025力扣打卡系列】0-1背包 完全背包

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为python3&#xff0c;Day5 0-1背包【目标和】 有n个物品&#xff0c;第i个物品的体积为w[i], 价值为v[i]。每个物品至多选一个&#xff0c;求体积和不超过capacity时的最大价值和常见变形 至多装capacity&#x…

MyBatis-Plus 分页查询接口返回值问题剖析

在使用 MyBatis-Plus 进行分页查询时,很多开发者会遇到一个常见的问题:当分页查询接口返回值定义为 Page<T> 时,执行查询会抛出异常;而将返回值修改为 IPage<T> 时,分页查询却能正常工作。本文将从 MyBatis-Plus 的分页机制入手,详细分析这一问题的根源,并提…

《人月神话》:软件工程的成本寓言与生存法则

1975年&#xff0c;Fred Brooks在《人月神话》中写下那句振聋发聩的断言——“向进度落后的项目增加人力&#xff0c;只会让进度更加落后”——时&#xff0c;他或许未曾料到&#xff0c;这一观点会在半个世纪后的人工智能与云原生时代&#xff0c;依然如达摩克利斯之剑般悬在每…

三维建模与视频融合(3D-Video Integration)技术初探。

三维建模与视频融合&#xff08;3D-Video Integration&#xff09;是一种将虚拟三维模型无缝嵌入实拍视频场景的技术&#xff0c;广泛应用于影视特效、增强现实&#xff08;AR&#xff09;、游戏开发、广告制作 、视频监控 等领域。 一、技术核心流程 三维建模与动画 使用工具…

SpringMVC-全局异常处理

文章目录 1. 全局异常处理2. 项目异常处理方案2.1 异常分类2.2 异常解决方案2.3 异常解决方案具体实现 1. 全局异常处理 问题&#xff1a;当我们在SpingMVC代码中没有对异常进行处理时&#xff0c;三层架构的默认处理异常方案是将异常抛给上级调用者。也就是说Mapper层报错会将…

2025 cv2.imwrite存储带有中文路径

一、前言 cv使用的更多一些&#xff0c;不过cv读取和写入带有中文路径的图片会报错有写出乱码。 以下代码是从视频中获取第2帧保存在中文文件夹下的实例&#xff1a; cap cv2.VideoCapture("***.mp4")cap.set(cv2.CAP_PROP_POS_FRAMES, 2)ret, framecap.read()cv2…

在 CentOS 上,常用几种方法来确保 Python 脚本在断开终端后继续运行

在 CentOS 上&#xff0c;你可以使用以下几种方法来确保 Python 脚本在断开终端后继续运行&#xff1a; 1. 使用 nohup 命令 nohup 命令可以让进程在终端关闭后继续运行。 nohup python main.py > output.log 2>&1 &nohup&#xff1a;忽略挂断信号&#xff0c…

blazemeter工具使用--用于自动生成jmeter脚本并进行性能测试

1、安装blazemeter&#xff08;网上有很多详情的教程&#xff09; 2、开始录制&#xff1a;设置号你的文件名称后开始录制 3、录制完成后保存为jmeter(jmx)文件 4、在jmeter中打开文件 5、添加一个后置处理器&#xff1a;查看结果树&#xff0c;后运行看看能否成功&#xf…

6-langchang多模态输入和自定义输出

6-langchang多模态输入和自定义输出 多模态数据输入urlbase64url list工具调用自定义输出: JSON, XML, YAML如何解析 JSON 输出json如何解析xmlYAML解析器多模态数据输入 这里我们演示如何将多模态输入直接传递给模型。我们目前期望所有输入都以与OpenAI 期望的格式相同的格式…

【C#实现手写Ollama服务交互,实现本地模型对话】

前言 C#手写Ollama服务交互&#xff0c;实现本地模型对话 最近使用C#调用OllamaSharpe库实现Ollama本地对话&#xff0c;然后思考着能否自己实现这个功能。经过一番查找&#xff0c;和查看OllamaSharpe源码发现确实可以。其实就是开启Ollama服务后&#xff0c;发送HTTP请求&a…

【C#学习笔记02】基本元素与数据类型

引言 深入了解C语言的基本元素、计算机存储器结构、常量与变量的概念以及数据类型。这些内容是C语言编程的基础&#xff0c;掌握它们对于编写高效、可靠的嵌入式程序至关重要。 1.C语言的基本元素 ​编程语言的发展离不开自然语言&#xff0c;所以编程语言的语法和词汇也是由…

ESP8266TCP客户端(单连接TCP Client)

单连接TCP Client 电脑作为服务器&#xff0c;8266作为客户端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相应&#xff1a;ok 2.连接路由器 ATCWJAP“SSID”&#xff0c;“password” //SSID就是wifi的名字&#xff0c; password WIFI密码 响应&#xff…

洛谷 P2234:[HNOI2002] 营业额统计 ← STL set

【题目来源】 https://www.luogu.com.cn/problem/P2234 【题目描述】 Tiger 最近被公司升任为营业部经理&#xff0c;他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出了公司的账本&#xff0c;账本上记录了公司成立以来每天的营业额。分析…

VSCode 2025最新前端开发必备插件推荐汇总(提效指南)

&#x1f31f;前言: 如果你是一名前端开发工程师&#xff0c;合适的开发工具能大大提高工作效率。Visual Studio Code (VSCode) 凭借其轻量级、高扩展性的特点&#xff0c;已成为众多前端开发者在win系电脑的首选IDE。 名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。—…