当前位置: 首页 > news >正文

[AI]browser-use + web-ui 大模型实现自动操作浏览器

[AI]browser-use + web-ui 大模型实现自动操作浏览器

介绍

官方地址:https://github.com/browser-use/web-ui

  • browser-use主要作用是将 AI Agent 与浏览器链接起来从而实现由 AI 驱动的浏览器自动化。
  • 今天会给大家介绍如何通过browser-use web-ui来搭建并操作browser-use。

browser-use web-ui功能点:

  1. 提供了全新的网页界面,简单好用,方便操作。
  2. 支持更多大语言模型,比如 Gemini、OpenAI、Azure 、国产大模型 DeepSeek、通义千问等。
  3. 支持用自己的浏览器,不用再反复登录,还能录屏。
  4. 定制了更智能的 Agent,通过优化后的提示让浏览器使用更高效。

browser-use与web-ui关系:

想象 Browser Use 是一个“网页翻译官”:当 AI 需要操作网页时(比如自动订票),传统方法是让 AI“看截图”找按钮,但截图就像一张复杂照片,AI 需要花时间辨认。

  • Browser Use 的解决方案是:把网页变成一份“元素清单”,比如“第 1 个是登录按钮,第 8 个是搜索框……”。AI 只需根据清单编号,快速找到对应位置并点击,就像按菜单点菜一样简单。
  • Web-UI 则是这个翻译官的“操作面板”:普通用户不用写代码,直接在网页上选择任务(如“帮我搜机票”),选好 AI 模型(比如 ChatGPT),点击运行就能看到浏览器自动执行所有步骤,还能录屏回放操作过程。

环境搭建

python版本必须在 3.11 以上。

  • 我这里主要演示Mac如何搭建,windows也是类似的操作。

1. 安装uv

# 官方推荐使用uv管理
brew install uv

在这里插入图片描述

2. 拉取项目安装依赖

# 从github拉取项目
git clone https://github.com/browser-use/web-ui.git
cd web-ui# 搭建该项目的python虚拟环境,这里python环境使用3.11
uv venv --python 3.11# 初始化虚拟环境配置
source .venv/bin/activate# 安装python依赖
uv pip install -r requirements.txt## 安装浏览器依赖,大家根据自己情况选择即可
# 仅安装Chrome依赖
playwright install --with-deps chromium
# 安装所有浏览器依赖
playwright install

3. 配置浏览器及大模型参数

这里也可以使用本地通过ollama配置的大模型,比如Deepseek r1-14b

  • Mac本地通过ollama部署大模型
# 拷贝示例配置文件
copy .env.example .env# 1. 配置浏览器位置:CHROME_PATH。这里以chrome为例
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"# 2. 配置浏览器用户数据
CHROME_USER_DATA="/Users/你自己的用户名/Library/Application Support/Google/Chrome"# 3. 配置大模型API参数【我这里使用Deepseek】
DEEPSEEK_ENDPOINT=https://api.deepseek.com
DEEPSEEK_API_KEY=xxxx# 这里也可以使用本地通过ollama配置的大模型
OLLAMA_ENDPOINT=http://localhost:11434

使用

# 运行项目
python webui.py --ip 127.0.0.1 --port 7788

在这里插入图片描述
配置模型类型:
在这里插入图片描述

1. 使用内置浏览器

  1. 配置浏览器参数:
    在这里插入图片描述

  2. 下发指令执行任务:

输入指令,然后点击运行

在这里插入图片描述

  1. 查看浏览器效果:

在主界面,上方的设置导航中选择 Agent Settings,如果你本地部署的大模型不支持视觉识别,可以把这个使用视觉【Use Vision】取消勾选,不然后续让 AI 执行任务时会报错。

  • 我这里支持,因此我勾选后,浏览器页面出现如下:

在这里插入图片描述

该项目原理就是将浏览器页面上所有的元素都标记下来(打上编号),然后把元素编号以及元素代表的含义,告诉AI,由AI来判断用户需求需要操作哪些元素,然后调用API去操作对应元素。

  1. 控制台成功输出结果:
    在这里插入图片描述

2. 使用本地浏览器

即:使用我们在.env配置的本地浏览器
注意:使用本地Chrome浏览器时,需要把自己本地Chrome浏览器关闭,由AI去打开。

  1. 打开本地浏览器开关
    在这里插入图片描述

  2. 比如我们这里输入自己的要求
    在这里插入图片描述

  3. 大模型已经识别到了我们的需求,并开始操作浏览器元素:
    在这里插入图片描述

  4. 最后页面效果:
    在这里插入图片描述

  5. 查看控制台日志,也正常拆解并完成了任务
    在这里插入图片描述
    在这里插入图片描述

