Get cookies.txt LOCALLY 命令行集成与自动化脚本实战:从零到一写出你的全自动 Cookie 导出工作流

发布时间:2026/8/18 17:07:13

Get cookies.txt LOCALLY 命令行集成与自动化脚本实战:从零到一写出你的全自动 Cookie 导出工作流
Get cookies.txt LOCALLY 命令行集成与自动化脚本实战从零到一写出你的全自动 Cookie 导出工作流【免费下载链接】Get-cookies.txt-LOCALLYGet cookies.txt, NEVER send information outside.项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY做爬虫、写脚本、调试接口的人几乎都经历过这样的折磨每次要抓某个站的 Cookie先打开浏览器开发者工具翻到 Application 面板一条条复制 Cookie 字符串或者点开某个扩展手动点导出、手动改文件名生怕覆盖掉上次的结果。重复、易错、浪费时间而且很多在线工具还会把你的 Cookie 上传到别人的服务器——数据零外传的安全底线直接破防。Get cookies.txt LOCALLY就是来解决这个问题的它是一款开源浏览器扩展源码体积小巧、完全透明只在本机读取并导出 Cookie绝不把任何信息发送到外部。本篇文章不讲虚的直接带你把它变成命令行工具再写一套自动化脚本实现批量导出、定时抓取跑通之后你会发现手动导出 Cookie 的日子真的可以一去不复返。快速上手 三分钟装好一分钟看到效果先别急着写代码我们把工具装起来感受一下它导出的 Cookie 长什么样。第一步克隆仓库git clone https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY cd Get-cookies.txt-LOCALLY仓库里的源码就是扩展本体加载的是src/目录注意不是仓库根目录。第二步以开发者模式加载扩展打开 Chrome地址栏输入chrome://extensions/回车打开右上角的开发者模式开关点击加载已解压的扩展程序选择刚才克隆的Get-cookies.txt-LOCALLY/src目录。加载成功后工具栏会出现扩展图标浏览器标签页右上角会自动显示当前页面的 Cookie 数量角标——这是src/background.mjs里updateBadgeCounter在实时统计加载成功与否一眼便知。第三步首次导出打开任意一个需要抓 Cookie 的站点比如https://example.com点击扩展图标在弹出的popup.html面板里点蓝色Export按钮。浏览器会立刻下载一个example.com_cookies.txt文件内容大致长这样# Netscape HTTP Cookie File # https://curl.haxx.se/rfc/cookie_spec.html # This is a generated file! Do not edit. example.com TRUE / FALSE 0 session_id a1b2c3d4e5f6 .example.com TRUE / TRUE 1893456000 uid 10086把这个文件丢给curl -b cookies.txt或 Python 的MozillaCookieJar就能直接复用登录态。到这里工具已经能用了。接下来进入正题怎么把它集成进命令行再变成自动化脚本。进阶实战一 把扩展变成命令行工具DevTools 控制台直连核心模块目标说明扩展的弹窗界面本质是一个普通页面popup.mjs通过 ES Module 的方式加载了三个核心模块。这意味着我们完全可以在弹窗的 DevTools 控制台里动态import这些模块像调用命令行函数一样调用它们绕开按钮直接拿数据。完整代码先打开目标站点点击扩展图标弹出面板然后按F12打开 DevTools在 Console 面板执行// 动态加载扩展核心模块相对路径基于 popup.html必须在这个控制台里执行 const { default: getAllCookies } await import(./modules/get_all_cookies.mjs); const { formatMap } await import(./modules/cookie_format.mjs); // 获取当前域名下的全部 Cookie const cookies await getAllCookies({ url: https://example.com, partitionKey: { topLevelSite: https://example.com }, }); // 一键序列化为 Netscape 格式文本 const netscapeText formatMap.netscape.serializer(cookies); console.log(netscapeText);逐行拆解一下这段命令行在做什么getAllCookies(details)是src/modules/get_all_cookies.mjs的默认导出函数它封装了chrome.cookies.getAll()返回符合筛选条件的 Cookie 数组url指定站点partitionKey指定分区用于正确读取带分区上下文的 CookieformatMap来自src/modules/cookie_format.mjs它是一个包含netscape、json、header三种格式的映射表每种格式都有ext、mimeType、serializer三个字段formatMap.netscape.serializer(cookies)内部调用jsonToNetscapeMapper把 Chrome 的 JSON Cookie 数据逐字段映射成 Netscape 七列格式并拼上文件头注释。运行效果 / 输出示例控制台直接打印出完整的 Netscape 格式文本# Netscape HTTP Cookie File # https://curl.haxx.se/rfc/cookie_spec.html # This is a generated file! Do not edit. example.com TRUE / FALSE 0 session_id a1b2c3d4e5f6 .example.com TRUE / TRUE 1893456000 uid 10086想换输出格式把formatMap.netscape换成formatMap.json就得到可被程序直接解析的 JSON换成formatMap.header则输出namevalue;拼接的请求头格式。这一下扩展的三种导出能力全变成了你的命令行函数随取随用。进阶实战二 Puppeteer 驱动扩展写一个真正的 CLI 导出脚本目标说明控制台手动执行适合临时抓取但你要的是可重复运行的脚本。这里我们用 Puppeteer 启动一个加载了该扩展的 Chrome 实例直接连到扩展的 Service Workersrc/background.mjs的运行环境在 Worker 上下文里调用核心模块把结果写成本地文件——完全脱离鼠标操作。完整代码先安装依赖npm install puppeteer新建export-cookies.mjsimport puppeteer from puppeteer; import fs from node:fs/promises; // 扩展目录改成你本机克隆仓库的 src 绝对路径 const EXT_PATH /你的绝对路径/Get-cookies.txt-LOCALLY/src; const browser await puppeteer.launch({ headless: false, // MV3 扩展需要非 headless 模式加载 args: [ --disable-extensions-except${EXT_PATH}, --load-extension${EXT_PATH}, ], }); // 等待扩展的 Service Worker 启动background.mjs 所在上下文 const workerTarget await browser.waitForTarget( (t) t.type() service_worker t.url().includes(background.mjs), ); const worker await workerTarget.worker(); // 在 Worker 上下文里动态加载扩展模块并导出 const url https://example.com; const result await worker.evaluate(async (targetUrl) { const { default: getAllCookies } await import( chrome.runtime.getURL(modules/get_all_cookies.mjs) ); const { formatMap } await import( chrome.runtime.getURL(modules/cookie_format.mjs) ); const cookies await getAllCookies({ url: targetUrl }); return formatMap.netscape.serializer(cookies); }, url); // 写入本地文件完成命令行导出 await fs.writeFile(example_cookies.txt, result, utf8); await browser.close(); console.log(✅ 已导出 ${url} 的 Cookie 到 example_cookies.txt);运行node export-cookies.mjs运行效果 / 输出示例✅ 已导出 https://example.com 的 Cookie 到 example_cookies.txt同目录下多出一个example_cookies.txt内容与上一节控制台输出一致。这已经不是点按钮而是标准的 CLI 工具了——你可以把它嵌进任何 Shell 脚本、CI 流程里。进阶实战三 ⏰ 定时任务 批量站点全自动导出工作流目标说明Cookie 有有效期登录态会过期。爬虫场景下你希望每天早上定时刷新一批站点的 Cookie 文件。把实战二的逻辑抽成函数加上node-schedule定时触发和站点列表循环就得到一套无人值守的导出流水线。完整代码npm install node-schedule新建scheduled-export.mjsimport schedule from node-schedule; import puppeteer from puppeteer; import fs from node:fs/promises; const EXT_PATH /你的绝对路径/Get-cookies.txt-LOCALLY/src; // 多站点配置url 是要抓的站点file 是输出文件名 const websites [ { url: https://example.com, file: example_cookies.txt }, { url: https://www.google.com, file: google_cookies.txt }, ]; async function exportAllCookies() { const browser await puppeteer.launch({ headless: false, args: [ --disable-extensions-except${EXT_PATH}, --load-extension${EXT_PATH}, ], }); const workerTarget await browser.waitForTarget( (t) t.type() service_worker t.url().includes(background.mjs), ); const worker await workerTarget.worker(); for (const site of websites) { try { const result await worker.evaluate(async (targetUrl) { const { default: getAllCookies } await import( chrome.runtime.getURL(modules/get_all_cookies.mjs) ); const { formatMap } await import( chrome.runtime.getURL(modules/cookie_format.mjs) ); const cookies await getAllCookies({ url: targetUrl }); return formatMap.netscape.serializer(cookies); }, site.url); await fs.writeFile(site.file, result, utf8); console.log(✅ ${site.url} - ${site.file}); } catch (err) { console.error(❌ ${site.url} 导出失败, err.message); } } await browser.close(); } // 每天凌晨 3 点整执行一次 schedule.scheduleJob(0 3 * * *, exportAllCookies); console.log( 定时 Cookie 导出任务已启动每天 03:00 执行);运行效果 / 输出示例node scheduled-export.mjs 定时 Cookie 导出任务已启动每天 03:00 执行 第二天 03:00 ✅ https://example.com - example_cookies.txt ✅ https://www.google.com - google_cookies.txt单个站点失败不会中断整个任务——循环内的try/catch保证一个站点挂了其余站点照常导出脚本本身也常驻运行。至此命令行集成 自动化脚本全部落地。避坑清单 你可能会遇到的四个坑我都替你踩过了坑一报错chrome is not defined多半是执行环境不对现象在普通网页的 DevTools 控制台里跑getAllCookies直接报chrome is not defined。原因src/modules/get_all_cookies.mjs底层依赖chrome.cookiesAPI这个 API 只在扩展页面popup、background里可用普通网页没有权限。解决把代码放到扩展弹窗popup.html或 Service Worker 的上下文里执行也就是本文实战一、实战二的做法。脚本里则统一通过chrome.runtime.getURL(modules/...)定位模块避免相对路径解析错误。坑二文件名变成xxx.txt.txt是名字传错了现象传给saveToFile的文件名是cookies.txt结果下载下来叫cookies.txt.txt。原因看src/modules/save_to_file.mjs的源码第 17 行是const filename name ext;——它会在你传入的name后面自动追加扩展名扩展名来自formatMap里的ext字段。解决name只传不带扩展名的部分例如saveToFile(text, cookies, formatMap.netscape)如果自定义输出文件名里不要再带.txt。坑三导出的 cookies.txt 给 curl 用不了现象curl -b cookies.txt访问受保护接口依然返回未登录。原因Netscape 格式第七列是value第六列是name顺序错了整行作废另外includeSubDomain第二列为FALSE时子域名请求不会带上该 Cookie。解决确认用的是formatMap.netscape.serializer生成的七列文本对应src/modules/cookie_format.mjs中jsonToNetscapeMapper的字段顺序需要把 Cookie 直接塞进请求头时改用formatMap.header输出namevalue;直接拼进Cookie头。坑四Chrome 版本老导出结果缺 Cookie现象部分站点导出的 Cookie 比预期少。原因partitionKey是 Chrome 119 之后才支持的属性老版本调用会直接抛错。不过这一点src/modules/get_all_cookies.mjs已经做了兜底——它把带partitionKey的请求包进Promise.resolve().then(...).catch(() [])失败时返回空数组再走不带分区的查询所以大概率不会报错只会少拿带分区上下文的 Cookie。解决升级 Chrome 到 119 以上或像 popup.mjs 里那样显式传partitionKey: { topLevelSite: url.origin }让新旧浏览器行为一致。效率小贴士 ✨ 两个让工作流更顺的进阶技巧技巧一一份数据三种格式任选。formatMap里除了netscape还有jsonJSON.stringify直出适合程序消费和headernamevalue;拼接适合直接注入请求头。在脚本里把格式名做成参数一个导出函数覆盖三种消费场景不用为每种格式各写一套逻辑。技巧二不装 node-schedule用系统 cron 更轻。如果你的机器常驻定时任务可以只写一个单次导出的脚本export-once.mjs即实战二然后交给系统定时器0 3 * * * cd /你的路径/Get-cookies.txt-LOCALLY node export-once.mjs这样连node-schedule的常驻进程都省了脚本跑完即退更符合用完就走的命令行哲学。写在最后 回头看看Get cookies.txt LOCALLY把读 Cookie、转格式、存文件三件事拆成了get_all_cookies.mjs、cookie_format.mjs、save_to_file.mjs三个职责单一的模块扩展本体只是这些模块的一个薄壳。看懂了这层设计你就能在脚本里直接复用它——既拿到了可编程的 Cookie 数据管道又守住了数据零外传的底线Cookie 全程只在你自己的机器上流转。这套方案特别适合两类人一是写爬虫、做数据采集的开发者需要频繁刷新站点 Cookie二是做自动化测试、接口调试的工程师想把登录态纳入 CI 流程。下一步建议你翻一翻src/popup.mjs看看扩展是如何把getAllCookies、formatMap、saveToFile串成按钮交互的——理解了这条链路你就能按自己的需求定制导出逻辑比如只导出某条路径下的 Cookie或者把 JSON 格式接入你自己的数据仓库。【免费下载链接】Get-cookies.txt-LOCALLYGet cookies.txt, NEVER send information outside.项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

