# 👻 InstaGhost
### 免费开源的 **Instagram 爬虫** Chrome 扩展 — 将任何 Instagram 个人资料转化为适配 LLM 的知识库。
**无需 API 密钥。无需付费套餐。无需外部服务器。** 你的浏览器,你的会话,你的数据。
[](LICENSE)
[](manifest.json)
[](#-installation)
[](#-how-it-works)
[](#-contributing)

[**功能简介**](#-what-it-does) · [**核心特性**](#-features) · [**安装说明**](#-installation) · [**工作原理**](#-how-it-works) · [**与 Apify 对比**](#-instaghost-vs-apify-vs-the-official-api) · [**常见问题**](#-faq)
## 🧭 什么是 InstaGhost?
**InstaGhost 是一款完全作为 Chrome 扩展运行的免费 Instagram 爬虫。** 只需提供一个 Instagram 用户名和帖子数量,它就能生成一份简洁的、**适配 LLM 的 Markdown 知识库**(以及结构化的 JSON 数据集,可选包含原始照片和视频)。
它是**可自制的、零成本的付费 Instagram 爬虫替代方案**(例如 Apify Instagram Scraper)。与租用云端 actor 并按次付费不同,InstaGhost 运行在**你已经登录的 Instagram 会话**中,并向 Instagram 请求与网站自身请求完全相同的数据(内部 Web API)。任何数据都不会离开你的浏览器。
## ✨ 它能做什么
给定一个用户名(例如 `@nasa`)和帖子数量 **N**(从最新开始),InstaGhost 会生成:
| 输出 | 包含内容 |
|---|---|
| 📝 **`
-.md`** | **针对 LLM 优化的知识库**。**第一部分 — 索引:** 带有地理位置的信息、文案中提及的地点 (📌)、被提及的账号/地点、高频 hashtag、按主题分组的帖子。**第二部分 — 帖子:** 按时间顺序排列的每一条帖子,包含文案、互动数据、位置、音频、共同作者、付费合作标记和热门评论。 |
| 🗂️ **`-.json`** | 完整的**标准化数据集** (schema-03),包含一个带有直链照片/视频 URL 的 `media[]` 数组。 |
| 🖼️ **`@/…`** *(可选)* | 实际的**媒体文件** — 每一张照片和视频,包括所有轮播滑动图片 — 当你开启“照片和视频”开关时下载。 |
## 🚀 核心特性
## 📸 输出示例
```
# Instagram 知识库 — @testcafe (Test Cafe)
> 12,500 followers · 340 total posts · 60 extracted (chronological, newest first) · Cafe
> Bio: Coffee & books
> Extracted: 2026-06-02T10:00:00.000Z · Source: Instagram (public data)
# PART 1 — 索引
## 🗺️ 带标签的地点(已地理定位)
- **Downtown Roastery** (44.49, 11.34) — 8 posts: #1, #4, #9 …
## 🧭 按主题分类的帖子
- **🍽️ Food & drink** (41): #1, #2, #3 …
- **🎭 Events** (12): #5, #11 …
# PART 2 — 帖子(按时间顺序)
## #1 · 2026-05-30 · 图像
🧭 🍽️ Food & drink
📍 **Downtown Roastery**
📊 230 likes · 12 comments
**Caption:**
Best single-origin in town ☕ …
```
将其粘贴到你最喜欢的 LLM 中并提问:*“根据这份个人资料,为我制作一份周边美食指南。”*
## 📦 安装说明
## 🖱️ 使用方法
1. 打开 **instagram.com** 并登录(必须处于登录会话状态)。
2. 进入你想抓取的个人主页 — 用户名会被**自动检测** — 或者手动将其输入到面板中。
3. 选择**帖子数量**(从最新开始)并设置开关:
- **热门评论**(默认开启) — 为每条帖子添加前 5 条热门评论。
- **照片和视频**(默认关闭) — 同时下载媒体文件。
4. 点击 **✨ 提取**。面板会显示逐步进度(个人资料 → 帖子 → 评论)。
5. 完成后:**复制 Markdown**(粘贴到你的 LLM 中)或下载 `.md` / `.json`。如果启用了媒体下载,文件会存放在 `Downloads/@/` 中。
## 🧱 工作原理
InstaGhost 采用“Driver A”架构:content script 使用你的第一方 cookie(同源,来自隔离的 content-script 环境),向 Instagram 的**内部 Web API** 请求获取数据。不进行 DOM 抓取,不使用无头浏览器,不使用第三方代理。
```
┌──────────────────────────────────────────────────────────────────┐
│ 🪟 SIDE PANEL (ui/sidepanel.html + .js) │
│ drives the flow · renders every state │
└──────────────┬─────────────────────────────────────▲──────────────┘
ig_detect / │ │ ig_progress /
ig_extract / │ │ ig_result /
ig_abort ▼ │ ig_media_*
┌──────────────────────────────────────────────────────────────────┐
│ CONTENT SCRIPT (runs on instagram.com · logged-in session) │
│ │
│ 🧭 ig-driver.js orchestrator │
│ ├─ 🔌 ig-api-client.js fetch /api/v1/… (credentials: include) │
│ │ └── uses ──▶ 🛡️ rate-limiter.js (anti-detection) │
│ ├─ 🧩 ig-normalizer.js raw IG JSON → schema-03 (+ media[]) │
│ └─ 📝 ig-render.js schema → Markdown knowledge base │
└──────────────┬─────────────────────────────────────────────────────┘
ig_download /│
ig_download_media
▼
┌──────────────────────────────────────────────────────────────────┐
│ 💾 SERVICE WORKER (background/service-worker.js) │
│ saves .md / .json · downloads photos & videos │
└──────────────────────────────────────────────────────────────────┘
```
**使用的 Endpoints**(内部 Web API,来自你已登录的会话):
| Endpoint | 返回内容 |
|---|---|
| `GET /api/v1/users/web_profile_info/?username=X` | 个人资料 + `userId` |
| `GET /api/v1/feed/user/{userId}/?count=N&max_id=…` | 分页帖子 |
| `GET /api/v1/media/{mediaId}/comments/` | 评论 |
**运行时文件结构:**
```
manifest.json # MV3, v2.0.0
background/service-worker.js # opens the panel + downloads (.md/.json + media)
content/
ig-driver.js # content-side orchestrator
ig-api-client.js # internal API client + RateLimiter
ig-normalizer.js # raw IG → schema (profile/post/comment/media)
ig-render.js # schema → Markdown knowledge base
libs/
rate-limiter.js # anti-detection engine
ui/
sidepanel.html / .js # single-purpose UI + state controller
icons/ # 16 / 48 / 128
```
## 🛡️ 防检测
由于封号风险主要在于**发起请求的已登录账号**,因此 [`libs/rate-limiter.js`](libs/rate-limiter.js) 会让流量看起来更像人类操作:
- **高斯分布延迟**(Box-Muller 算法)由 CSPRNG 生成种子,因此其时间特征不是那种容易被检测到的均匀随机指纹。
- 随机的**“分心暂停”**和**“快速反应”**,模拟真实的注意力转移。
- **渐进式疲劳** — 扩展程序随着会话运行时间的增加而逐渐变慢。
- 针对收到 `429` / `503` 响应时启用**指数退避 + 安全模式**。状态会持久化保存到 `chrome.storage.local` 中。
即便如此:请温和使用。请参阅下方的[负责任地使用](#-privacy--responsible-use)。
## ⚖️ InstaGhost 与 Apify 及官方 API 对比
| | 👻 **InstaGhost** | 💰 Apify Instagram Scraper | 🏢 Official Graph API |
|---|---|---|---|
| **费用** | 免费且开源 | 按次付费 / 包月额度 | 免费层级,随后是配额限制 |
| **设置** | 加载已解压的扩展程序 | 账号 + actor 配置 | 应用审核 + tokens |
| **API key** | ❌ 不需要 | ✅ Apify token | ✅ 应用 + access token |
| **运行环境** | 你的浏览器,本地运行 | Apify 云端 | Meta 服务器 |
| **数据存储位置** | 保留在你的机器上 | Apify 云端存储 | Meta |
| **公开主页** | ✅ | ✅ | ⚠️ 受限 / 仅限商业账户 |
| **适配 LLM 的 Markdown** | ✅ 内置支持 | ❌ 仅原始 JSON | ❌ 仅原始 JSON |
| **最适用于** | 个人研究,LLM 数据准备 | 大规模自动化 | 已获批的商业应用 |
如果你正在寻找一款**免费的 Apify Instagram 爬虫替代品**,或者一个**无需 API 的 Instagram 爬虫**,InstaGhost 正是为此类用例量身打造的。
## ❓ 常见问题
**什么是 InstaGhost?**
一款免费开源的 Chrome 扩展程序,它可以抓取公开的 Instagram 个人主页 — 包括其帖子、文案、评论、hashtag、位置和互动数据 — 并将所有内容导出为适配 LLM 的 Markdown 和 JSON,且完全在你的浏览器中运行。
**InstaGhost 是免费的吗?**
是的。它采用 MIT 许可证,没有付费层级,没有点数消耗,也不需要创建账号。你可以直接将其作为已解压的 Chrome 扩展程序加载。
**我需要 Instagram API 密钥或开发者账号吗?**
不需要。InstaGhost 不使用官方的 Instagram/Graph API。它复用你正常的浏览器登录会话,因此无需管理任何 tokens。
**它可以抓取私密 Instagram 主页吗?**
不可以。它只能读取你的账号本身能看到的内容。对于你未关注的私密主页,根据设计它不会返回任何帖子。
**它支持抓取 Instagram reels、评论和 hashtag 吗?**
支持 — 它可以抓取帖子和 reels(包含音频元数据)、每条帖子的热门评论、所有 hashtag 和 @提及,以及带有地理位置标记的地点。
**抓取 Instagram 会导致我的账号被封禁吗?**
任何自动化操作都存在风险。InstaGhost 内置了拟人化的速率限制和退避机制以尽量降低风险,但你仍应适度使用 — 一次抓取一个主页,设置合理的 N 值 — 最好避免使用你的主要账号。
**我的数据存储在哪里?**
仅存储在你的浏览器和“下载”文件夹中。没有外部服务器,没有遥测数据,也没有跟踪。
**支持哪些浏览器?**
任何基于 Chromium 内核的浏览器:Google Chrome、Microsoft Edge、Brave、Arc 和 Opera。
**它与 Apify Instagram Scraper 有什么不同?**
Apify 在云端运行并按次收费;而 InstaGhost 在你的浏览器中本地免费运行,并输出专为 LLM 设计的 Markdown。请参阅[对比表格](#-instaghost-vs-apify-vs-the-official-api)。
## 🔐 权限说明
每一项权限都对应一个实际需求:下载文件、打开侧边栏、与当前活跃的 Instagram 标签页通信,以及在本地持久化存储防检测状态。没有宽泛的主机访问权限,没有分析追踪。
## ⚠️ 隐私与负责任地使用
- **仅供个人使用。** 提取的数据虽然是公开的,但它们属于你 — 请勿将其重新分发,并尊重 Instagram 的服务条款及适用法律(包括适用情况下的 GDPR)。
- **你的账号就是“保险丝”。** 请求源于你的会话;过度使用可能导致**你的账号**被频率限制或被封禁。请适度使用,并避免使用你最重要的账号。
- **不稳定的 Endpoints。** 这些是未公开文档记录的内部 API:Instagram 可能会在不加通知的情况下更改它们,届时扩展程序可能需要更新。
- **一切皆为本地处理。** 无服务器,无遥测。`.md` / `.json` / 媒体文件仅保存在你的“下载”文件夹中。
InstaGhost 仅出于教育和个人研究目的按“原样”提供,不提供任何担保。你需要对自己的使用方式负责。
## 👤 作者
由 **[Vlad Vrinceanu](https://www.linkedin.com/in/vladvrinceanu/)** 创建和维护。
如果 InstaGhost 为你节省了时间或金钱,欢迎在仓库点个 ⭐ 并在 [LinkedIn](https://www.linkedin.com/in/vladvrinceanu/) 上建立联系,我们将不胜感激。
## 📄 许可证
[MIT](LICENSE) © 2026 [Vlad Vrinceanu](https://www.linkedin.com/in/vladvrinceanu/)。可自由使用、修改和分享。
关键词: instagram 爬虫 · instagram 个人主页爬虫 · instagram 帖子爬虫 · instagram 评论爬虫 · instagram reels 爬虫 · instagram hashtag 爬虫 · 免费 instagram 爬虫 · instagram 爬虫 chrome 扩展 · 无需 API 的 instagram 爬虫 · instagram 数据爬虫 · apify instagram 爬虫替代品 · instagram 转 markdown · 导出 instagram 到 LLM
献给所有想要一款**免费、私密且真正属于你自己的** Instagram 爬虫的人。👻
由 [**Vlad Vrinceanu**](https://www.linkedin.com/in/vladvrinceanu/) 开发 · 采用 MIT 许可证