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.mzph.cn/news/889633.shtml

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

相关文章

ElasticSearch - 使用 Composite Aggregation 实现桶的分页查询

文章目录 官方文档概述Composite Aggregation 概述示例:基本分页查询分页:获取下一页结果使用场景注意事项 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html#_pagin…

基于Python+Sqlite3实现的搜索和推荐系统

基于Python实现的搜索和推荐系统 一、引言 伴随着科技的不断进步,互联网,万维网的不断发展。我们越来越热爱万维网,也欣赏他的发展方式。20世纪90年代初,万维网还只是一个将文档联系起来的简单网络。如今,他已经成为…

Oracle:VARCHAR2(100)与VARCHAR2(100 CHAR)的差异导致的报错

目录 >> 问题背景:>> 阴差阳错:>> 问题出现:>> 问题排查:>> 知识点:>> 问题复盘:>> 问题拓展: >> 问题背景: Oracle下&#xff1…

右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统

一、项目名称 山西右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统 二、项目背景: 山西右玉光伏发电项目位于右玉县境内,总装机容量为200MW,即太阳能电池阵列共由200个1MW多晶硅电池阵列子方阵组成,每个子方阵包含太阳能…

最短路----Dijkstra算法详解

简介 迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉…

从零开始学docker(五)-可用的docker镜像

最近docker镜像都不能访问,目前亲测可用的docker镜像可用,并拉取mysql测试完成。 [缺点] docker search 查不到镜像的索引列表,只能手动查询索引目录(解决方案在最后)。 linux服务器vim打开镜像文件daemon.json vim /e…

安卓获取所有可用摄像头并指定预览

在Android设备中,做预览拍照的需求的时候,我们会指定 CameraSelector DEFAULT_FRONT_CAMERA前置 或者后置CameraSelector DEFAULT_BACK_CAMERA 如果你使用的是平板或者工业平板,那么就会遇到多摄像头以及外置摄像头问题,简单的指…

【报错记录】Ubuntu22.04解决开机卡在 /dev/sda5 : clean , *files , *blocks

一个愿意伫立在巨人肩膀上的农民...... 一、错误现象 本人的电脑安装Windows10和Ubuntu22.04双系统,一次训练中电脑死机无法开机,重启之后便出现如下错误,在网上寻找过很多方法均无效,在root下禁用了samba服务,也无济…

利用代理IP爬取Zillow房产数据用于数据分析

引言 最近数据分析的热度在编程社区不断攀升,有很多小伙伴都开始学习或从事数据采集相关的工作。然而,网站数据已经成为网站的核心资产,许多网站都会设置一系列很复杂的防范措施,阻止外部人员随意采集其数据。为了解决这个问题&a…

Kafka系列教程 - Kafka 生产者 -2

1. 生产者简介 不管是把 Kafka 作为消息队列系统、还是数据存储平台,总是需要一个可以向 Kafka 写入数据的生产者和一个可以从 Kafka 读取数据的消费者,或者是一个兼具两种角色的应用程序。 使用 Kafka 的场景很多,诉求也各有不同&#xff…

语音芯片赋能可穿戴设备:开启个性化音频新体验

在科技日新月异的今天,语音芯片与可穿戴设备的携手合作,正引领我们步入一个前所未有的个性化音频时代。这一创新融合,用户可以享受到更加个性化、沉浸式的音频体验。下面将详细介绍语音芯片与可穿戴设备合作的优点和具体应用。 1. 定制化音效…

1. Flink自定义Source

一. Source 简介 DataStream是Flink的低级API,用于进行数据的实时处理,Flink编程模型分为Source、Transformation、Sink三个部分,如下图所示。 默认Flink提供了大量的内置Source,常见的Source如下: 基于文件的Sour…

Yolov8界面可视化

本教程使用的是Pyside6 1、安装PySide6模块 pip install pyside6 安装完成之后,会有一个designer.exe可执行文件,打开之后,我们可以通过拖拉拽的方式来布局我们的界面。 designer.exe文件位置,一般位于当前虚拟环境下面的路径…

谷粒商城—分布式高级①.md

1. ELASTICSEARCH 1、安装elastic search dokcer中安装elastic search (1)下载ealastic search和kibana docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2(2)配置 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "h…

系统性能优化

一、概述 性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、cpu、内存、磁盘IO、网络、流量、JVM、Tomcat、DB等方面的性能指标。 性能优化需要有一些技巧:对于整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发…

基于STM32设计的粮食仓库(粮仓)环境监测系统

一、前言 当前项目使用的相关软件工具、传感器源代码工程已经上传到网盘(实时更新项目内容):https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?fromfrom_copylink 1.1 项目开发背景 随着现代农业的发展和粮食储存规模的…

基于STM32的智能导盲/智能拐杖系统

基于STM32的智能导盲/智能拐杖系统 持续更新,欢迎关注!!! ** 基于STM32的智能导盲/智能拐杖系统 ** 据统计,全球视障人士的数量已经超过2.5亿,其中大部分人需要一种有效的辅助器具来帮助他们感知周围环境,安全行走。 近年来&am…

关于idea-Java-servlet-Tomcat-Web开发中出现404NOT FOUND问题的解决

在做web项目时,第一次使用servlet开发链接前端和后端的操作,果不其然,遇到了诸多问题,而遇到最多的就是运行项目打开页面时出现404NOT FOUND的情况。因为这个问题我也是鼓捣了好久,上网查了许多资料才最终解决&#xf…

【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现链栈的基本运算。 相关知识 为了完成本关任务,你需要掌握: 初始化栈、销毁栈、判断栈是否为空、进栈、出栈、取栈…

与 Cursor AI 对话编程:2小时开发报修维修微信小程序

本文记录了如何通过与 Cursor AI 对话,全程不写一行代码的情况下,完成一个完整的报修小程序。整个过程展示了 AI 如何帮助我们: 生成代码 、解决问题、优化实现、完善细节。 先看一下效果图: 一、项目配置 首先我是这样和 AI 对…