From 839f67dd3ad7d88b5c92e1fc8ad70ebcd9bb2d6e Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Mon, 9 Mar 2026 22:45:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=BA=93=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=EF=BC=9A=E5=BC=80=E6=BA=90=E7=A5=9E=E5=99=A8=E2=80=94=E2=80=94?= =?UTF-8?q?=E5=88=86=E5=88=86=E9=92=9F=E7=88=AC=E5=8F=96=E5=B0=8F=E7=BA=A2?= =?UTF-8?q?=E4=B9=A6=E3=80=81=E6=8A=96=E9=9F=B3=E3=80=81=E5=BE=AE=E5=8D=9A?= =?UTF-8?q?=E3=80=81=E7=9F=A5=E4=B9=8E=E4=BA=86=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .obsidian/workspace.json | 20 +- 00.收件箱/01-速记本.md | 1 + 01.待办/TODO.md | 2 +- .../A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md | 5 + ...OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md | 321 ------------------ .../2026-03-09/zhihu_2013919514258072086.md | 58 ++++ 6 files changed, 75 insertions(+), 332 deletions(-) delete mode 100644 10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md create mode 100644 30.资源/AI分析/2026-03-09/zhihu_2013919514258072086.md diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 319a043..1c3f2f1 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "10.项目/12-AI助手/10-OpenClaw/文档/MEMORY.md", + "file": "01.待办/TODO.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "MEMORY" + "title": "TODO" } } ] @@ -194,16 +194,17 @@ }, "active": "34876e67774622ea", "lastOpenFiles": [ + "10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md", + "00.收件箱/01-速记本.md", "01.待办/TODO.md", + "10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史.md", + "10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md", + "30.资源/AI会话历史/dev-assist/2026-03/汇总-2026-03.md", + "30.资源/AI会话历史/dev-assist/2026-03/对话-2026-03-05.md", + "10.项目/12-AI助手/README.md", + "10.项目/11-墨犬/README.md", "10.项目/12-AI助手/10-OpenClaw/文档/MEMORY.md", "30.资源/AI会话历史/haonan/2026-03/对话-2026-03-05.md", - "30.资源/AI会话历史/dev-assist/2026-03/对话-2026-03-05.md", - "30.资源/AI会话历史/dev-assist/2026-03/汇总-2026-03.md", - "10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md", - "10.项目/11-墨犬/README.md", - "00.收件箱/01-速记本.md", - "10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md", - "10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史.md", "40.归档/每日回顾/2026-03-06.md", "40.归档/每日回顾/2026-03-05.md", "40.归档/每日回顾/2026-03-04.md", @@ -220,7 +221,6 @@ "40.归档/做游戏/UE引擎/音效与音乐", "40.归档/做游戏/UE引擎/其他技巧经验", "40.归档/兴趣灵感/AI", - "10.项目/12-AI助手/README.md", "40.归档/UI设计师的SOUL.md", "30.资源/33-方案参考/个人知识管理体系对比指南.md", "40.归档/做游戏/2.头脑风暴与玩法调研/打铁模拟器.md", diff --git a/00.收件箱/01-速记本.md b/00.收件箱/01-速记本.md index cb1097b..88379e0 100644 --- a/00.收件箱/01-速记本.md +++ b/00.收件箱/01-速记本.md @@ -2,3 +2,4 @@ # AI UUmvJBS8d8yjGpha +调整token使用策略,以防用一个gitea account的id去提交其他不相关的目录。 diff --git a/01.待办/TODO.md b/01.待办/TODO.md index 3340563..2fd3dac 100644 --- a/01.待办/TODO.md +++ b/01.待办/TODO.md @@ -4,7 +4,7 @@ - [ ] 看这个视频,做笔记。https://www.bilibili.com/video/BV1YyW4z6EYu/?t=14.0&vd_source=1deaab00c5de8885422a7a7690170eba - [ ] 报销IOS开发者账号的钱,报销AI的钱 # AI助手 -- [ ] 用AI建立房价分析机制 +- [x] 用AI建立房价分析机制 ✅ 2026-03-09 - [ ] 用AI处理邮件收件箱 - [ ] OpenClaw:gitea knowledge-base仓库的部署流程调整,也纳入工作区的资源部分 - [ ] 为OpenClaw搭建部署多Agent协作开发功能(superpowers/tmux+ClaudeCode) diff --git a/10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md b/10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md index 9821a1c..2a1f768 100644 --- a/10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md +++ b/10.项目/11-墨犬/A.草稿/虚幻5.6 IOS平台使用源码引擎打包.md @@ -71,6 +71,11 @@ https://blog.csdn.net/niubitianping/article/details/113137555 顶部平台切换成"项目名称Editor"。Run,编译应该很快,只有十几个 Run成功之后打开项目工程的UE窗口 去编辑->项目设置->平台->iOS中设置BundleID和包名,即前面AppleDeveloper账号拿到的BundleID。 +去编辑->项目设置->平台->Xcode项目中设置 +- 勾选现代化XCode +- 填写 Apple开发账户团队ID (TeamID不是账号名称是后面那一串10位的字符串) +- 填写数据包ID +- 勾选使用自动代码签名 关闭编辑器 # 打包项目 1. **在Xcode** >**偏好设置**>**帐户**中将您的 Apple Developer ID 与 Xcode 连接。 diff --git a/10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md b/10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md deleted file mode 100644 index 0ff001a..0000000 --- a/10.项目/12-AI助手/10-OpenClaw/知乎专栏/01-在旧电脑上部署 OpenClaw:我的血泪踩坑史_23127PN0CC_Mar-08-0751-2026_1.md +++ /dev/null @@ -1,321 +0,0 @@ -# Ubuntu 24 -用云服务器直接安装 -# OpenClaw -用一键安装脚本 -```curl -fsSL https://openclaw.ai/install.sh | bash``` - -# 后台启动 -(腾讯云)网关起不来,提示systemctl。阿里云没问题,可以跳过这一步 -``` -# 更新systemd -sudo apt update -sudo apt install dbus-user-session -sudo apt install --reinstall libpam-systemd -#启用Root用户的lingering -sudo loginctl enable-linger root -#验证 -loginctl show-user root | grep Linger -#启动dbus服务 -systemctl --user start dbus.service -#验证服务状态 -systemctl --user status -#安装gateway -openclaw gateway install -#启动 -openclaw gateway start -#成功 -``` -# 搞模型 -## Minimax CodingPlan -sk-cp-8PugyKE2xsG0S4x4KzDuuIV6Z9bT1NFwkpfrOSG05djFVExAgYEPpp7iUaTcugT6_P4uBYIN9S75l3ij-Yd2Ct8f6CxdKWdgFahESfn_jla-SlU6oGUCBjk -## Kimi CodingPlan -sk-sk-kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMsk-kimi-4ognsk-kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMsk-kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMfddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40fddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40cmlAcNCJaPQWaGDvRpHO7rTGokMfddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40fddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMsk-kimi-4ognsk-kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMsk-kimi-4ogncmlAcNCJaPQWaGDvRpHO7rTGokMfddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40fddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40cmlAcNCJaPQWaGDvRpHO7rTGokMfddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40fddnoSZ8u5pNaXgg2aK4Tb4CCBbEIuv40 - -## 智谱GLM CodingPlan -80ec82f2b14047d9a0399682a042378b.E8rv2nPSyuIsGoDr - -## 阿里百炼通义千问CodingPlan -安装插件 -sk-sp-9b5f973d23f84526b99132d0edf3b411 -``` -"auth": { - "profiles": { - "alibaba-cloud:default": { - "provider": "alibaba-cloud", - "mode": "api_key" - } - } - }, -"agents": { - "defaults": { - "model": { - "fallbacks": [ - "zhipu/glm-4.7", - "zhipu/glm-4.7-FlashX", - "minimax/MiniMax-M2.1", - "minimax/MiniMax-M2.1-lightning" - ], - "primary": "kimi-coding/k2p5" - }, - "models": { - "zhipu/glm-4.7": {}, - "zhipu/glm-4.7-FlashX": {}, - "minimax/MiniMax-M2.1": {}, - "minimax/MiniMax-M2.1-lightning": {}, - "alibaba-cloud/qwen3-max-2026-01-23": {}, - "kimi-coding/k2p5": { - "alias": "Kimi K2.5" - } - }, - "workspace": "/root/.openclaw/workspace", - "compaction": { - "mode": "safeguard" - }, - "maxConcurrent": 8, - "subagents": { - "maxConcurrent": 16 - } - }, -"models": { - "mode": "merge", - "providers": { - "alibaba-cloud": { - "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", - "api": "openai-completions", - "models": [ - { - "id": "qwen3-max-2026-01-23", - "name": "qwen3-max-thinking", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 262144, - "maxTokens": 65536 - } - ] - } - }, - "minimax": { - "baseUrl": "https://api.minimaxi.com/anthropic", - "apiKey": "sk-cp-8PugyKE2xsG0S4x4KzDuuIV6Z9bT1NFwkpfrOSG05djFVExAgYEPpp7iUaTcugT6_P4uBYIN9S75l3ij-Yd2Ct8f6CxdKWdgFahESfn_jla-SlU6oGUCBjk", - "api": "anthropic-messages", - "authHeader": true, - "models": [ - { - "id": "MiniMax-M2.1", - "name": "MiniMax M2.1", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 15, - "output": 60, - "cacheRead": 2, - "cacheWrite": 10 - }, - "contextWindow": 200000, - "maxTokens": 8192 - }, - { - "id": "MiniMax-M2.1-lightning", - "name": "MiniMax M2.1 Lightning", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 15, - "output": 60, - "cacheRead": 2, - "cacheWrite": 10 - }, - "contextWindow": 200000, - "maxTokens": 8192 - } - ] - }, - "zhipu": { - "baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4", - "apiKey": "80ec82f2b14047d9a0399682a042378b.E8rv2nPSyuIsGoDr", - "api": "openai-completions", - "models": [ - { - "id": "{glm-4.7}", - "name": "{glm 4.7}", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 8192 - }, - { - "id": "glm-4.7-FlashX", - "name": "glm 4.7 FlashX", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 8192 - } - ] - } - }, -"plugins": { - "entries": { - "alibaba-cloud-auth": { - "enabled": true - } - } - }, -``` -``` -openclaw config set 'models.providers.zhipu' --json '{ -  "baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4", -  "apiKey": "80ec82f2b14047d9a0399682a042378b.E8rv2nPSyuIsGoDr", -  "api": "openai-completions", -  "models": [ -    { "id": "{glm-4.7}", "name": "{glm 4.7}" } -  ] -}' - -openclaw config set models.mode merge - -openclaw models set zhipu/glm-4.7 -``` -# 搞外网访问 -``` -"hooks": { - "internal": { - "enabled": true, - "entries": { - "boot-md": { - "enabled": true - }, - "command-logger": { - "enabled": true - }, - "session-memory": { - "enabled": true - } - } - } -}, - -"gateway": { - "port": 18789, - "mode": "local", - "bind": "lan", - "co"c"controlUi": { - "allowInsecureAuth": true - },ontrolUi": { - "allowInsecureAuth": true - },ntrolUi": { - "allowInsecureAuth": true - }, - "auth": { - "mode": "token", - "token": "bef8134f5927f3321a3df17cde922b4a" - }, - "tailscale": { - "mode": "off", - "resetOnExit": false - }, - "http": { - "endpoints": { - "responses": { - "enabled": true - } - } - } - }, - "plugins": { - "entries": { - "alibaba-cloud-auth": { - "enabled": true - }, - "alibaba-cloud-international-auth": { - "enabled": true - }, - "alibaba-cloud-us-auth": { - "enabled": true - } - } - }, - "tools": { - "web": { - "search": { - "enabled": true, - "provider": "brave", - "apiKey": "BSAjOnKoRQhsGaUEWY57A3GZiXEgzzQ" - } - } - } -``` -## 宝塔面板 -腾讯云 -widg5guc -c40f07bd -ftp: -micecola_com_cn -kFRffxMA9aDmfakw -http://47.82.1.197:18789/?token=eeaf68e4545727133f94bca0523cd0b3c72049c6d80aad59 -# 搞聊天窗口 -## 飞书 -``` -openclaw plugins install @m1heng-clawd/feishu -openclaw channels add -``` -``` -https://open.feishu.cn/?lang=zh-CN -cli_a9f74dc9a3f8dbce -QtnvzRUhhFoNTTorxJuAwgSJ3ocPv0p1 -``` -``` -openclaw config set channels.feishu.appId "cli_a9f74dc9a3f8dbce" -openclaw config set channels.feishu.appSecret "QtnvzRUhhFoNTTorxJuAwgSJ3ocPv0p1" -openclaw config set channels.feishu.enabled true -# 推荐使用 websocket -openclaw config set channels.feishu.connectionMode websocket -openclaw config set channels.feishu.dmPolicy pairing -openclaw config set channels.feishu.groupPolicy allowlist -openclaw config set channels.feishu.requireMention true - -``` -## IMessage -# 扩展功能 -## 网络搜索 -``` -"tools": { - "web": { - "search": { - "enabled": true, - "provider": "brave", - "apiKey": "BSAjOnKoRQhsGaUEWY57A3GZiXEgzzQ" - } - } - } -``` - - diff --git a/30.资源/AI分析/2026-03-09/zhihu_2013919514258072086.md b/30.资源/AI分析/2026-03-09/zhihu_2013919514258072086.md new file mode 100644 index 0000000..e320c23 --- /dev/null +++ b/30.资源/AI分析/2026-03-09/zhihu_2013919514258072086.md @@ -0,0 +1,58 @@ +--- +title: "开源神器——分分钟爬取小红书、抖音、微博、知乎了!" +date: 2026-03-09 +duration: 0:00 +author: 太阳鸟 +bvid: +platform: bilibili +url: https://zhuanlan.zhihu.com/p/2013919514258072086 +tags: ["Python爬虫", "数据采集", "自动化工具", "自媒体运营"] +--- + +## 标题 +MediaCrawler:零逆向基础的多平台数据采集神器深度解析 + +## 摘要 +本视频针对自媒体数据分析与爬虫入门者面临的痛点——即主流平台(如小红书、抖音、微博等)日益复杂的反爬机制(JS加密、X-Bogus参数、登录限制等),介绍了一款名为 MediaCrawler 的开源 Python 爬虫工具。视频详细展示了该工具如何通过 Playwright 自动化框架模拟真实用户行为,从而绕过平台检测,实现“免逆向”数据抓取。内容涵盖了工具的核心功能、技术实现原理(如浏览器指纹模拟、Cookie复用、JS注入)、具体的命令行操作示例以及数据输出格式。此外,视频还提及了功能更强的 Pro 版本,为舆情分析、热点追踪等场景提供了一键式解决方案,极大地降低了数据获取的技术门槛。 + +## 主要主题 +- 社交媒体数据爬取 +- 零代码逆向技术 +- Playwright自动化 +- 反反爬虫策略 +- 自媒体数据分析 +- 开源爬虫工具 +- Python项目实战 +- 舆情监控系统 + +## 关键见解 +- **技术门槛的转移**:MediaCrawler 标志着爬虫技术的一种范式转变,即从“硬碰硬”的逆向工程(破解JS加密、参数签名)转向“模拟真实”的浏览器自动化(RPA),使得初学者也能抓取高难度平台数据。 +- **拟人化操作的核心地位**:视频强调了“不被封”的核心在于像真人一样操作。通过保留登录Cookie、随机化操作间隔以及模拟真实的浏览器环境,有效解决了传统爬虫易被识别为机器人的问题。 +- **数据驱动的生产力**:工具直接支持 JSON、CSV 及 MySQL 数据库的输出,表明其设计初衷不仅是“能跑通”,而是为了直接对接后续的数据分析与存储系统,具有很强的工程落地价值。 +- **开源生态的分层**:作者区分了基础版与 Pro 版,反映了开源社区常见的商业模式:通过基础版建立社区影响力和用户基数,通过 Pro 版提供更深度的服务(如更稳定的维护或高级功能)。 + +## 时间轴 + +### 第 1 部分 (00:00 - 02:00) 痛点引入与解决方案概览 +视频开篇由博主“牛皮糖”以生动的对话形式切入,直接点出了当前自媒体数据采集领域最为棘手的痛点。博主的朋友在尝试构建内容分析系统时,遭遇了主流平台(小红书、抖音等)设置的重重技术壁垒。具体表现为:JavaScript(JS)加密逻辑晦涩难懂,特别是抖音等平台的 X-Bogus 签名参数难以破解,以及频繁遭遇登录页面的 403 Forbidden 错误。这些问题构成了爬虫初学者的“劝退”门槛,导致许多数据需求被迫搁置。 + +针对这一普遍困境,视频迅速抛出了解决方案——MediaCrawler。这是一个基于 Python 开发的开源项目,其核心卖点在于“零逆向”和“一键爬取”。讲师强调,该工具打破了传统爬虫开发必须精通前端逆向工程的固有认知。它覆盖了小红书、抖音、快手、微博、B站、知乎、贴吧等几乎所有主流中文社交媒体平台。这一部分的深度分析在于揭示了当前网络环境的矛盾:平台数据保护日益加强(加密、风控),而数据价值挖掘的需求日益增长,MediaCrawler 正是平衡这一矛盾的利器,它通过自动化技术封装了底层的复杂度,让用户回归数据本身的价值。 + +### 第 2 部分 (02:00 - 05:00) 核心功能演示与技术原理剖析 +在这一部分,视频深入 MediaCrawler 的具体操作与底层逻辑,展示了其极高的易用性。通过一个简洁的命令行示例 `python main.py --platform xhs --type search --keyword "穿搭" --pages 5`,讲师演示了如何仅用一行代码即可完成从指定平台搜索关键词到获取分页数据的全过程。这种“声明式”的交互方式极大地简化了开发流程。 + +在数据获取的深度上,该工具不仅抓取基础的元数据(笔记标题、作者昵称、点赞数、评论数),还能获取完整的内容主体,包括图片和视频的原链接,这为后续的素材下载或内容分析提供了完整的数据链。更关键的是,视频详细解析了其数据持久化能力:支持导出为本地 JSON 或 CSV 文件,同时原生支持 MySQL 数据库入库。这意味着该工具可以直接作为生产环境的一部分,无缝对接后端的数据分析系统或可视化大屏。 + +关于“如何防止被封”这一核心技术难点,视频进行了重点拆解。MediaCrawler 采用了 **Playwright** 自动化浏览器技术。与传统的 Requests 库直接发送 HTTP 请求不同,Playwright 启动了一个真实的(无头或有头)浏览器环境。这意味着所有的请求都带有真实的浏览器指纹。视频强调了三个关键机制: +1. **模拟真实用户**:通过自动化脚本模拟人的点击、滚动和输入行为,避免高频请求触发风控。 +2. **状态保留**:利用 Cookie 持久化技术,避免频繁登录触发验证码或风控,保持长会话有效性。 +3. **运行时注入**:在页面加载时动态注入 JS 代码,自动生成平台所需的加密签名参数(如 X-Bogus),这一步完全在后台自动完成,用户无需理解其算法逻辑。 + +这种技术路线的选择,本质上是利用了“识别真实浏览器比识别脚本请求更难”的原理,从而实现了高可用性的数据采集。 + +### 第 3 部分 (05:00 - 结束) 适用场景与进阶版本推荐 +视频的最后部分将视角从技术实现转向了实际应用场景与生态建设。讲师总结了 MediaCrawler 最适合的四类人群或需求:自媒体数据收集(竞品分析)、舆情分析系统(品牌监控)、多平台热词抓取(趋势发现)以及爬虫入门学习者。对于学习者而言,阅读该项目的源码也是理解异步编程、自动化控制和数据清洗的绝佳途径。 + +此外,视频透露了项目的进阶版——MediaCrawlerPro。虽然基础版已经功能强大,但 Pro 版通常意味着更高的稳定性、更高效的并发处理或针对特定平台更新的快速适配。这暗示了在开源社区,维护一个长期有效的爬虫工具需要持续的投入,Pro 版可能是作者寻求可持续发展和提供企业级支持的一种方式。 + +总结来说,本视频不仅仅是一个工具的推荐,更是一次关于如何利用现代自动化技术解决传统数据难题的深度教学。它降低了数据获取的门槛,让更多人能够参与到数据的挖掘与价值创造中来,对于数据分析师、运营人员及开发者都具有极高的参考价值。 \ No newline at end of file