扩展 dotcommon:如何为 Fish、Termite 等配置文件添加自定义统计器?

扩展 dotcommon:如何为 Fish、Termite 等配置文件添加自定义统计器?

2026/8/18 17:07:13

扩展 dotcommon:如何为 Fish、Termite 等配置文件添加自定义统计器? 【免费下载链接】dotcommon What do people have in their dotfiles? 项目地址: https://gitcode.com/gh_mirrors/do/dotcommon dotcommon 是一个开源的 dotfiles 配置统计工具…

Flipper Authenticator支持Steam令牌吗?如何在Flipper Zero上使用Steam验证码

Flipper Authenticator支持Steam令牌吗?如何在Flipper Zero上使用Steam验证码

2026/8/18 17:07:13

Flipper Authenticator支持Steam令牌吗?如何在Flipper Zero上使用Steam验证码 【免费下载链接】flipper-zero_authenticator Software-based TOTP/HOTP authenticator for Flipper Zero device. 项目地址: https://gitcode.com/gh_mirrors/fl/flipper-zero_authen…

SonarSearch入门指南:一文读懂Project Sonar子域名查询API

SonarSearch入门指南:一文读懂Project Sonar子域名查询API

2026/8/18 17:07:13

SonarSearch入门指南:一文读懂Project Sonar子域名查询API 【免费下载链接】SonarSearch A rapid API for the Project Sonar dataset 项目地址: https://gitcode.com/gh_mirrors/so/SonarSearch SonarSearch 是一个围绕 Rapid7 Project Sonar 数据集的子域名…