可以看到效果还是挺不错的,只要模型好,这里可玩性还是挺高的。比如:针对页面操作实现自动化测试等

3. 深度搜索模式

提出需求,最后会根据我们的需求,输出一个文档,适合做旅游规划,周报日报等。

  • 会默认进行三次的深度查找,最后把查找到的结果输出一个md文档
  1. 这里让模型帮我们做一个旅游规划
    在这里插入图片描述

  2. 模型会查询网上内容
    在这里插入图片描述

  3. 最后会给我们一个可下载的Markdown文档
    在这里插入图片描述

Tips

1. 浏览器免登录

我们可以通过使用自己的浏览器,然后配置上对应的cookie信息,实现免登录

  1. 浏览器插件安装edit cookies(或其他cookie管理插件)
  2. 导出cookie信息
  3. web-ui.py文件中添加cookie信息
    在这里插入图片描述
  4. 重新运行项目,同时使用自己本地的浏览器,就可以看到我们浏览器访问某些页面时是登录状态了

2. 项目原理

  1. 根据用户输出,拆分任务(规划任务:完成这个任务需要哪几步)

在这里插入图片描述

  1. 将任务拆分为具体的动作,比如通过百度打开咪咕视频,浏览器需要在搜索栏输入百度网址,然后输入框输入咪咕视频,并点击搜索
    在这里插入图片描述

  2. 分析完后,操作页面元素,执行对应动作,搜索框输入文字,点击对应按钮等
    在这里插入图片描述

  3. for循环调用执行器,直到任务最终完成
    在这里插入图片描述

相关文章:

[AI]browser-use + web-ui 大模型实现自动操作浏览器

[AI]browser-use web-ui 大模型实现自动操作浏览器 介绍 官方地址:https://github.com/browser-use/web-ui browser-use主要作用是将 AI Agent 与浏览器链接起来从而实现由 AI 驱动的浏览器自动化。今天会给大家介绍如何通过browser-use web-ui来搭建并操作browse…...

使用LangChain连接远程Oracle数据库尝试LLM 提供的SQL智能助理

使用LangChain连接远程Oracle数据库尝试LLM 提供的SQL智能助理 为完成此次数据库连接实验,笔者用自己的笔记本电脑搭建了一台linux虚机,安装了oracle 23C,并借助deepseek创建了若干与电商业务有关的表并插入了一些记录。 接着在windows实体…...

训练神经网络的批量标准化(使用 PyTorch)

构建神经网络是一门艺术,而非一个结果固定的过程。你无法预知最终能否得到有效的模型,而且有很多因素可能导致你的机器学习项目失败。 然而,随着时间的推移,您还将学会一套特定的笔触,这将大大提高您成功的几率。 在…...

阿里Qwen3 8款模型全面开源,免费商用,成本仅为 DeepSeek-R1 的三分之一

想要掌握如何将大模型的力量发挥到极致吗?叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其…...

Vue常用的修饰符有哪些有什么应用场景(含deep seek讲解)

Vue.js 事件修饰符的功能与具体应用场景 一、事件修饰符 .stop .stop 的主要作用是 阻止事件冒泡&#xff0c;防止事件从子元素传播到父元素。这在处理嵌套组件或多层 DOM 结构时非常有用。 <div click"parentClick">Parent<button click.stop"chi…...

案例分享|20倍提效!水力设备电磁仿真的云端实战

在现代水力设备制造领域&#xff0c;电磁仿真是贯穿设计、研发到故障诊断的核心技术之一。而随着"双碳"目标驱动下清洁能源设备的迭代加速&#xff0c;水轮机、水泵等设备研发的多物理场耦合特性对仿真精度提出前所未有的挑战。传统仿真工具在处理复杂多物理场耦合等…...

ShenNiusModularity项目源码学习(25:ShenNius.Admin.Mvc项目分析-10)

本文学习并分析ShenNiusModularity项目中的留言管理页面、回收站页面。 1、留言管理页面 留言管理页面用于检索、删除系统中的留言数据&#xff0c;该页面对应的文件Index.cshtml位于ShenNius.Admin.Mvc项目的Areas\Cms\Views\Message内。页面使用的控制器类MessageController…...

github使用记录

