jsonscraper

IG 工程指南

如何使用 Python 抓取 IG 数据

更新于 2026 年 3 月 5 日 3 分钟阅读 15 次浏览

本指南展示了使用 jsonscraper 端点映射的生产优先 IG 数据工作流程,以及真实的响应示例和实用的架构选择。

对于生产工作负载,主要好处是端点深度加上重要路由上的cache_timeout支持,这有助于减少重复调用和配额消耗。

你将构建的内容

Postman 快速开始

从官方 IG 集合开始,设置一次 license_key,即可在编写代码前通过几次点击运行请求。

步骤1

叉子

使用 IG 或 TikTok Postman 集合作为您的工作区基线。

步骤2

设置键

Configure license_key once in an environment variable.

步骤3

自动化

导出片段或根据就绪请求运行 AI 代理工作流程。

全部 API 请求

集合中的完整端点地图。展开每个分类并点击路由,即可查看参数与响应示例。

用户 媒体 故事 精选 位置 话题标签 搜索 FB 搜索 音频(音乐) Web API(GraphQL)
User (30 endpoints)
Media (18 endpoints)
Story (6 endpoints)
Highlight (3 endpoints)
Location (6 endpoints)
Hashtag (8 endpoints)
Search (11 endpoints)
FB Search (2 endpoints)
Audio (Music) (2 endpoints)
Web API (GraphQL) (11 endpoints)
在 Postman 中查看完整端点列表

来自集合的 Python 示例

这些示例使用与 Postman 相同的鉴权方式:在查询参数中传递 license_key。

Example 1: get user by username (GET /v1/user/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "apple",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

print(data["status"], data["ig"]["username"], data["ig"]["pk"])
{
  "status": "ok",
  "limits_info": {"requests_count": 7098, "requests_limit": 2000300},
  "rate_limit_reached": false,
  "ig": {"pk": 5821462185, "username": "apple", "full_name": "apple"}
}

Example 2: get user stories by username (GET /v1/user/stories/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "applemusic",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/stories/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

stories = data.get("ig", [])
print("stories:", len(stories))

Python 请求模式(license key + 分页)

使用统一的请求 helper,确保所有端点的签名与分页逻辑一致。

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

def call(endpoint: str, **params):
    q = {"license_key": LICENSE_KEY, "cache_timeout": 0, **params}
    res = requests.get(f"{BASE_URL}{endpoint}", params=q, timeout=30)
    res.raise_for_status()
    return res.json()

page1 = call("/v1/user/medias/chunk", user_id="5821462185")
next_max_id = page1.get("next_max_id")
if next_max_id:
    page2 = call("/v1/user/medias/chunk", user_id="5821462185", max_id=next_max_id)

实现说明

  • 每个请求都应包含 license_key。
  • 对重复检查场景显式设置 cache_timeout。
  • 将游标字段与查询上下文一起持久化。
  • 完成基线验证后,按端点分类逐步扩展覆盖范围。

准备好启动您的 API 工作流程了吗?

选择 API,在 Postman 测试端点,几分钟内上线工作流。