独立站平台哪个好用?Shopify、WooCommerce和外贸建站方案对比

独立站平台哪个好用?Shopify、WooCommerce和外贸建站方案对比

2026/8/18 18:17:16

独立站平台哪个好用?Shopify、WooCommerce和外贸建站方案对比独立站平台哪个好用,要看企业到底要卖货、拿询盘,还是做品牌展示。Shopify、WooCommerce、BigCommerce、Webflow、WordPress和标准化外贸建站方案都能做独立站,但后台逻…

低价小程序制作平台可靠吗?年费、续费、售后和功能边界对比

低价小程序制作平台可靠吗?年费、续费、售后和功能边界对比

2026/8/18 18:17:16

低价小程序制作平台可靠吗?年费、续费、售后和功能边界对比 低价小程序制作平台可靠吗,不能简单回答可靠或不可靠。低价本身不是问题,问题在于企业有没有看清费用边界、功能范围、上线责任和后续维护。 有些低价方案适合展示、报名和轻量预…

低成本微信开店怎么做?模板商城、SaaS年费和长期维护费用对比

低成本微信开店怎么做?模板商城、SaaS年费和长期维护费用对比

2026/8/18 18:17:16

低成本微信开店怎么做?模板商城、SaaS年费和长期维护费用对比低成本微信开店,不是只找一个最低报价。商家要把模板商城、SaaS年费、页面设计、支付配置、售后培训、续费维护和买断权益分开看,否则首年省下来的钱,后续可能在改页面…

