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...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490370.html

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

相关文章

C# 与PLC数据交互

点击跳转下载地址 点击跳转胡工科技官网

Python中实现YOLO目标检测

文章目录 Python中实现YOLO目标检测一、引言二、环境准备1、安装依赖 2、下载预训练模型三、目标检测1、图像检测2、视频检测 四、使用示例1、轨迹追踪 五、总结 Python中实现YOLO目标检测 一、引言 YOLO(You Only Look Once)是一种流行的实时目标检测…

Android实现RecyclerView边缘渐变效果

Android实现RecyclerView边缘渐变效果 1.前言: 是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果,可以使RecyclerView的边缘在滚动时逐渐淡出或淡入,以提升用户体验。 2.Recyclerview属性: 2.1、requiresFading…

汽车免拆诊断案例 | 2014款保时捷卡宴车发动机偶尔无法起动

故障现象 一辆2014款保时捷卡宴车,搭载3.0T 发动机,累计行驶里程约为18万km。车主反映,发动机偶尔无法起动。 故障诊断 接车后试车,发动机起动及运转均正常。用故障检测仪检测,发动机控制单元(DME&#x…

Hadoop生态圈框架部署(十一)- Sqoop安装与配置

文章目录 前言一、Sqoop安装与配置(手动安装配置)1. 下载Sqoop安装包并上传到Linux1.1 下载1.2 上传 2. 解压Sqoop安装包2.1 解压2.2 重命名 3. 配置Sqoop3.1 修改 sqoop-env.sh 配置文件3.2 配置jar包3.2.1 配置MySQL驱动jar包3.2.2 配置commons-lang-2…

Jenkins与SonarQube持续集成搭建及坑位详解

Jenkins和SonarQube都是软件开发过程中常用的工具,它们在代码管理、构建、测试和质量管理方面发挥着重要作用。以下是关于Jenkins与SonarQube的作用及整合步骤环境搭建的详细解释: 一、Jenkins与SonarQube的作用 Jenkins: Jenkins是一个开源的持续集成和交付工具,它可以帮…

Linux驱动开发(13):输入子系统–按键输入实验

计算机的输入设备繁多,有按键、鼠标、键盘、触摸屏、游戏手柄等等,Linux内核为了能够将所有的输入设备进行统一的管理, 设计了输入子系统。为上层应用提供了统一的抽象层,各个输入设备的驱动程序只需上报产生的输入事件即可。 下…

关于Postgresql旧版本安装

抛出问题 局点项目现场,要求对如下三类资产做安全加固,需要在公司侧搭建测试验证环境,故有此篇。 bclinux 8.2 tomcat-8.5.59 postgrel -11 随着PG迭代,老旧版本仅提供有限维护。如果想安装老版本可能就要费劲儿一些。现在&…

继电器控制与C++编程:实现安全开关控制的技术分享

在现代生活中,继电器作为一种重要的电气控制元件,在电气设备的安全控制中起到了至关重要的作用。通过低电流控制高电流,继电器能够有效地隔离控制电路与被控设备,从而保障使用者的安全。本项目将介绍如何通过树莓派Pico与继电器模块结合,使用C++编程实现继电器的控制。 一…

时序论文31|NIPS24自注意力机制真的对时序预测任务有效吗?

论文标题:Are Self-Attentions Effective for Time Series Forecasting? 论文链接:https://arxiv.org/pdf/2409.18696 代码链接:https://github.com/dongbeank/CATS 前言 本文将重点转向探究自注意力机制在其中的有效性,提出…

ip_done

文章目录 路由结论 IP分片 数据链路层重谈Mac地址MAC帧报头局域网的通信原理MSS,以及MAC帧对上层的影响ARP协议 1.公司是不是这样呢? 类似的要给运营商交钱,构建公司的子网,具有公司级别的入口路由器 2.为什么要这样呢?? IP地…

计算机网络错题

文章目录 码分复用透明传输差错检测停止-等待协议回退N帧协议CSMA/CD协议以太网交换机Vlanip地址的无分类编制方法ip地址的应用规划ip数据包的发送和转发过程路由信息协议IPI2016201720202022 2.5信道 码分复用 透明传输 差错检测 停止-等待协议 回退N帧协议 CSMA/CD协议 以太网…

2024 年 9 月区块链游戏研报:行业回暖,Telegram 游戏引发热潮

作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics Games Research Page 9 月份,区块链游戏代币的市场总值增长了 29.2%,达到 232 亿美元,日活跃用户(DAU)数量上升了 1…

Https身份鉴权(小迪网络安全笔记~

附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 5.2 Https&身份鉴权 引子:上一篇主要对Http数据包结构、内容做了介绍,本篇则聊聊Https、身份鉴权等技术。 …

ORACLE逗号分隔的字符串字段,关联表查询

使用场景如下: oracle12 以前的写法: selectt.pro_ids,wm_concat(t1.name) pro_names from info t,product t1 where instr(,||t.pro_ids|| ,,,|| t1.id|| ,) > 0 group by pro_ids oracle12 以后的写法: selectt.pro_ids,listagg(DIS…

MySQL八股文

MySQL 自己学习过程中的MySQL八股笔记。 主要来源于 小林coding 牛客MySQL面试八股文背诵版 以及b站和其他的网上资料。 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL&…

使用echarts实现3d柱状图+折线图

以下代码有问题请直接问国内直连GPT/Claude HTML 需要注意threeDchart一定要设置宽度高度&#xff0c;不然图不显示,然后echarts版本不要太低&#xff0c;不然也不显示 <div id"threeDchart" class"threeDchart"></div>js set3DBarChart2(dat…

基地址和偏移地址的理解

在之前的一篇博客介绍了怎么找阳光地址&#xff1a;CE和Ollydbg简单介绍&#xff0c;但是那个地址在重启游戏后会变化&#xff0c;这次会讲解为什么这个阳光的地址会变化&#xff0c;以及对于变化的地址怎么处理。 推荐博客&#xff1a;CE找基址原理 1.阳光的地址为什么会变化…

C语言:详解指针最终篇(3)

一.字符指针变量 在指针的类型中我们知道有一种指针类型为字符指针char*。一般我们这样使用&#xff1a; 我们来看另一种使用方式&#xff1a; 这个常量字符串就相当于它本身首字符的地址&#xff0c;收地址加上方括号下标就可以访问该表达式中对应下标的元素。可以把该表达式…

【深度学习】 零基础介绍卷积神经网络(CNN)

零基础介绍 卷积神经网络&#xff08;CNN&#xff0c;Convolutional Neural Network&#xff09;是深度学习中的一种神经网络&#xff0c;特别擅长处理图像和视频等有空间结构的数据。 假设我们在做一个“照片分类”的任务&#xff0c;比如判断一张照片中是猫还是狗。下面用一…