1. 首次上传本地项目到 GitHub 1.1 准备 GitHub 仓库 登录 GitHub&#xff0c;点击右上角 → New repository输入仓库名称&#xff08;建议与本地目录同名&#xff09;选择公开&#xff08;Public&#xff09;或私有&#xff08;Private&#xff09;不要勾选 "Initiali…...

NFS-网络文件系统

NFS介绍 NFS &#xff08; Network File System &#xff09; 即网络文件系统 &#xff0c;它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件&#xff0c;就像访问本地文件一样NFS的好…...

Andorid车机UI适配,AndroidUI图px的单位,如何适配1920x720,PPI100的屏幕设备

在 Android 开发中&#xff0c;针对 1920720 分辨率、PPI 100 的屏幕设备进行 UI 适配&#xff0c;需要综合考虑 像素密度&#xff08;PPI&#xff09;、屏幕尺寸 和 Android 的密度无关像素&#xff08;dp&#xff09; 体系。以下是完整的适配方案&#xff1a; &#x1f4cc; …...

4.2.4 MYSQL的缓存策略

文章目录 4.2.4 MYSQL的缓存策略1. MYSQL缓存方案用来干什么 2. 缓存相关知识1. mysql主从复制2. 为什么需要缓冲层3. 还有哪些类型数据库 3. 那些方式会提升MYSQL读写性能1. mysql读写分离2. 连接池3. 异步连接 4. 缓存方案是怎么解决的1. redis和MYSQL一致性状态分析1. 流程&…...

省科学技术奖申报答辩PPT设计制作美化

自然科学奖、技术发明奖和科技进步奖是科学技术奖励体系中的三大核心奖项 省科学技术奖的含金量极高&#xff0c;主要体现在经济激励、社会认可、创新驱动及资源整合等方面。其价值不仅在于奖金和荣誉&#xff0c;更在于对科研生态的长远影响&#xff0c;国家科学技术奖的敲门…...

基于 ARM 的自动跟拍云台设计

标题:基于 ARM 的自动跟拍云台设计 内容:1.摘要 摘要&#xff1a;随着摄影和监控需求的不断增长&#xff0c;自动跟拍云台的应用越来越广泛。本设计的目的是开发一款基于 ARM 的自动跟拍云台&#xff0c;以实现对目标的精准跟拍。采用 ARM 微控制器作为核心控制单元&#xff0…...

Linux电源管理(3)_关机和重启的过程

原文&#xff1a;Linux电源管理&#xff08;3&#xff09;_Generic PM之重新启动过程 1.前言 在使用计算机的过程中&#xff0c;关机和重启是最先学会的两个操作。同样&#xff0c;这两个操作在Linux中也存在&#xff0c;可以关机和重启。这就是这里要描述的对象。在Linux Ke…...

SQLMesh增量模型实战指南:时间范围分区

引言 在数据工程领域&#xff0c;处理大规模数据集和高频率数据更新是一项挑战。SQLMesh作为一款强大的数据编排工具&#xff0c;提供了增量模型功能&#xff0c;帮助数据工程师高效地管理和更新数据。本文将详细介绍如何使用SQLMesh创建和管理基于时间范围的增量模型&#xf…...

LeetCode -160.相交链表

题目 160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 解法一 哈希表 哈希表解决方案的思路 这个使用哈希表&#xff08;unordered_set&#xff09;的解决方案基于一个简单的观察&#xff1a;如果两个链表相交&#xff0c;那么相交点及之后的所有节点都是两个链表共…...

针对Linux挂载NAS供Minio使用及数据恢复的需求

针对Linux挂载NAS供Minio使用及数据恢复的需求&#xff0c;设计以下分阶段解决方案&#xff1a; 一、存储架构设计 存储拓扑 [Minio Server] --> [NAS挂载点 (/mnt/nas/minio-data)] --> [企业级NAS设备]│└─[备份服务器/存储] (可选异地备份)组件版本要求 Minio版本&a…...

【大厂实战】API网关进化史:从统一入口到智能AB分流,如何构建灰度无感知系统?

【大厂实战】API网关进化史&#xff1a;从统一入口到智能AB分流&#xff0c;如何构建灰度无感知系统&#xff1f; 1. 为什么API网关是AB面架构的天然起点&#xff1f; 在分布式微服务架构中&#xff0c;API网关&#xff08;API Gateway&#xff09;承担着重要职责&#xff1a…...

开放平台架构方案- GraphQL 详细解释

