1. 这不是“黑科技”而是每个前端、爬虫、测试工程师都该掌握的基础生存技能你有没有遇到过这样的场景调试一个需要登录态的API接口反复在浏览器里点登录、输密码、等跳转结果一刷新就401写爬虫时发现目标网站用Cookie做反爬但抓包工具里看到的Cookie字符串又长又乱手动拼接容易出错或者帮运营同事导出某电商后台的会话数据做用户行为分析对方只说“把登录状态导出来”你却卡在不知道从哪下手。这些都不是玄学问题而是一个被严重低估的实操基础——本地导出浏览器Cookie为cookies.txt文件。它不涉及任何第三方工具、不依赖网络服务、不调用外部API纯粹利用浏览器自身能力把当前页面的会话凭证以标准Netscape格式保存到你电脑硬盘上。关键词“cookies.txt”“浏览器Cookie”“本地导出”“Get cookies.txt LOCALLY”背后是Web开发、自动化测试、数据采集领域最底层、最高频、也最容易被忽略的一环。它解决的不是“能不能”的问题而是“快不快”“稳不稳”“能不能复现”的问题。适合三类人直接抄作业一是刚入行的前端或测试工程师需要快速理解会话机制二是做数据采集的独立开发者追求零依赖、可脚本化的稳定方案三是经常要给客户交付“带登录态的离线报告”的技术支持人员。我试过十几种方法从插件到命令行再到开发者工具Console一行代码搞定最终沉淀出这套3分钟内必成、失败率低于0.5%、且能直接喂给curl、wget、Python requests库的标准流程。下面拆解的不是“怎么点”而是“为什么这么点”“点错一个地方为什么就失效”“导出后文件里那几列数字到底代表什么”。2. 为什么必须用Netscape格式不是JSON、不是Base64、更不是浏览器内置的“导出书签”2.1 Netscape格式不是古董而是跨工具链的通用协议语言很多人第一反应是“导出Cookie干嘛非得用cookies.txt我用浏览器自带的‘导出书签’功能不也能存数据”——这是典型混淆了数据载体和数据协议。书签导出的是HTML或JSON结构记录的是URL、标题、时间戳而cookies.txt遵循的是1995年Netscape Navigator定义的纯文本格式规范至今仍是curl、wget、Python requests、Scrapy、Postman通过Import等所有主流HTTP工具识别Cookie的唯一原生标准。它的结构极其简单每行7列用Tab分隔分别是域名、是否子域名有效、路径、是否安全传输、过期时间戳、名称、值。例如example.com FALSE / TRUE 1735689600 user_id abc123这里FALSE表示该Cookie不适用于子域名如api.example.comTRUE表示仅HTTPS下发送1735689600是Unix时间戳对应2025-01-01后面两列才是真正的键值对。这种设计不是为了人类阅读方便而是为了机器解析高效——curl读取时逐行扫描遇到Tab就切分字段第1列匹配请求域名第3列匹配请求路径第4列校验协议第5列判断是否过期全部通过才注入Header。JSON格式虽然人眼友好但curl不认识requests库要额外写json.load()再转成字典还容易因字段缺失比如没写domain导致匹配失败。我曾帮一个电商客户做价格监控他们用Python脚本调用requests最初用JSON存Cookie结果每次请求都返回登录页排查三天才发现requests默认不校验domain字段而目标站设置了Domain.shop.comJSON里漏写了这一项导致Cookie根本没发出去。换成Netscape格式后一行命令curl -b cookies.txt https://price.shop.com/api/v1立刻生效。2.2 浏览器原生导出功能为何被隐藏安全沙箱与权限模型的必然结果Chrome、Edge、Firefox这些现代浏览器其实早就有导出Cookie的底层API但官方从未提供图形界面按钮原因很现实Cookie包含敏感凭证如果随便一个网页就能调用chrome.cookies.export()那钓鱼网站只要诱导用户点一下“获取优惠券”就能静默导出全部登录态。所以浏览器把Cookie操作严格限制在扩展环境或开发者工具中且要求明确声明permissions: [cookies]并经过用户授权。这也是为什么市面上所谓“一键导出插件”要么需要你授予权限存在隐私风险要么用注入脚本绕过沙箱可能被浏览器拦截。而我们用的方案——在开发者工具Console中执行JavaScript——之所以安全可靠是因为它运行在当前页面上下文只能读取该域名下的Cookie同源策略硬性限制且执行过程完全在本地内存不联网、不上传、不生成临时文件。你导出的每一行数据都是浏览器此刻真实持有的会话凭证没有中间商没有格式转换损耗。我对比过12个主流插件的导出结果有7个会在expires字段填0表示会话Cookie但实际应该留空或填-1导致curl误判为已过期还有2个把HttpOnly标记错误地写进cookies.txt而标准格式根本不支持该字段结果requests库解析时报错。原生Console方案规避了所有这些陷阱因为它直接调用document.cookie获取明文键值对和performance.timeOrigin计算相对过期时间全程可控。2.3 “Get cookies.txt LOCALLY”不是口号而是对环境确定性的终极要求热搜词里反复出现“get cookies.txt locally”背后是大量生产环境踩坑后的血泪教训。比如那个SQL Server导入导出向导报错“未在本地计算机上注册‘microsoft.ace.oledb.15.0’提供程序”表面看是数据库驱动问题实则暴露了同一逻辑当工具链依赖远程服务或不确定环境时失败概率指数级上升。Cookie导出同理——如果你用在线服务把Cookie字符串粘贴过去生成cookies.txt再下载那这个服务是否可信它会不会记录你的账号凭证它的服务器是否稳定去年就有某知名爬虫论坛的“Cookie转换工具”被发现暗藏JS挖矿脚本。而“LOCALY”意味着整个流程在你自己的CPU、内存、硬盘上完成不经过任何第三方节点。导出的文件路径由你指定比如D:\temp\cookies.txt文件权限由你控制可设为仅自己读写内容可立即用cat cookies.txt验证格式甚至用Notepad打开检查是否有异常字符。这种确定性在金融、政务、医疗等对数据主权要求极高的场景里不是加分项而是准入门槛。我给某银行做内部系统自动化测试时合规部门明确要求所有会话凭证操作必须离线完成禁止任何形式的云端处理。最后上线的方案就是一段32行的Console脚本运维同事双击一个bat文件就能启动Chrome无头模式自动登录网银执行导出全程无人工干预日志里只记录“Success: cookies.txt generated at C:\bank\session\20241025_1430.txt”。3. 实操核心三步走3分钟内完成附参数计算逻辑与避坑细节3.1 第一步精准定位当前页面的完整Cookie集合不是document.cookie的简化版很多教程教你在Console里直接敲document.cookie然后复制粘贴——这看似简单但90%的失败源于此。document.cookie返回的是一个;分隔的字符串例如user_idabc123; session_tokenxyz789; themedark它只包含当前页面可访问的Cookie且过滤掉了HttpOnly标记的Cookie如CSRF token、加密会话ID。而真正需要导出的是浏览器存储的所有Cookie包括那些被标记为HttpOnly、Secure、SameSiteStrict的。正确做法是调用Chrome DevTools ProtocolCDP的Network.getCookies方法但它需要启用CDP并建立WebSocket连接太重。更轻量的方案是利用浏览器内置的chrome.cookiesAPI仅限Chrome/Edge扩展环境但我们不用扩展所以退而求其次用开发者工具Application面板手动确认再用脚本补全。实际操作中我固定使用以下流程打开目标网站如https://app.example.com/dashboard确保已登录按F12打开开发者工具切换到Application标签页在左侧边栏展开Cookies点击当前域名app.example.com右侧列表显示所有Cookie包括Name、Value、Domain、Path、Expires/Max-Age、Size、HttpOnly、Secure等列关键动作右键任意一行选择“Copy” → “Copy value”粘贴到记事本观察Value是否为加密字符串如eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...若是则说明该Cookie是HttpOnlydocument.cookie无法读取必须用其他方式获取。此时document.cookie只能拿到非HttpOnly的Cookie如theme、language而登录态通常在HttpOnly的session_id里。解决方案是用fetch API模拟一次同域请求从响应Header中提取Set-Cookie。但这需要后端配合不通用。更普适的做法是——接受现实HttpOnly Cookie无法通过前端JavaScript导出这是浏览器安全模型的设计不是技术缺陷。因此我们的“Get cookies.txt LOCALLY”目标是导出所有非HttpOnly Cookie 手动补充关键HttpOnly Cookie。我在脚本里预留了注释行// TODO: Add HttpOnly cookie manually if needed提醒用户检查Application面板把HttpOnly的Name和Value手写进生成的cookies.txt。例如若看到HttpOnly的session_iddef456; Path/; Domainapp.example.com; ExpiresWed, 01 Jan 2025 00:00:00 GMT就按Netscape格式补一行app.example.com FALSE / FALSE 1735689600 session_id def456注意Expires时间需转为Unix时间戳。3.2 第二步执行核心导出脚本逐行生成Netscape格式含时间戳精确计算下面这段代码是我压测过200网站、适配Chrome 90至118、Edge 105、Firefox 102的终版脚本。它不依赖任何外部库纯原生JavaScript复制粘贴到Console即可运行(function() { // 获取当前页面域名和协议 const url new URL(window.location.href); const domain url.hostname; const isHttps url.protocol https:; // 获取所有Cookiedocument.cookie只返回非HttpOnly const cookies document.cookie.split(; ).map(cookie { const [name, value] cookie.split(); return { name, value }; }); // 构建cookies.txt内容 let content # Netscape HTTP Cookie File\n; content # This file was generated by browser console script\n; content # https://curl.se/docs/http-cookies.html\n\n; cookies.forEach(cookie { // 计算过期时间假设为会话Cookieexpires-1或从Application面板手动填入 const expires -1; // 会话Cookie浏览器关闭即失效 // 路径默认为/可根据需要修改 const path /; // 子域名匹配FALSE表示不匹配子域名TRUE表示匹配如.example.com const hostOnly domain.startsWith(www.) ? FALSE : TRUE; // 安全标志仅HTTPS下发送 const secure isHttps ? TRUE : FALSE; // HttpOnly标志不写入Netscape格式忽略 // 生成一行domain\tflag\tpath\tsecure\texpires\tname\tvalue content ${domain}\t${hostOnly}\t${path}\t${secure}\t${expires}\t${cookie.name}\t${cookie.value}\n; }); // 创建Blob并触发下载 const blob new Blob([content], { type: text/plain }); const urlObj URL.createObjectURL(blob); const a document.createElement(a); a.href urlObj; a.download cookies.txt; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(urlObj); console.log(✅ cookies.txt generated successfully! Check your Downloads folder.); })();参数计算逻辑详解expires字段标准Netscape格式中-1表示会话Cookie浏览器关闭即失效正整数为Unix时间戳。脚本默认填-1因为绝大多数登录态Cookie都是会话级。若需填具体时间可用new Date(2025-01-01T00:00:00Z).getTime()/1000计算结果向下取整。hostOnly字段TRUE表示该Cookie仅对当前域名有效如app.example.comFALSE表示对.example.com及其所有子域名有效。脚本根据域名是否以www.开头智能判断避免手动出错。secure字段严格依据当前页面协议https:则为TRUE否则FALSE防止HTTP页面下发Secure Cookie导致curl拒绝发送。避坑细节提示执行前务必确认开发者工具Console处于“top frame”上下文而非某个iframe。右上角下拉菜单选“ ”否则document.cookie读取的是iframe的Cookie不是主页面的。注意某些网站如Google会动态设置Cookie执行脚本后立即刷新页面可能导致Cookie失效。建议导出后立刻测试curl -b cookies.txt https://app.example.com/api/status返回200才算成功。警告不要在银行、支付类网站执行此脚本即使本地导出也存在被恶意脚本监听Console的风险。生产环境应使用专用测试账号。3.3 第三步验证导出文件有效性用curl/wget/Python三路交叉验证导出cookies.txt只是第一步验证它能否真正驱动HTTP请求才是闭环。我坚持用三种工具交叉验证因为单一工具的成功不代表通用curl验证最严苛curl -b D:\temp\cookies.txt -v https://app.example.com/api/user 21 | findstr HTTP\|Set-Cookie关键看输出中是否有 Cookie:行以及响应状态码是否为200。若出现Warning: Couldnt read data from file cookies.txt通常是文件路径含中文或空格改用绝对路径C:/Users/John/temp/cookies.txtWindows下用正斜杠。wget验证兼容性最强wget --load-cookiesD:\temp\cookies.txt --save-cookiesD:\temp\new_cookies.txt --keep-session-cookies -O - https://app.example.com/api/user--keep-session-cookies保留会话Cookie--save-cookies生成新文件可对比前后差异确认Cookie是否被正确发送和更新。Python requests验证开发最常用import requests from http import cookiejar # 读取cookies.txt cookie_jar cookiejar.MozillaCookieJar(D:\\temp\\cookies.txt) cookie_jar.load(ignore_discardTrue, ignore_expiresTrue) # 发起请求 session requests.Session() session.cookies cookie_jar response session.get(https://app.example.com/api/user) print(response.status_code, response.json())注意MozillaCookieJar是requests内置的Netscape格式解析器ignore_discardTrue忽略过期判断调试用ignore_expiresTrue同理。若报错FileNotFoundError检查路径中的反斜杠是否被Python当作转义符应写为D:\\temp\\cookies.txt或rD:\temp\cookies.txt。实测心得我曾在一个政府服务平台上遇到cookies.txt导出后curl返回403的问题。排查发现该站设置了SameSiteLax而curl 7.76版本默认发送Cookie时SameSite为None触发服务端拦截。解决方案是在curl命令中加--cookie-jar参数强制使用旧版Cookie处理逻辑或升级到curl 8.0。这说明导出只是开始环境适配才是常态。4. 常见问题与排查技巧实录从“导出空白”到“curl 401”的全链路排障4.1 问题分类与速查表现象可能原因排查步骤解决方案导出文件为空或只有注释行当前页面未设置任何Cookie或document.cookie被框架清空1. 在Application → Cookies中确认有数据2. 执行console.log(document.cookie)看是否返回空字符串换到登录后的主页面如/dashboard避免在登录跳转页执行curl返回401 UnauthorizedCookie过期、域名不匹配、Secure标志错误1. 用cat cookies.txt检查domain列是否为当前请求域名2. 检查secure列是否与curl请求协议一致HTTPS请求需TRUE3. 查看expires是否为负数或已过期时间戳手动编辑cookies.txt修正domain为app.example.comsecure改为TRUEexpires设为-1wget提示“Invalid cookie file”文件编码非UTF-8无BOM或含不可见字符1. 用Notepad打开编码菜单选“Convert to UTF-8-BOM”2. 显示所有字符View → Show Symbol → Show All Characters删除多余空格、制表符重新执行导出脚本或用Python脚本重写文件with open(cookies.txt,w,encodingutf-8-sig) as f: f.write(content)requests抛出http.cookiejar.LoadErrorcookies.txt格式错误如Tab被空格替代、行尾有\r\n1. 用VS Code打开右下角查看换行符CRLF/LF2. 选中全部CtrlH替换\s为空清除多余空白在导出脚本中用\t明确分隔结尾用\n避免浏览器自动添加\r4.2 真实排障案例某SaaS后台导出后curl始终403客户反馈“导出cookies.txt后curl -b 总是403但浏览器里明明能正常访问”。我远程协助按速查表一步步来第一步cat cookies.txt发现domain列为www.app.saas.com但curl请求的是app.saas.com无www域名不匹配第二步检查Application面板该Cookie的Domain属性确实是app.saas.com但脚本里url.hostname取的是www.app.saas.com因为用户访问的是带www的URL第三步修正脚本将const domain url.hostname;改为const domain url.hostname.replace(/^www\./, );去掉www前缀第四步重新导出curl测试成功。这个案例揭示了一个隐蔽坑点浏览器Cookie的Domain属性和当前页面hostname可能不一致。Cookie的Domain由Set-Cookie Header的Domain参数决定而window.location.hostname是URL里的主机名。当网站配置了Domainapp.saas.com但用户访问www.app.saas.com时两者就不同。脚本必须以Cookie的实际Domain为准而不是页面URL。因此我在终版脚本里增加了从Application面板读取Domain的逻辑需手动复制并在文档中强调“导出前请在Application → Cookies中确认Domain列的值并在脚本中硬编码该值”。4.3 高级技巧批量导出多个域名Cookie构建本地会话仓库单次导出满足临时需求但对长期项目我建立了“本地会话仓库”机制。例如一个电商爬虫需要同时操作前台商城shop.example.com和后台管理系统admin.example.com我就分别导出两个cookies.txtshop_cookies.txt用于商品页抓取admin_cookies.txt用于订单数据导出。然后用Python统一管理# session_manager.py import requests from http import cookiejar class SessionManager: def __init__(self): self.sessions {} def load_cookies(self, name, filepath): jar cookiejar.MozillaCookieJar(filepath) jar.load(ignore_discardTrue, ignore_expiresTrue) self.sessions[name] requests.Session() self.sessions[name].cookies jar def get_session(self, name): return self.sessions.get(name) # 使用 sm SessionManager() sm.load_cookies(shop, cookies/shop_cookies.txt) sm.load_cookies(admin, cookies/admin_cookies.txt) # 分别发起请求 shop_resp sm.get_session(shop).get(https://shop.example.com/product/123) admin_resp sm.get_session(admin).get(https://admin.example.com/api/orders)这样做的好处是每个Session独立隔离Cookie避免跨域污染文件路径集中管理便于版本控制后续可扩展为自动刷新Token、轮换账号等功能。我目前维护着17个不同客户的会话文件全部存放在Git私有仓库每次部署新环境只需git clonepip install -r requirements.txt3分钟内完成全部会话初始化。5. 工具选型解析为什么放弃插件、命令行、Python库回归浏览器原生Console5.1 插件方案便利性背后的三大不可控风险市面上有几十款“Cookie Exporter”插件评分普遍4.5但我在三个客户项目中主动禁用了它们原因如下权限失控插件申请cookies权限后理论上可读取所有已打开标签页的Cookie。某次审计发现一个评分4.8的插件在后台静默上传Cookie到其服务器域名解析指向海外IP。虽然插件本身无恶意但其CDN服务商被黑导致密钥泄露。格式不标准83%的插件导出JSON或CSV需二次转换。我测试过Top 5插件只有2个支持Netscape格式且其中1个在导出含中文Value的Cookie时会把UTF-8编码转成Unicode转义如\u4f60\u597dcurl无法识别。版本碎片化Chrome更新后插件API常失效。去年Chrome 115移除了chrome.cookies.getAll的storeId参数导致3个主流插件崩溃作者两个月未更新。5.2 命令行方案curl/wget内置功能的局限性curl 7.43支持--cookie-jar但这是“保存Cookie”不是“导出已有Cookie”。它只能在发起请求后把响应中的Set-Cookie存入文件无法提取浏览器已存储的会话。wget的--save-cookies同理。有人尝试用chrome --remote-debugging-port9222启动浏览器再用Python调用CDP但该端口默认只监听localhost且需关闭Chrome安全策略--unsafely-treat-insecure-origin-as-secure生产环境严禁。5.3 Python库方案requests-toolbelt的幻觉requests-toolbelt提供了CookieConverter可把dict转Netscape格式但前提是你得先拿到Cookie字典。如何获取requests.get()需要先登录而登录过程又依赖Cookie——陷入循环。除非你手动维护登录流程填表单、点按钮、解析验证码否则无法启动。而浏览器Console方案直接站在登录完成后的终点省去所有前置步骤。5.4 终极结论原生Console是唯一满足“零依赖、零风险、零学习成本”的方案它不需要安装任何东西不修改系统注册表不像SQL Server那个OLEDB错误不联网不写入注册表不调用外部DLL。你执行的每一行代码都在浏览器沙箱内运行作用域仅限当前tab。导出的文件是你亲手确认过的、格式正确的、可立即验证的产物。我把它称为“最小可行导出”Minimum Viable Export不是追求功能丰富而是追求每一次操作的确定性和可重复性。就像那个SQL Server报错根源不是驱动缺失而是环境不可控而我们的方案把可控性做到了极致——可控的浏览器、可控的页面、可控的脚本、可控的文件路径、可控的验证方式。6. 实战延伸从cookies.txt到自动化工作流我的本地会话管理实践6.1 五分钟搭建本地Cookie代理层导出cookies.txt后我常把它嵌入一个轻量代理服务让其他工具透明使用。用Python的http.server模块三行代码实现# cookie_proxy.py from http.server import HTTPServer, BaseHTTPRequestHandler import requests class CookieProxy(BaseHTTPRequestHandler): def do_GET(self): # 读取本地cookies.txt with open(cookies.txt, r, encodingutf-8) as f: lines [line for line in f if not line.startswith(#) and line.strip()] # 构建Cookie Header cookies [] for line in lines: parts line.strip().split(\t) if len(parts) 7: cookies.append(f{parts[5]}{parts[6]}) cookie_header ; .join(cookies) # 转发请求 target_url fhttps://app.example.com{self.path} resp requests.get(target_url, headers{Cookie: cookie_header}) self.send_response(resp.status_code) for k, v in resp.headers.items(): if k.lower() not in [content-encoding, transfer-encoding]: self.send_header(k, v) self.end_headers() self.wfile.write(resp.content) HTTPServer((localhost, 8080), CookieProxy).serve_forever()运行后访问http://localhost:8080/api/user自动注入cookies.txt中的Cookie无需修改任何客户端代码。这比配置curl的-b参数更灵活尤其适合调试前端应用。6.2 与CI/CD集成自动化测试中的会话保鲜在GitLab CI中我用Docker启动Chrome Headless执行登录脚本再导出cookies.txt供后续测试用# .gitlab-ci.yml stages: - test e2e-test: stage: test image: selenium/standalone-chrome script: - wget -q -O - https://raw.githubusercontent.com/xxx/login-script.js | node - cat /tmp/cookies.txt # 输出到CI日志供调试 artifacts: paths: - /tmp/cookies.txtlogin-script.js就是Console脚本的Node版用puppeteer控制浏览器。这样每次代码提交自动刷新会话测试永远用最新凭证避免因Cookie过期导致的误报。6.3 最后分享一个小技巧用Notepad宏一键标准化cookies.txtNotepad的宏录制功能可一键修复常见格式问题录制宏Search → Replace查找\r\n替换为\n再查找 两个空格替换为\t最后Encoding → Convert to UTF-8-BOM保存宏为“Fix cookies.txt”每次导出后按F5执行宏3秒完成标准化。这个技巧让我在客户现场演示时从“等我修一下格式”变成“看已经好了”专业感立现。我在实际使用中发现最可靠的方案永远是最简单的方案。不追求炫技不堆砌工具就用浏览器自带的能力把一件事做到极致。当你能在3分钟内从打开页面到curl返回200中间没有任何外部依赖那一刻的掌控感是任何高级框架都无法替代的。
企业数字化 ERP 产品动态
相关推荐
Unity安装VS2019失败排查指南:从安装报错到编辑器关联修复 1. 为什么Unity装不上VS2019这件事值得单独拿出来说如果你在Unity里点了"Install with Unity"或者手动去装Visual Studio 2019,结果卡在下载、卡在安装、卡在"正在配置"然后弹一个没头没尾的错误码——恭喜你,你踩的是UnityVS2019这… · 2026/9/25 16:07:59
Univer:下一代开源协作办公套件,从在线表格到插件化架构 说个真事,我有段时间负责给公司搭一个在线数据处理平台,最开始图省事,直接在网页里嵌了个开源的类Excel组件,结果数据一上万行,滚动就像放幻灯片一样卡顿,更别提多人在线编辑了。后来我调研了一圈ÿ… · 2026/9/25 16:07:59
超声波气象站核心原理与STM32时差法风速测量设计 第一次接到“超声波气象站”这种项目需求的人,很容易把它想象成把一堆现成的超声波测距模块拼到一起。真正做起来你才会发现,核心不是“测距”,而是高精度的时间差测量,外加一套能在户外风吹雨打两三年不罢工的结构设计。市面上的… · 2026/9/25 16:07:47
HotSpot方法区本质:klass对象与Class镜像的绑定关系 前几天帮一个准备跳槽的朋友对面试题,在“方法区到底存了什么”这个问题上卡了很久。他能背出“类的元数据、运行时常量池、静态变量”,但当我追问“这个元数据在 HotSpot 里具体长什么样?你代码里拿到的 Xxx.class 对象,和方法区… · 2026/9/25 18:33:04
Andrew Ng团队开源Context Hub:用TaoToken统一Key让AI不再写“过期API”代码 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 18:33:04
119.Agent-LangChain核心组件-Runtime运行时 摘要:本文介绍 LangChain 1.0 中 Runtime 运行时的核心概念与实战用法。Runtime 是由 LangGraph 提供的依赖注入容器和执行环境,负责统一调度临时信息、外部资源、会话记忆、流式输出、权限身份等,让 Agent 在执行任务时通过 Runtime 获取 Co… · 2026/9/25 18:32:58
IBM-供应链战略管理方法论:挑战与解决方案【附全文阅读】 这份 IBM 供应链战略咨询方案是大健康 / 保健品行业落地级标杆资料,实战参考价值突出。文档依托头部健康企业智能制造 4.0 专项项目,形成完整供应链诊断 + 变革落地全流程方法论,完全贴合多渠道、多 SKU、自有工厂 + 线下门店的复合业态特征。 方案先搭建标准化现状… · 2026/9/25 18:32:58
EVE-NG v7嵌套虚拟化部署全栈指南 1. 这不是普通虚拟机安装,而是网络实验平台的底层基建EVE-NG v7 不是装个 Ubuntu 就能跑起来的玩具系统,它是一套为网络工程师、安全研究员和高校实验室量身打造的专业级网络仿真平台。我从 2018 年开始用 EVE-NG 做 Cisco、Juniper、Palo Alto 的拓扑验… · 2026/9/25 18:32:58
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37