RaBitQ 量化技术实战解密:用每维 1 比特的压缩把亿级向量检索速度拉高一个数量级

RaBitQ 量化技术实战解密:用每维 1 比特的压缩把亿级向量检索速度拉高一个数量级

2026/8/18 18:17:16

RaBitQ 量化技术实战解密:用每维 1 比特的压缩把亿级向量检索速度拉高一个数量级 【免费下载链接】faiss A library for efficient similarity search and clustering of dense vectors. 项目地址: https://gitcode.com/GitHub_Trending/fa/faiss 凌晨两点&a…

如何用AI把长视频变成高效笔记:BiliNote视频笔记生成工具快速上手指南

如何用AI把长视频变成高效笔记:BiliNote视频笔记生成工具快速上手指南

2026/8/18 18:17:16

如何用AI把长视频变成高效笔记:BiliNote视频笔记生成工具快速上手指南 【免费下载链接】BiliNote AI 视频笔记生成工具 让 AI 为你的视频做笔记 项目地址: https://gitcode.com/gh_mirrors/bi/BiliNote 凌晨一点,你终于看完了那节一个多小时的网课…

python的运筹学工业场景模拟第五十三篇:读取多组原料报价,循环做灵敏度校验,判断不同原料报价下原有最优方案,时是否依旧有效。