GraphQL 详细解释 GraphQL 是一种用于 API 的查询语言&#xff0c;由 Facebook 开发并开源&#xff0c;旨在提供一种更高效、灵活且强大的数据获取和操作方式。它与传统的 REST API 有显著不同&#xff0c;通过类型系统和灵活的查询能力&#xff0c;解决了 REST 中常见的过度获…...

使用 TypeScript 开发并发布一个 npm 包(完整指南)

本教程将一步步教你从零开发、打包并发布一个 TypeScript 工具库到 npm。以日期时间格式化工具为例&#xff0c;涵盖项目初始化、Vite 打包、类型声明输出、npm 配置、实际发布等完整流程&#xff0c;适合开发者直接套用。 文章目录 &#x1f4c1; 项目结构预览&#x1f9f1; 初…...

在Anolis OS 8上部署Elasticsearch 7.16.1与JDK 11的完整指南

目录 1. 环境与版本选择 1.1 操作系统选择:Anolis OS 8 1.2 版本匹配说明 1.3 前置条件检查 2. JDK 11安装与配置 2.1 安装流程 2.2 配置详解 3. Elasticsearch 7.16.1安装与优化 3.1 基础安装 3.2 目录规划与权限 3.3 核心配置文件详解 3.4 JVM调优 4. 用户权限管…...

SELinux 从理论到实践:深入解析与实战指南

文章目录 引言&#xff1a;为什么需要 SELinux&#xff1f;第一部分&#xff1a;SELinux 核心理论1.1 SELinux 的三大核心模型1.2 安全上下文&#xff08;Security Context&#xff09;1.3 策略语言与模块化 第二部分&#xff1a;实战操作指南2.1 SELinux 状态管理2.2 文件上下…...

巧用 `unittest.mock` 模块实现依赖服务隔离测试

巧用 unittest.mock 模块实现依赖服务隔离测试 引言 在软件开发过程中,单元测试是保障代码质量的核心手段。然而,许多代码依赖于外部服务,如数据库、API 或文件系统,直接进行测试可能会导致: 环境不可控:测试数据可能变化,影响测试结果的稳定性。执行时间长:依赖外部…...

水利三维可视化平台怎么做?快速上手的3步指南

分享大纲&#xff1a; 1、了解水利三维可视化平台 2、选择合适的开发平台 3、快速搭建水利三维可视化平台 第一步&#xff1a;了解水利三维可视化平台 水利三维可视化平台是利用大数据、物联网、数字孪生等技术&#xff0c;将物理实体数字化建模&#xff0c;并通过三维可视化技…...

【DB2】逻辑导出导入注意事项

DB2异构操作系统之间迁移需选择逻辑备份恢复 导出环节 1、设置字符集&#xff0c;源端创建导出目录&#xff0c;并导出数据库DDL db2set db2codepage1208 db2stop force db2start db2look -d YS-e -l -o -createdb db2look_YS.sql导出文件:db2look_YS.sql –详细参数请参考…...

Fiddler抓取APP端,HTTPS报错全解析及解决方案(一篇解决常见问题)

环境&#xff1a;雷电模拟器Android9系统 ​ 你所遇到的fiddler中抓取HTTPS的问题可以分为三类&#xff1a;一类是你自己证书安装上逻辑错误&#xff0c;另一种是APP中使用了“证书固定”的手段。三类fiddler中生成证书时的参数过程。 1.Fiddler证书安装上的逻辑错误 更新Opt…...

C语言教程(二十三):C 语言强制类型转换详解

一、强制类型转换的概念 强制类型转换是指在程序中手动将一个数据类型的值转换为另一种数据类型。在某些情况下&#xff0c;编译器可能不会自动进行类型转换&#xff0c;或者自动转换的结果不符合我们的预期&#xff0c;这时就需要使用强制类型转换来明确指定要进行的类型转换。…...

阿里云服务器 篇十二:加入 Project Honey Pot 和使用 http:BL

文章目录 系列文章背景前提条件注册和准备注册安装蜜罐捐赠MX记录(可选)添加 QuickLinks(快速链接)使用 http:BL(HTTP黑名单)获取Access Key(访问秘钥)Apache自动拦截黑名单IP模块Http:BL API文档更多实现案例监控IP空间系列文章 阿里云服务器 篇一:申请和初始化 阿里…...

Android 手动删除 AAR jar 包 中的文件

Duplicate class com.xxxa.naviauto.sdk.listener.OnChangeListener found in modules jetified-xxxa-sdk-v1.1.2-release-runtime (:xxx-sdk-v1.1.2-release:) and jetified-xxxb-sdk-1.1.3-runtime (:xxxb-sdk-1.1.3:) A.aar B.aar 有类冲突; 使用 exclude 排除本地aar无效…...

