专为 AI Agent和AI应用构建的开源浏览器自动化 API:steel-browser

项目简介

steel-browser:专为 AI Agent和AI应用构建的开源浏览器自动化 API,构建能像人一样有效地与web交互的AI应用程序


构建实时网络代理和浏览器自动化的一个开源工具:steel-browser,它提供了完整的REST API接口来控制浏览器操作可以基于它构建比如,AI网页助手、数据采集工具、自动化表格工具等,它可以执行打开网页、截图、下载文件等任务

开箱即用,支持无头浏览器,支持Docker,支持反检测
支持基本所有常见的网页操作
支持并发处理,可以处理大规模任务
自动处理异常和恢复


Steel.dev是一个开源浏览器 API,可以轻松构建与网络交互的 AI 应用程序和代理。您无需从头开始构建自动化基础设施,而是可以专注于 AI 应用程序,而 Steel 则负责处理复杂性。


该存储库是 Steel 背后的核心构建块 – 一个可用于生产的容器化浏览器沙箱,您可以将其部署在任何地方。它包括内置的隐形功能、文本到 Markdown 会话管理、用于查看/调试会话的 UI,以及通过 Puppeteer、Playwright 和 Selenium 等标准自动化框架进行的完整浏览器控制。

✨ 亮点

steel-browser提供 REST API 来控制、运行和管理生产就绪的浏览器环境。在底层,它管理浏览器实例、会话和页面,使您能够以编程方式执行复杂的浏览任务,而不会遇到任何麻烦:

  • 完全浏览器控制:使用 Puppeteer 和 CDP 来完全控制 Chrome 实例 – 允许您使用 Puppeteer、Playwright 或 Selenium 进行连接。

  • 会话管理:跨请求维护浏览器状态、cookie 和本地存储

  • 代理支持:内置代理链管理,用于 IP 轮换

  • 扩展支持:加载自定义 Chrome 扩展以增强功能

  • 调试工具:内置请求日志记录和会话记录功能

  • 反检测:包括隐形插件和指纹管理

  • 资源管理:自动清理和浏览器生命周期管理

  • 浏览器工具:公开 API 以快速将页面转换为 Markdown、可读性、屏幕截图或 PDF。

有关详细的 API 文档和示例,请查看我们的API 参考或直接探索 Swagger UI http://0.0.0.0:3000/documentation 


入门

最快的入门方法是构建并运行 Docker 映像:

# Clone and build the Docker imagegit clone https://github.com/steel-dev/steel-browsercd steel-browserdocker compose up

或者,如果您安装了 Node.js 和 Chrome,则可以直接运行服务器:

npm run installnpm run dev

这将在端口 3000 上启动 Steel 服务器。


确保您已安装 Chrome 可执行文件并位于以下路径之一:

  • Linux/usr/bin/google-chrome

  • MacOS/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

  • Windows:

    • C:\Program Files\Google\Chrome\Application\chrome.exe 或者

    • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe


有关检查位置的更多详细信息,请参阅api/src/utils/browser.ts 。


用法

Steel 浏览器提供 REST API 来控制由 Puppeteer 提供支持的无头浏览器。在底层,它管理浏览器实例、会话和页面,允许您以编程方式执行复杂的浏览任务。


完整的 REST API 文档可以在 Steel 实例的/documentation中找到(例如, http://0.0.0.0:3000/documentation )。


Steel 提供了三种主要方法让您的代理实现浏览器自动化:


快速操作 API

/scrape 、 /screenshot/pdf端点可让您使用正在运行的 Steel 服务器从任何网页快速提取干净、格式良好的数据。非常适合简单、只读、按需作业:


抓取网页

提取网页的 HTML 内容。

# Example using the Actions APIcurl -X POST http://0.0.0.0:3000/v1/scrape \  -H "Content-Type: application/json" \  -d '{    "url": "https://example.com",    "waitFor": 1000  }'

浏览器会话 API

浏览器会话 API 允许您使用自定义选项或扩展(例如使用自定义代理)重新启动浏览器,并重置浏览器状态。非常适合需要细粒度控制的复杂、有状态的工作流程:

# Launch a new browser sessioncurl -X POST http://0.0.0.0:3000/v1/sessions \  -H "Content-Type: application/json" \  -d '{    "options": {      "proxy": "user:pass@host:port",      // Custom launch options    }  }'

Selenium集成

注意:此集成不支持基于 CDP 的浏览器会话 API 的所有功能。


对于拥有现有 Selenium 工作流程的团队,Steel 浏览器提供了一个直接替代品,可以在保持兼容性的同时添加增强的功能:

# Launch a Selenium sessioncurl -X POST http://0.0.0.0:3000/v1/selenium/launch \  -H "Content-Type: application/json" \  -d '{    "options": {      // Selenium-compatible options    }  }'

Selenium API 与 Selenium 的 WebDriver 协议完全兼容,因此您可以使用任何现有的 Selenium 客户端连接到 Steel 浏览器。

// Example using the Selenium APIconst builder = new Builder()      .forBrowser("chrome")      .usingServer(        `http://0.0.0.0:3000/selenium`      );
const driver = await builder.build();
console.log("Navigating to Google");await driver.get("https://www.google.com");
// The rest of your Selenium code here...


项目链接

https://github.com/steel-dev/steel-browser

扫码加入技术交流群,备注开发语言-城市-昵称

(文:GitHubStore)

欢迎分享

发表评论