python的运筹学工业场景模拟第五十三篇:读取多组原料报价,循环做灵敏度校验,判断不同原料报价下原有最优方案,时是否依旧有效。

2026/8/18 18:07:16

原料报价"压力测试":用Python循环校验不同报价下最优配方会不会翻车"某饲料集团配方师每月用线性规划做全厂配方优化——几十种原料、几十条营养约束、十几个产品。最优配方算出来后,采购部拿过来一份下周原料报价单:玉米涨了…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/17 1:28:42

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/18 1:03:22

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/17 8:40:51

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

多智能体大模型辩论中的立场收敛:从伪共识到理性说服的评估方法

多智能体大模型辩论中的立场收敛:从伪共识到理性说服的评估方法

2026/8/18 0:06:29

1. 从一场“假辩论”说起:为什么大模型辩论会走向“伪共识”?最近在折腾多智能体大语言模型(Multi-Agent LLM)的辩论实验,发现一个挺有意思的现象。我让几个基于GPT-4的智能体就一个争议性话题(比如“远程办…

Frida动态代码插桩框架:从原理到实战的移动安全与逆向工程指南

Frida动态代码插桩框架:从原理到实战的移动安全与逆向工程指南

2026/8/18 0:06:29

1. 从“黑盒”到“白盒”:为什么我们需要Frida在移动安全、逆向工程甚至是一些自动化测试的场景里,我们经常会遇到一个让人头疼的问题:面对一个编译好的、没有源代码的应用程序,我们如何知道它在运行时内部发生了什么?…

ECharts饼图中心文字配置指南:从label与title区别到动态交互实现

ECharts饼图中心文字配置指南:从label与title区别到动态交互实现

2026/8/18 0:06:29

1. 从“空心”到“有魂”:为什么要在饼图中间加文字?如果你用过ECharts画饼图,大概率会注意到一个现象:默认生成的饼图中间是空心的。这个设计本身没问题,它清晰地展示了各个扇区的占比关系。但在很多实际的业务场景里…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…