Tomcat 部署配置指南

## 1. 环境要求 - JDK 8 或更高版本 - Tomcat 8.5/9.x/10.x - Windows 操作系统 ## 2. 安装步骤 ### 2.1 安装JDK 1. 下载并安装JDK 2. 配置环境变量&#xff1a; - JAVA_HOME: JDK安装目录 - Path: 添加 %JAVA_HOME%\bin 3. 验证安装&#xff1a;打开命令提示符&#…...

阿里千问Qwen3技术解析与部署指南 :混合推理架构突破性优势与对DeepSeek R1的全面超越

阿里千问Qwen3技术解析&#xff1a;突破性优势与对DeepSeek R1的全面超越 在2025年4月29日&#xff0c;阿里巴巴发布了新一代开源大模型Qwen3&#xff08;通义千问3&#xff09;&#xff0c;凭借其创新架构与显著性能提升&#xff0c;迅速成为全球开源AI领域的焦点。本文将从技…...

宾馆一次性拖鞋很重要,扬州卓韵酒店用品详细介绍其材质与卫生标准

宾馆一次性拖鞋在旅途中很重要。它的卫生情况受大家关注。它的舒适度也受大家关注。扬州卓韵酒店用品在这方面经验丰富。其产品质量优良。下面为你详细介绍宾馆一次性拖鞋。 材质选择目前宾馆一次性拖鞋材质多样。常见的有布质、纸质和塑料的。布质拖鞋相对环保舒适。能给脚部…...

推荐系统中 Label 回收机制之【时间窗口设计】

目录 引言一、业务需求&#xff1a;目标导向的窗口设计1.1 用户行为周期决定窗口基础1.2 业务目标驱动窗口粒度1.3 动态场景下的弹性调整 二、数据特性&#xff1a;窗口设计的底层约束2.1 数据分布与稀疏性适配2.2 数据延迟与完整性保障2.3 特征时效性分层 三、算法模型&#x…...

DevExpressWinForms-XtraMessageBox-使用教程

XtraMessageBox-使用教程 一、基础使用&#xff1a;快速弹出标准消息框 XtraMessageBox 的基础使用非常简单&#xff0c;只需调用XtraMessageBox.Show方法即可弹出一个标准的消息框。根据不同的使用需求&#xff0c;Show方法有多种重载形式。 1.1 仅显示提示信息 当我们仅仅…...

ETL数据集成与数据资产的紧密关联,解锁数据价值新密码

数据已然成为企业最为珍贵的资产之一。无论是传统行业巨头&#xff0c;还是新兴的互联网企业&#xff0c;都在积极挖掘数据背后所蕴含的巨大商业价值。而在这个过程中&#xff0c;ETL&#xff08;Extract&#xff0c;Transform&#xff0c;Load&#xff09;作为数据处理的关键环…...

【无报错,亲测有效】如何在Windows和Linux系统中查看MySQL版本

如何在Windows和Linux系统中查看MySQL版本 MySQL作为最流行的开源关系型数据库管理系统之一&#xff0c;了解如何查看其版本信息对于开发者和数据库管理员来说是常用的一个基本操作。本文将详细介绍在Windows和Linux系统中查看MySQL版本的方法。 文章目录 如何在Windows和Linu…...

【Leetcode 每日一题】2962. 统计最大元素出现至少 K 次的子数组

问题背景 给你一个整数数组 n u m s nums nums 和一个 正整数 k k k。 请你统计有多少满足 「 n u m s nums nums 中的 最大 元素」至少出现 k k k 次的子数组&#xff0c;并返回满足这一条件的子数组的数目。 子数组是数组中的一个连续元素序列。 数据约束 1 ≤ n u m s …...

网络爬取需谨慎:警惕迷宫陷阱

