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

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

2300 Stars 99 Forks 4 Issues 5 贡献者 Apache-2.0 License TypeScript语言

代码: GitHub - steel-dev/steel-browser: 🔥 Open Source Browser API for AI Agents & Apps. Steel Browser is a batteries-included browser instance that lets you automate the web without worrying about infrastructure.

主页: Steel | Open-source Headless Browser API

主要功能

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

  • **完全浏览器控制**:使用 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 image
git clone https://github.com/steel-dev/steel-browser
cd steel-browser
docker compose up

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

复制代码
npm run install
npm 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 实例上找到,网址为 (例如, )。/documentationhttp://0.0.0.0:3000/documentation​

Steel 提供了三种主要方式让您的代理执行浏览器自动化:

快速操作 API

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

抓取网页

提取网页的 HTML 内容。

复制代码
# Example using the Actions API
curl -X POST http://0.0.0.0:3000/v1/scrape \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "waitFor": 1000
  }'
截取屏幕截图

截取网页的屏幕截图。

复制代码
# Example using the Actions API
curl -X POST http://0.0.0.0:3000/v1/screenshot \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "fullPage": true
  }' --output screenshot.png
浏览器会话 API

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

复制代码
# Launch a new browser session
curl -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 session
curl -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 API
const 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...
相关推荐
聚客AI14 分钟前
PyTorch玩转CNN:卷积操作可视化+五大经典网络复现+分类项目
人工智能·pytorch·神经网络
程序员岳焱17 分钟前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
柠檬味拥抱19 分钟前
AI智能体在金融决策系统中的自主学习与行为建模方法探讨
人工智能
Jaising66620 分钟前
JetBrains AI 打零工(一)——生产力工具与程序员的驾驭之道
ai编程·intellij idea
智驱力人工智能30 分钟前
智慧零售管理中的客流统计与属性分析
人工智能·算法·边缘计算·零售·智慧零售·聚众识别·人员计数
workflower1 小时前
以光量子为例,详解量子获取方式
数据仓库·人工智能·软件工程·需求分析·量子计算·软件需求
壹氿1 小时前
Supersonic 新一代AI数据分析平台
人工智能·数据挖掘·数据分析
张较瘦_1 小时前
[论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
论文阅读·人工智能
我不是小upper1 小时前
SVM超详细原理总结
人工智能·机器学习·支持向量机
Yxh181377845541 小时前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