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...
相关推荐
晓shuo4 分钟前
RT系列机器人详细介绍(BC-Z、RT-1、OMM、RT-Trajectory、Q-Transformer、RT-2、RT-X、RT-H)
人工智能·深度学习·机器人·transformer·具身智能
阿正的梦工坊11 分钟前
PyTorch中detach() 函数详解
人工智能·pytorch·python
讨厌编程但喜欢LLM的学院派17 分钟前
Pytorch中的CrossEntropyLoss
人工智能·pytorch·python
dwjf32121 分钟前
神经网络基础-神经网络搭建和参数计算
人工智能·深度学习·神经网络
封印师请假去地球钓鱼33 分钟前
AI大模型学习笔记|多目标算法梳理、举例
人工智能·算法
IT古董1 小时前
【机器学习】机器学习的基本分类-无监督学习-核密度估计(Kernel Density Estimation, KDE)
人工智能·学习·机器学习·分类
z千鑫2 小时前
【人工智能】通过ChatGPT、Claude与通义千问 API 实现智能语料知识图谱的自动化构建(详细教程)
人工智能·chatgpt·知识图谱
封印师请假去地球钓鱼2 小时前
AI大模型学习笔记|神经网络与注意力机制(逐行解读)
人工智能·深度学习·神经网络
知来者逆2 小时前
MSciNLI—— 针对科学自然语言推理任务提出的多样化数据集用于训练语言模型和大规模语言模型建立基线
人工智能·深度学习·机器学习·语言模型·自然语言处理·大语言模型
cnbestec2 小时前
GelSight Mobile™ 4.0软件发布:新增自动化图像拼接与2D测量功能
人工智能·科技·机器人·自动化·视觉检测