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.pswp.cn/bicheng/73036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73036.shtml
英文地址,請注明出處:http://en.pswp.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;厚積而薄發。—…