一、技术背景:网络爬虫与数据保护的博弈升级 1. 问题根源:AI训练数据爬取的无序性 数据需求爆炸:GPT-4、Gemini等大模型依赖数万亿网页数据训练,但大量爬虫无视网站的robots.txt协议(非法律强制),未经许可抓取内容(如新闻、学术论文、代码),引发版权争议(如OpenAI被…...

‘WebDriver‘ object has no attribute ‘find_element_by_class‘

在使用Selenium进行Web自动化测试时&#xff0c;如果你遇到了错误信息&#xff1a;“‘WebDriver’ object has no attribute ‘find_element_by_class’”&#xff0c;这通常是因为在Selenium 4及以上版本中&#xff0c;find_element_by_* 和 find_elements_by_* 这类方法已经…...

ComfyUI 学习笔记,案例1:2_pass_txt2img

背景 ComfyUI 官方案例学习笔记&#xff0c;本文是跑出的第三个案例&#xff0c;但确是官网案例的第一个&#xff0c;所以运行起来总体比较顺利。整理几点页面使用技巧&#xff1a; 是网页版本&#xff0c;没有 IDEA&#xff0c;而且画布上没有滚动条&#xff0c;想看清楚内容…...

代码颜色模式python

1. CMYK&#xff08;印刷场景&#xff09; 例子&#xff1a;某出版社设计书籍封面时&#xff0c;使用 Adobe Illustrator 绘制图案。 红色封面的 CMYK 值可能为&#xff1a;C0, M100, Y100, K0&#xff08;通过洋红和黄色油墨混合呈现红色&#xff09;。印刷前需将设计文件转…...

Android第五次面试总结之网络篇(修)

一、域名解析到服务器的过程&#xff08;DNS 解析流程&#xff09; 当应用发起网络请求&#xff08;如https://www.example.com&#xff09;时&#xff0c;操作系统需先将域名转换为服务器 IP 地址&#xff0c;这一过程通过 DNS&#xff08;域名系统&#xff09; 完成&#xf…...

JavaScript 作用域全面总结

JavaScript 作用域全面总结 作用域(Scope)是JavaScript中一个核心概念&#xff0c;决定了变量、函数和对象的可访问性。以下是JavaScript作用域的全面总结&#xff0c;结合表格和箭头图进行讲解。 一、作用域类型 JavaScript 作用域类型详解 JavaScript 中有四种主要的作用…...

Redis核心与底层实现场景题深度解析

Redis核心与底层实现场景题深度解析 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于Redis的核心与底层实现相关的场景题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&#xff1a;马架构&#xff0c;欢迎来到我们公司的面试现场。…...

代发考试战报:4月份 思科认证,华为认证,考试战报分享

CCNP 300-410考试通过战报&#xff0c;350-401 考试通过战报&#xff0c;CCNA 200-301 考试通过战报&#xff0c;HCIP数通 H12-821考试通过&#xff0c;H12-831考试通过&#xff0c;HCSP 行业金融 H19-611考试通过&#xff0c;HCSE 行业金融 H21-293 考试通过 报名考试一定要找…...

Linux 内核中 TCP 协议的支撑解析

在 Linux 网络协议栈中,TCP(传输控制协议)作为面向连接的可靠传输协议,其实现依赖于一系列复杂的内核机制。本文通过分析四个关键函数(cookie_v4_init_sequence、tcp_fastopen_ctx_destroy、sk_forced_mem_schedule 和 sk_stream_alloc_skb),探讨它们如何共同保障 TCP 的…...

std::string的底层实现 (详解)

目录 std::string的底层实现* 写时复制原理探究 CowString代码初步实现 短字符串优化&#xff08;SSO&#xff09; 最佳策略 std::string的底层实现* 我们都知道&#xff0c; std::string的一些基本功能和用法了&#xff0c;但它底层到底是如何实现的呢? 其实在std::stri…...

蓝桥杯 11. 最大距离

最大距离 原题目链接 题目描述 在数列 a1, a2, ⋯, an 中&#xff0c;定义两个元素 ai 和 aj 的距离为&#xff1a; |i - j| |ai - aj|即元素下标的距离加上元素值的差的绝对值&#xff0c;其中 |x| 表示 x 的绝对值。 给定一个数列&#xff0c;请找出元素之间最大的元素…...

【运维】使用 DataX 实现 MySQL 到 PostgreSQL 的数据同步

🚀 使用 DataX 实现 MySQL 到 PostgreSQL 的数据同步 在日常的数据开发工作中,数据同步是一项极其常见的任务。而 DataX 作为阿里开源的一款通用数据同步工具,支持多种数据源之间的互通,使用简单,扩展性强,非常适合进行结构化数据的迁移和同步。 本文将详细介绍如何通…...

Mangodb基本概念和介绍,Mango三个重要的概念:数据库,集合,文档

MongoDB基本概念和介绍 MongoDB 是一个开源的、基于分布式文件存储的NoSQL数据库&#xff0c;由 C 编写。 它的主要特点是&#xff1a; 使用**面向文档&#xff08;Document-Oriented&#xff09;**的存储方式&#xff0c;不是传统的表格行列模式。存储的数据格式是BSON&…...