CN Scraper MCP 让 AI Agent 直接搜索中国互联网——淘宝、京东、小红书、知乎、微博、B站、知识星球……不再被反爬墙挡住。 每个 AI Agent(Codex、Claude Code、Cursor、Trae)都能搜网页,但中文平台通常需要登录态、浏览器环境或平台专用参数: - 淘宝:需要浏览器一致的网络指纹和登录 Cookie - 京东:依赖已登录的本地浏览器环境 - 小红书:需要住宅 IP、本地浏览器和搜索结果中的访问参数 - 知乎:游客搜索已关闭,全部 API 需要登录态 - 拼多多:平台限制严格,目前不推荐使用 - 微博:搜索 API 需要登录态(SUB token),热搜游客即可访问 - 抖音:需要浏览器登录并可能人工处理验证码 - B站:搜索、热门、视频详情和评论可直接使用公开 API - 豆瓣:条目搜索、条目详情和短评/影评 - 大众点评:商户搜索、商户详情
npx mdskills install goesByhc/cn-scraper-mcp@goesByhc? Sign in with GitHub to claim this listing.Comprehensive MCP server enabling AI agents to search and scrape major Chinese platforms with authentication support
1<p align="center">2 <img src="https://raw.githubusercontent.com/goesByhc/cn-scraper-mcp/master/assets/cn-scraper-mcp-icon.png" alt="CN Scraper MCP 图标" width="220">3</p>45<h1 align="center">CN Scraper MCP</h1>67<p align="center">8 <strong>让 AI Agent 直接搜索中国互联网——淘宝、京东、小红书、知乎、微博、B站、知识星球……不再被反爬墙挡住。</strong>9</p>1011<p align="center">12 <a href="https://python.org"><img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11+"></a>13 <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green" alt="MCP compatible"></a>14 <a href="https://github.com/goesByhc/cn-scraper-mcp/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"></a>15 <a href="https://github.com/goesByhc/cn-scraper-mcp/actions/workflows/ci.yml"><img src="https://github.com/goesByhc/cn-scraper-mcp/actions/workflows/ci.yml/badge.svg" alt="CI"></a>16</p>1718<!-- mcp-name: io.github.goesByhc/cn-scraper-mcp -->1920---2122## 这是什么2324每个 AI Agent(Codex、Claude Code、Cursor、Trae)都能搜网页,但中文平台通常需要登录态、浏览器环境或平台专用参数:2526- **淘宝**:需要浏览器一致的网络指纹和登录 Cookie27- **京东**:依赖已登录的本地浏览器环境28- **小红书**:需要住宅 IP、本地浏览器和搜索结果中的访问参数29- **知乎**:游客搜索已关闭,全部 API 需要登录态30- **拼多多**:平台限制严格,目前不推荐使用31- **微博**:搜索 API 需要登录态(SUB token),热搜游客即可访问32- **抖音**:需要浏览器登录并可能人工处理验证码33- **B站**:搜索、热门、视频详情和评论可直接使用公开 API34- **豆瓣**:条目搜索、条目详情和短评/影评35- **大众点评**:商户搜索、商户详情和用户评价36- **知识星球**:付费社群,内容藏在 cookie 认证的 REST API 后面3738**这个项目就是把踩了好几个月的坑打包成一个 MCP Server**——你的 Agent 一句话就能搜:`taobao_search("儿童学习桌")`。3940### 安全与隐私4142`cn-scraper-mcp` 在你的电脑上本地运行,不需要把 Cookie、账号密码或浏览器 Profile 上传到任何中转服务器:4344- Cookie 默认保存在 `~/.cn-scraper-cookies/`,京东登录态保存在本地 Chrome Profile。45- 登录过程直接发生在平台官方页面,软件不会读取或保存你的账号密码。46- Cookie 值不会写入日志,也不会通过 MCP 工具结果返回给 Agent;工具只返回状态、字段名和本地路径等非敏感信息。47- 发起抓取或在线登录验证时,凭证只会发送给对应平台域名。48- 代码完全开源,所有凭证处理流程都可以审查。4950建议仍像保护浏览器登录态一样保护本机账号:不要分享 Cookie 文件,不要把凭证提交到 Git,并限制本地文件的访问权限。5152---5354## 平台支持5556### 电商5758| 平台 | 方式 | 无需浏览器 | 限制 | 稳定性 |59|------|------|-----------|------|--------|60| **淘宝/Tmall** | `curl_cffi` + MTOP 签名 | ✅ | 宽松¹ | ✅ 稳定 |61| **京东/JD** | Chrome CDP headful | 需 Chrome | 中等 | ✅ 稳定² |62| **拼多多/PDD** | Chrome CDP + iPhone UA | 需 Chrome | 单次搜索限制³ | ⚠️ 不推荐 |6364> ¹ 淘宝无硬性限流,但平台可能随时收紧,不建议高频批量抓取。65> ² 京东由本地 Chrome 生成登录态和动态签名,工具读取结构化 API 响应;通过 `guided_login("jd")` 可自动初始化持久化 Profile。66> ³ 拼多多每个浏览器会话仅放行第一次搜索,之后永久"系统繁忙"。单次搜索结果零实用价值,引擎代码保留但不推荐使用。6768### 内容社区6970| 平台 | 方式 | 无需浏览器 | 限制 | 稳定性 |71|------|------|-----------|------|--------|72| **小红书/XHS** | 本地 Chrome CDP + cookie | 需 Chrome | 中等⁴ | ✅ 稳定 |73| **知乎/Zhihu** | REST API v4 | ✅ | 正常 | ✅ 稳定 |74| **知识星球/ZSXQ** | REST API v2 | ✅ | 正常 | ✅ 稳定 |75| **微博/Weibo** | REST API | ✅ | 正常 | ✅ 稳定 |76| **抖音/Douyin** ⚠️ | Chrome CDP + 验证码轮询 | 需 Chrome | 实验性⁵ | ⚠️ 实验性 |77| **B站/Bilibili** | 公开 Web API | ✅ | 建议低频调用 | ✅ 稳定 |78| **豆瓣/Douban** | 移动端 JSON API | ✅ | 搜索可能触发风控 | ⚠️ 依会话 |79| **大众点评/Dianping** | 公开网页解析 | ✅ | 可能触发页面风控 | ⚠️ 依页面结构 |8081> ⁴ 小红书只允许住宅 IP——云浏览器/数据中心 IP 直接封。必须用本地 Chrome。82> ⁵ 抖音搜索需要登录态 + 手动过滑块验证码。支持 120s 等待用户手动验证,通过后自动抓取。`guided_login("douyin")` 可引导登录。8384## 快速开始8586### 安装8788```bash89pip install cn-scraper-mcp90```9192也可以从源码安装开发版本:9394```bash95git clone https://github.com/goesByhc/cn-scraper-mcp.git96cd cn-scraper-mcp97pip install .98```99100### 推荐:CDP 自动登录并保存 Cookie101102安装并连接 MCP 后,直接让 Agent 调用:103104```text105guided_login(platform="weibo")106```107108它会打开本地 Chrome 并进入平台官方登录页。你自己扫码或输入密码后,工具通过 CDP 自动读取完整 Cookie(包括 JavaScript 无法读取的 HttpOnly Cookie),再保存到本机 `~/.cn-scraper-cookies/`。京东则保存到本地持久化 Chrome Profile。109110这是推荐方式,因为它不会要求你复制 Cookie,不容易漏掉关键字段,也更适合 Cookie 过期后的重新登录。可用平台名包括 `taobao`、`jd`、`xiaohongshu`、`zhihu`、`weibo`、`zsxq`、`douyin`、`pdd`、`douban` 和 `dianping`。111112已有通过远程调试端口启动且登录完成的 Chrome 时,也可以调用:113114```text115harvest_cookies(platform="weibo")116```117118### 启动119120```bash121cn-scraper-mcp122# 或: python -m cn_scraper_mcp.server123```124125### Docker126127容器内预装 Chromium,无需本地浏览器:128129```bash130docker build -t cn-scraper-mcp .131docker run -i --rm \132 -v ~/.cn-scraper-cookies:/root/.cn-scraper-cookies \133 -v ~/.jd_login_profile:/root/.jd_login_profile \134 cn-scraper-mcp135```136137远程服务器部署可以切换到 HTTP transport,通过 `IP + 端口` 连接:138139```bash140docker pull ghcr.io/goesbyhc/cn-scraper-mcp:latest141docker run -d --name cn-scraper-mcp \142 -p 8000:8000 \143 -e CN_SCRAPER_TRANSPORT=http \144 -e CN_SCRAPER_HOST=0.0.0.0 \145 -e CN_SCRAPER_PORT=8000 \146 -e CN_SCRAPER_PATH=/mcp \147 -v ~/.cn-scraper-cookies:/root/.cn-scraper-cookies \148 -v ~/.jd_login_profile:/root/.jd_login_profile \149 ghcr.io/goesbyhc/cn-scraper-mcp:latest150```151152远程 MCP endpoint:153154```text155http://<server-ip>:8000/mcp156```157158也可以使用 Docker Compose:159160```bash161docker compose --profile remote up -d cn-scraper-http162```163164可用环境变量:165166| 变量 | 默认值 | 说明 |167|------|------|------|168| `CN_SCRAPER_TRANSPORT` | `stdio` | `stdio`、`http`、`sse`,也接受 `streamable-http` 作为 `http` 别名 |169| `CN_SCRAPER_HOST` | `0.0.0.0` | HTTP/SSE 模式监听地址 |170| `CN_SCRAPER_PORT` | `8000` | HTTP/SSE 模式监听端口 |171| `CN_SCRAPER_PATH` | `/mcp` | HTTP/SSE MCP endpoint 路径 |172173> 远程 HTTP 模式会让 MCP 工具通过网络访问本机 Cookie/Profile 目录,请勿直接裸露公网端口。建议放在内网、VPN、防火墙白名单或带鉴权的反向代理后面。小红书、京东、抖音等依赖本地浏览器、住宅 IP 或人工验证码的平台,在远程服务器上的稳定性取决于服务器网络与图形环境。174175当平台要求人工处理登录、验证码或风控页时,工具会返回统一的 `ACTION_REQUIRED` 结构,并在 `action_required` 字段中说明平台、原因、处理动作、处理链接和建议重试的工具。当前抖音验证码已接入该结构;远程 Docker 场景下仍需要你通过可见浏览器或后续 noVNC 网页完成验证。176177Agent 集成配置:178179```toml180# Codex ~/.codex/config.toml181[mcp_servers.cn-scraper]182command = "docker"183args = ["run", "-i", "--rm",184 "-v", "/本机绝对路径/.cn-scraper-cookies:/root/.cn-scraper-cookies",185 "-v", "/本机绝对路径/.jd_login_profile:/root/.jd_login_profile",186 "cn-scraper-mcp"]187```188189请把 `/本机绝对路径/` 替换为真实路径;MCP 客户端直接启动进程时不会替你展开 `~`。190191> Docker 镜像内置 Chromium + `--no-sandbox`。京东 headful 模式如需 Xvfb,设置环境变量 `XVFB_WRAPPER=1`。小红书仍需住宅 IP——数据中心 IP 会被封。192193---194195## MCP 工具一览196197### 电商搜索198199| 工具 | 说明 |200|------|------|201| `taobao_search` | 淘宝/天猫关键词搜索 → 价格、销量、店铺 |202| `taobao_product` | 淘宝商品详情 → 标题、价格、店铺 |203| `jd_search` | 京东关键词搜索 → SKU、价格、商品名 |204| `jd_product` | 京东商品详情 → 名称、价格、店铺、规格 |205| `pdd_search` | 拼多多搜索 → 仅首次有效 |206| `pdd_product_detail` | 拼多多商品详情 → 不限次数 |207208### 内容社区209210| 工具 | 说明 |211|------|------|212| `xiaohongshu_search` | 小红书笔记搜索 → 标题、作者、点赞、`noteId`、`xsec_token` |213| `xiaohongshu_note` | 小红书笔记详情 → 标题、正文、作者、标签、互动数、发布时间 |214| `xiaohongshu_comments` | 小红书笔记首屏评论 → 评论内容、用户、点赞、时间(需要 `noteId` + `xsec_token`) |215| `zhihu_search` | 知乎搜索 → 问题、文章 |216| `zhihu_hot_list` | 知乎热榜 |217| `zhihu_comments` | 知乎回答评论(支持分页) |218| `zhihu_answer` | 知乎回答完整正文 |219| `zhihu_question_answers` | 知乎问题下的回答列表 |220| `weibo_search` | 微博搜索 → 微博帖子内容 |221| `weibo_hot_list` | 微博热搜榜 |222| `weibo_user_timeline` | 微博用户时间线 |223| `weibo_comments` | 微博帖子评论(支持分页) |224| `weibo_post` | 微博帖子完整详情 |225| `douyin_search` | 抖音搜索 → CDP 浏览器 + 验证码轮询(⚠️ 实验性) |226| `douyin_hot_list` | 抖音热搜榜 |227| `douyin_video` | 抖音视频详情 |228| `douyin_comments` | 抖音视频评论 |229| `bilibili_search` | B 站视频搜索(纯 HTTP,无需登录) |230| `bilibili_popular` | B 站热门视频榜 |231| `bilibili_video` | B 站视频详情及互动统计 |232| `bilibili_comments` | B 站视频一级评论(支持分页) |233| `douban_search` | 豆瓣书籍、电影、音乐等条目搜索 |234| `douban_subject` | 豆瓣条目详情 |235| `douban_reviews` | 豆瓣条目短评/影评 |236| `dianping_search` | 大众点评商户搜索 |237| `dianping_shop` | 大众点评商户详情 |238| `dianping_reviews` | 大众点评商户评价 |239| `zsxq_topics` | 知识星球付费社群帖子 |240| `zsxq_article` | 知识星球文章全文 |241242### Cookie 管理243244| 工具 | 说明 |245|------|------|246| `check_cookies` | 检查所有平台 Cookie 状态 |247| `verify_login` | 在线验证知乎、微博、知识星球、抖音登录态;不支持的平台明确返回 unsupported |248| `diagnose` | 环境诊断——依赖版本、浏览器、CDP 端口 |249| `harvest_cookies` | CDP 自动收割 Cookie(包括 HttpOnly) |250| `guided_login` | 引导登录——自动打开浏览器 → 你扫码 → 登录后自动收割 Cookie |251252## MCP 客户端配置253254### Codex255256`~/.codex/config.toml`:257258```toml259[mcp_servers.cn-scraper]260command = "cn-scraper-mcp"261args = []262```263264保存后可用 `codex mcp list` 检查连接状态。265266### Claude Code / Cursor / Reasonix267268这三个客户端都支持标准的 `mcpServers` JSON:269270- Claude Code:项目根目录 `.mcp.json`271- Cursor:全局 `~/.cursor/mcp.json`,或项目目录 `.cursor/mcp.json`272- Reasonix:项目根目录 `.mcp.json`273274```json275{276 "mcpServers": {277 "cn-scraper": {278 "command": "cn-scraper-mcp",279 "args": []280 }281 }282}283```284285### Trae286287Trae 不同版本的配置文件位置可能不同。建议在设置中的 MCP 管理界面添加本地 stdio Server:名称填写 `cn-scraper`,命令填写 `cn-scraper-mcp`,参数留空。288289> 如果客户端提示找不到命令,先用 `where cn-scraper-mcp`(Windows)或 `which cn-scraper-mcp`(macOS/Linux)找到完整路径,再把 `command` 替换为该路径。290291---292293## 更多文档294295- [架构设计](https://github.com/goesByhc/cn-scraper-mcp/blob/master/docs/architecture.md):职责边界、平台契约和 Agent 开发守则296- [开发规范](https://github.com/goesByhc/cn-scraper-mcp/blob/master/CONTRIBUTING.md):环境、编码、测试和 Review 要求297298---299300## 常见问题301302**Q: 使用这个软件安全吗?**303软件在你的电脑上本地运行,不经过项目方的中转服务器。Cookie 和浏览器 Profile 保存在本机,Cookie 值不会写入日志或通过 MCP 返回给 Agent;需要访问平台时,凭证只发送给对应的平台域名。304305**Q: 软件会读取或保存账号密码吗?**306不会。登录发生在平台官方页面,由你自己扫码或输入密码;工具只在登录完成后通过 CDP 保存浏览器产生的 Cookie。307308**Q: Cookie 保存在什么地方?**309Cookie 默认保存在 `~/.cn-scraper-cookies/`,京东使用本地持久化 Chrome Profile。请像保护已登录浏览器一样保护这些文件,不要分享或提交到 Git。310311**Q: 怎么初始化 Cookie 最方便?**312用 `guided_login("平台名")` 工具。它会自动打开 Chrome → 导航到登录页 → 等你扫码/输密码 → 登录后自动收割 Cookie 并保存。313314**Q: 合法吗?**315仅用于**学习和研究目的**。批量抓取可能违反平台服务条款。风险自负。切勿用于垃圾信息、DDoS 或商业级大规模抓取。316317---318319## 许可证320321MIT — 详见 [LICENSE](https://github.com/goesByhc/cn-scraper-mcp/blob/master/LICENSE)。322323## 支持项目324325如果这个项目帮你节省了时间,可以请作者喝杯咖啡:326327<p align="center">328 <img src="assets/wechat-pay.jpg" alt="微信赞赏码" width="240">329</p>330331## 致谢332333- [curl_cffi](https://github.com/lexiforest/curl_cffi) — TLS 指纹伪装334- [FastMCP](https://github.com/jlowin/fastmcp) — MCP Server 框架335- [websockets](https://github.com/python-websockets/websockets) — 异步 WebSocket336337---338339*Made with ☕ and months of frustration at Chinese platform anti-bot walls.*340
Full transparency — inspect the skill content before installing.