mcpField
I
instagram-scraper

instagram-scraper

github.com/skillify-sh数据与数据库08.0k 次安装9 周前更新
代码仓库

关于 instagram-scraper

instagram-scraper 是通过 Apify 抓取公开 Instagram 数据的技能,供需要获取个人资料、帖子及相关内容的工作流使用。它支持多种结果类型,并提供登录预检和避免在对话中处理令牌的认证流程。

主要功能

  1. 01获取个人资料、帖子及 Reels
  2. 02抓取限时动态、评论和提及
  3. 03按关键词或 URL 搜索
  4. 04预检 Apify 登录状态
  5. 05通过 Apify CLI 或 HTTP 调用

适用场景

  1. 01查看账号粉丝数和简介
  2. 02收集指定账号的帖子
  3. 03获取帖子评论或账号提及

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/skillify-sh/skills --skill instagram-scraper

安装后在 Claude Code 中输入/instagram-scraper确认已加载。

详细介绍

Instagram 抓取工具

通过 Apify 的 Instagram Scraper 获取公开的 Instagram 数据。无需登录 Instagram,无需 Cookie,也无需经过 Meta 应用审核。

Actorapify/instagram-scraper
身份验证Authorization: Bearer $APIFY_TOKEN,或使用已登录的 Apify CLI — 参见 Setup
价格每 1,000 条结果起价 $2.30,由 Apify 计费
免费额度每月 $5 额度 ≈ 2,000+ 条结果,无需信用卡

Setup — 在进行任何数据调用前执行

始终先运行此预检。 只有预检通过后,才能尝试进行数据调用。

if [ -n "$APIFY_TOKEN" ]; then
  echo "AUTH_OK curl"
elif command -v apify >/dev/null 2>&1 && apify info >/dev/null 2>&1; then
  echo "AUTH_OK cli: apify"
elif { [ -f "$HOME/.apify/auth.json" ] || [ -f "$USERPROFILE/.apify/auth.json" ]; } \
     && npx --yes apify-cli@latest info >/dev/null 2>&1; then
  echo "AUTH_OK cli: npx --yes apify-cli@latest"
else
  echo "AUTH_MISSING"
fi

这些检查按成本从低到高排列。npx 回退方式大约需要 4 秒, 因此仅当 Apify 配置目录显示之前登录过时才会运行——首次使用的用户会立即收到 AUTH_MISSING,而不会等待一个本来就找不到会话的程序包下载完成。

有意同时检查 $HOME 和 $USERPROFILE。 在 Windows 上,两者可能指向不同位置——沙箱和某些 CI 镜像会重新映射 $HOME,而 Apify CLI 仍会将文件写入 $USERPROFILE\.apify。若只检查 $HOME,就会报告 AUTH_MISSING,即使用户实际上已成功登录;随后此技能还会让用户去注册已有的账号。如果你在一台认为已完成身份验证的计算机上看到 AUTH_MISSING,请先检查这两个路径,再判断结果是否可信。

两种 AUTH_OK 模式不可互换——预检会告诉你该使用哪种调用方式。

  • AUTH_OK curl — 环境中存在令牌。此技能中的 HTTP 调用可按原样使用。
  • AUTH_OK cli: <prefix> — Apify CLI 持有会话,无法从磁盘读取令牌。~/.apify/auth.json 仅包含账号元数据(用户名、套餐、代理组——没有 token 字段);当前版本的 CLI 会将令牌保存在操作系统的密钥后端中。不要尝试从该文件中提取令牌:伪造的 Authorization: Bearer 标头会返回 401,看起来与令牌被撤销完全一样。请改用 apify call,并在前面加上预检在 cli: 后输出的内容(apify,或当 CLI 不在 PATH 中时使用 npx --yes apify-cli@latest)。
如果预检输出 AUTH_OK cli

此技能中的每个载荷仍然适用——将其写入文件,然后交给 apify call,而不是 curl:

cat > /tmp/ig-input.json <<'EOF'
{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"details","resultsLimit":1}
EOF

apify call apify/instagram-scraper --input-file /tmp/ig-input.json --output-dataset --silent
  • 始终显式传入 Actor id。 如果不提供 id,apify call 会运行本地 .actor/actor.json 中定义的 Actor——在 Actor 仓库内,这会悄无声息地运行错误的内容。
  • 优先使用 --input-file,而不是内联的 -i '{...}'。 内联 JSON 必须能通过 shell 解析,而 PowerShell 和 cmd.exe 会破坏引号。文件则不会。--input-file - 会读取标准输入。
  • --output-dataset 会将数据集输出到标准输出——与 run-sync-get-dataset-items 返回的数组相同,因此下文 Output 部分中的所有字段都完全一致。--silent 会让运行日志不进入标准输出,确保输出可解析为 JSON。
  • apify call 会等待运行结束,因此下方的异步轮询模式仅适用于 curl 方式。添加 --timeout <seconds> 可限制长时间运行的任务。
  • 运行费用会计入 CLI 当前登录的账号。apify info 会显示该账号——如果用户可能拥有多个账号,值得向其展示。
如果预检输出 AUTH_MISSING

在用户的浏览器中打开 Apify 注册页面,然后索取令牌。原样运行以下命令——它会根据平台选择正确的命令;如果没有浏览器(CI、SSH、容器),则会退而打印 URL:

URL="https://console.apify.com/sign-up?fpr=z8j1nz"
# xdg-open is checked before open: on some Linux distros `open` is openvt, not a browser.
if command -v xdg-open >/dev/null 2>&1; then xdg-open "$URL"
elif command -v open >/dev/null 2>&1; then open "$URL"
elif command -v powershell.exe >/dev/null 2>&1; then powershell.exe -NoProfile -Command "Start-Process '$URL'"
elif command -v cmd.exe >/dev/null 2>&1; then cmd.exe /c start "" "$URL"
else echo "Open this URL in a browser: $URL"
fi

然后告诉用户正在进行什么操作——但不要等待回复:

我已在你的浏览器中打开 Apify 的注册页面。Instagram 数据通过 Apify 获取,入门免费——每月有价值 $5 的额度,无需信用卡,足够获取约 2,000 条结果。

请在该页面注册(如果你已有账号,也可以登录)。我也会立即打开授权步骤——批准后,这台机器就会保持连接,以后你就不必再进行这些操作。

注册链接是推荐链接。

立即运行登录命令。不要先询问用户是否已完成注册——此命令会打开 Apify 的授权页面,该页面本身也提供注册功能,然后会一直等待,直到用户完成操作。命令本身就是等待,因此无需检测,也无需额外往返:

timeout 300 npx --yes apify-cli@latest login -m console
  • 必须使用 -m console。 直接运行 apify login 会先提示选择登录方式,并在 Agent 无法响应的 stdin 上无限期挂起。-m console 会直接进入浏览器流程。
  • timeout 300 会限制等待时间,避免用户放弃注册后会话一直挂起。退出代码 124 表示超时——用户已离开,因此应询问他们是否仍想继续,而不是默默重试。
  • 成功后会输出 "Success: You are logged in to Apify as <username>. Your token is stored in your OS keyring." 从此以后,预检在所有后续会话中都会解析为 AUTH_OK cli——无需粘贴或存储令牌,也不会将令牌泄露到对话记录中。

然后重新运行预检。这才是确认是否成功的方法——不要依赖提示消息,也不要假设浏览器步骤已顺利完成:

预检现在显示含义操作
AUTH_OK cli: <prefix>已登录并持久保存继续处理请求
AUTH_MISSING登录未完成明确说明这一点,并询问是否重试——不要循环重试

预检中的 CLI 分支只会运行 apify info:存在会话时退出代码为 0,不存在时则为非零。它与刚才产生 AUTH_MISSING 的检查相同,因此重新运行预检是真正的确认,而不是重复你原本的判断。

有两种值得指出的失败情况,因为从外部看都像是成功了:用户关闭授权标签页但未批准(超时时退出代码为 124),以及用户完成注册却始终没有进入批准步骤。这两种情况下,注册可能已经成功,但这台机器仍未连接——这正是应该相信预检而非注册结果的原因。

先打开注册标签页,再进行登录。 推荐归因记录在注册页面上;之后的授权步骤只是让这台机器连接到此时已有的账号。如果顺序颠倒,就会丢失推荐归因。

绝不向用户索要其令牌

不要在对话中请求、接受或处理 Apify API 令牌。 上面的浏览器登录正是为了确保密钥不会到达 Agent:CLI 直接从 Apify 获取令牌并将其写入 OS 密钥环,而此技能只读取该操作的结果(apify info 的退出代码),绝不会读取令牌值。

如果用户主动提供令牌,请婉拒,并引导他们使用以下两种安全方式之一。 粘贴到会话中的任何内容都是有效凭据,会留在对话记录、滚动缓冲区以及记录对话的任何日志中。

无头环境——CI、SSH、容器,以及任何无法打开浏览器完成 OAuth 往返流程的环境。用户必须在启动 Agent 之前自行通过会话外的方式设置凭据:

# the user runs this in their own shell / CI secret store — not via the agent
export APIFY_TOKEN="…"

这样,预检就会报告 AUTH_OK curl,一切都能正常工作,而且令牌值不会经过对话。

或者使用 CLI 自带的提示,它会从标准输入读取令牌,而不是从对话中读取:

npx --yes apify-cli@latest login -m manual

避免使用 login -t <token>。将密钥作为命令行参数传递,会使其暴露在进程列表中,供机器上的所有其他进程查看,也会留在 shell 历史记录中。它还会在验证之前清除已存储的会话,因此输入错误或过期的值会让用户退出原本正常工作的会话。

当令牌确实存在于环境中时,始终将其引用为 $APIFY_TOKEN,并让 shell 展开它——本技能中的所有示例都是如此。切勿将令牌的实际值替换到命令、日志行或消息中。


获取数据

一次调用即可同步返回项目。适用于能在约 60 秒内完成的任务。这是 AUTH_OK curl 形式——使用 AUTH_OK cli 时,将相同的 -d 负载放入文件,然后按上文所示通过 apify call 运行。

curl -s -X POST \
  "https://api.apify.com/v2/acts/apify~instagram-scraper/run-sync-get-dataset-items?timeout=120" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -H "User-Agent: instagram-scraper-skill" \
  -d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"details","resultsLimit":1}'

User-Agent 标头仅用于在日志中区分由本技能发起的运行。它不包含个人数据,可以移除。

选择 resultsType
值返回内容
details个人资料元数据:粉丝数、关注数、简介、帖子数、个人资料图片。成本最低——每个个人资料仅 1 条结果。
posts帖子动态
reels仅 Reels
stories当前正在发布的快拍
comments帖子 URL 下的评论
mentions提及某个账号的帖子

如果用户只需要个人资料数据,就选择 details。为了回答这类问题而使用 posts,成本最高可多出 100 倍,却没有任何好处。

输入参考
字段类型默认值备注
directUrls数组—个人资料、帖子、Reel、主题标签、地点或音频 URL——参见下文的 URL 处理
resultsType字符串posts参见上表
resultsLimit整数100每个 URL 的上限。影响成本——务必设置。
onlyPostsNewerThan字符串—YYYY-MM-DD、ISO 格式,或 1 day / 2 months。UTC
search字符串—关键字,用于替代 directUrls
searchType字符串hashtaghashtag、profile、place、user
searchLimit整数10每次搜索发现的项目数上限
addParentData布尔值false为每个项目添加生成该项目的查询信息

还有四个字段可用,但未列入已发布的输入架构。 它们记录在 Actor 的 README 中,并已验证可正常工作——可以放心使用:

字段类型适用于备注
addProfileStatistics布尔值details添加 statistics 对象(约 60 个字段)——account_type(1 为 Personal,2 为 Business,3 为 Creator)、media_count、total_clips_count、category、city_name、联系信息字段。对私人个人资料也有效
skipPinnedPosts布尔值posts排除置顶帖子
isNewestComments布尔值comments按最新优先排序。仅限付费套餐——免费套餐使用默认顺序
includeNestedComments布尔值comments包含回复。仅限付费套餐。 每条回复都是单独的结果,因此总数会超过 resultsLimit
URL 处理

directUrls 比看起来更宽容。以下格式都可接受:

  • 只要可以使用个人主页 URL 的地方,就可以使用个人主页 ID——直接使用数字 ID 即可
  • instagram.com/_u/natgeo/profilecard/——会剥除 _u 和 profilecard
  • instagram.com/stories/username/——会简化为用户名
  • instagram.com/share/BAC6cDeb_-——会解析为规范帖子 URL
  • instagram.com/explore/locations/7538318/——只需提供 ID,无需 slug

**不支持:**在 posts、reels、mentions 或 details 中使用 URL 格式的数字帖子 ID(instagram.com/p/3369450800358839406/)。 请改用 shortCode 格式。这种格式在 comments 中确实可用。

**URL 类型决定输出架构。**Hashtag、地点、音频和探索 URL 即使与其他内容模式搭配使用,也会返回各自的元数据——因此,地点 URL 配合 resultsType: "details" 时,返回的是地点详情,而非个人主页详情。

这些限制很容易踩坑
  • **每次运行只能处理一种内容类型。**无法在一次调用中同时获取帖子和评论。请运行两次。
  • URL 优先于搜索。directUrls 和 search 不能同时使用;若两者都存在,将采用 URL 并忽略搜索。
  • Hashtag 必须以纯文本形式输入——使用 travel,不要使用 #travel。
  • 多个搜索词用逗号分隔,并放在同一个字符串中:"travel, fitness"。
  • **免费套餐每篇帖子大约只能获取一页评论(约 15 条)。**付费套餐没有此限制。不要将其报告为错误——请如实说明。
常见任务

Actor 提供的每项功能及其对应的 payload。将 -d '...' 替换到上面的 curl 命令中。

获取多个账号的个人主页统计数据——成本最低的调用:

-d '{"directUrls":["https://www.instagram.com/nasa/","https://www.instagram.com/natgeo/"],"resultsType":"details","resultsLimit":1}'

获取某个个人主页最近 30 天的帖子:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"posts","resultsLimit":30,"onlyPostsNewerThan":"1 month"}'

获取某个个人主页的 reels:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"reels","resultsLimit":20}'

获取某个个人主页当前的快拍——只有在快拍仍有效时才会返回内容,而且通常需要付费套餐:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"stories","resultsLimit":20}'

提及某个账号的帖子——用于品牌监测:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"mentions","resultsLimit":50}'

获取某篇帖子的评论:

-d '{"directUrls":["https://www.instagram.com/p/SHORTCODE/"],"resultsType":"comments","resultsLimit":50}'

获取某个 hashtag 下的帖子:

-d '{"search":"wildlifephotography","searchType":"hashtag","searchLimit":50,"resultsType":"posts","resultsLimit":50}'

按关键词查找账号——user 会返回账号记录:

-d '{"search":"climate photographer","searchType":"user","searchLimit":20,"resultsType":"details"}'

按名称搜索个人主页——profile 会匹配个人主页页面:

-d '{"search":"national geographic","searchType":"profile","searchLimit":20,"resultsType":"details"}'

获取某个地点的帖子:

-d '{"search":"Yosemite National Park","searchType":"place","searchLimit":20,"resultsType":"posts","resultsLimit":50}'

获取某个地点或 hashtag URL 下的帖子——直接传入 URL,而不是进行搜索:

-d '{"directUrls":["https://www.instagram.com/explore/tags/wildlife/"],"resultsType":"posts","resultsLimit":50}'

追踪每篇帖子对应的查询——在一次运行中抓取多个 hashtag 或个人主页时,addParentData 会在每项数据中标记其来源,方便之后对结果进行分组:

-d '{"search":"wildlife","searchType":"hashtag","searchLimit":30,"resultsType":"posts","resultsLimit":30,"addParentData":true}'

深入的个人主页统计数据——账号类型、帖子和 reels 数量、类别、城市以及公开联系字段。私密个人主页也适用:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"details","resultsLimit":1,"addProfileStatistics":true}'

获取最近的帖子,不包括置顶帖子:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"posts","resultsLimit":30,"skipPinnedPosts":true}'

仅获取置顶帖子——将同一对参数反向设置:

-d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"posts","skipPinnedPosts":false,"onlyPostsNewerThan":"0 minutes"}'

按时间从新到旧获取评论,包括回复——这两项都仅限付费套餐:

-d '{"directUrls":["https://www.instagram.com/p/SHORTCODE/"],"resultsType":"comments","resultsLimit":50,"isNewestComments":true,"includeNestedComments":true}'

输出

每种内容类型都会生成不同的架构,不能在一次运行中合并。 以下示例省略了部分字段,仅保留实用字段;传入的 URL 类型可能会覆盖结果结构(即使使用其他模式,位置 URL 也会返回地点数据)。

帖子 / 轮播图(resultsType: "posts")——23 个字段:

{
  "inputUrl": "https://www.instagram.com/p/DZxvMgyH8yR/",
  "id": "3923124318436838545",
  "type": "Image",
  "shortCode": "DZxvMgyH8yR",
  "caption": "In the Democratic Republic of the Congo…",
  "hashtags": [], "mentions": ["carstenpeter"],
  "url": "https://www.instagram.com/p/DZxvMgyH8yR/",
  "likesCount": 34512, "commentsCount": 210,
  "timestamp": "2026-06-22T17:24:20.000Z",
  "displayUrl": "https://…", "images": [], "childPosts": [],
  "dimensionsWidth": 1080, "dimensionsHeight": 1350, "alt": "…",
  "ownerUsername": "natgeo", "ownerFullName": "National Geographic", "ownerId": "787132",
  "firstComment": "…", "latestComments": [], "isCommentsDisabled": false
}

Reel(resultsType: "reels")——31 个字段。在帖子字段基础上增加视频字段:

{
  "…all post fields…": "…",
  "videoUrl": "https://…", "videoDuration": 28.28,
  "videoViewCount": 120433, "videoPlayCount": 98221,
  "audioUrl": "https://…", "musicInfo": {}, "productType": "clips",
  "isPinned": false
}

评论(resultsType: "comments"):

{
  "postUrl": "https://www.instagram.com/p/DZ5T2XPllXv/",
  "commentUrl": "https://www.instagram.com/p/DZ5T2XPllXv/c/18093536360613690",
  "id": "18093536360613690",
  "text": "We love you NASA 💙🌎🌊",
  "ownerUsername": "mavideniz5521__", "ownerProfilePicUrl": "https://…",
  "timestamp": "2026-06-22T17:24:20.000Z",
  "likesCount": 4, "repliesCount": null, "replies": null,
  "owner": { "username": "…" }
}

只有设置 includeNestedComments: true(付费)时,才会填充 repliesCount 和 replies。

个人资料详情(resultsType: "details")——22 个字段。已验证为实时数据:

{
  "inputUrl": "https://www.instagram.com/nasa/",
  "id": "528817151", "username": "nasa", "url": "https://www.instagram.com/nasa/",
  "fullName": "NASA", "biography": "Making the seemingly impossible, possible. ✨",
  "externalUrl": "https://www.nasa.gov/", "externalUrls": [],
  "followersCount": 104423132, "followsCount": 92, "postsCount": 4888,
  "verified": true, "private": false,
  "isBusinessAccount": true, "businessCategoryName": "Government Agencies",
  "joinedRecently": false, "fbid": "17841401474538262",
  "profilePicUrl": "https://…", "profilePicUrlHD": "https://…",
  "highlightReelCount": 5, "igtvVideoCount": 171,
  "latestPosts": [], "relatedProfiles": []
}

details 已包含 latestPosts(最多 12 条)和 relatedProfiles(最多 48 个),无需额外费用。 如果用户既想了解个人资料的数据,又想查看近期帖子,一次 details 调用就能满足需求——通常没必要再调用一次 posts。

设置 addProfileStatistics: true 后,会附加一个 statistics 对象(约 60 个字段): account_type(1 表示个人,2 表示商业,3 表示创作者)、media_count、total_clips_count、 category、city_name、address_street、zip、bio_links、mutual_followers_count。

提及(resultsType: "mentions")——21 个字段,结构与帖子相同,另含 taggedUsers、 music、carouselImages、carouselImageCount。

地点详情(位置 URL)——16 个字段:

{
  "inputUrl": "https://www.instagram.com/explore/locations/7538318/",
  "name": "Copenhagen, Denmark", "location_id": "7538318", "slug": "copenhagen",
  "lat": 55.6761, "lng": 12.5683,
  "location_address": "…", "location_city": "…", "location_zip": "…",
  "phone": "…", "category": "…", "price_range": "…",
  "media_count": 1284322, "ig_business": "…", "posts": [], "hours": {}
}

话题标签详情(话题标签 URL)——15 个字段,包括 SEO 风格的附加信息: name、postsCount、url、id、posts、postsPerDay、difficulty、related、 frequent、average、rare、relatedFrequent、relatedAverage、relatedRare。

搜索结果包含 searchTerm 和 searchSource,可据此判断每行结果对应的查询:

  • 话题标签搜索——6 个字段:searchTerm、searchSource、name、postsCount、url、id
  • 地点搜索——17 个字段:地点详情结构,以及 searchTerm / searchSource
  • 个人资料搜索——13 个字段:结构与帖子相同,包含 ownerUsername、ownerFullName、taggedUsers
图片是 URL,而非文件

每个图片和视频字段都是指向 Instagram CDN 的链接。不会下载任何内容,这些链接带有签名,几小时后就会过期。 如果用户需要媒体文件本身,应尽快使用自己的带宽获取。

运行时间超过一分钟

对于大型任务,应以异步方式启动并轮询,而不是一直占用同步连接:

RUN=$(curl -s -X POST "https://api.apify.com/v2/acts/apify~instagram-scraper/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"directUrls":["https://www.instagram.com/nasa/"],"resultsType":"posts","resultsLimit":1000}' \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['id'])")

curl -s "https://api.apify.com/v2/actor-runs/$RUN?waitForFinish=60" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['status'])"

curl -s "https://api.apify.com/v2/actor-runs/$RUN/dataset/items?format=json" \
  -H "Authorization: Bearer $APIFY_TOKEN"

轮询,直到 status 为 SUCCEEDED,然后获取条目。FAILED 或 ABORTED 表示应停止并报告——不要悄悄重试一项需要用户付费的任务。


错误

状态含义处理方式
401Token 缺失、错误或已撤销重新执行上文的 Setup 预检。不要重试调用。如果 CLI 已登录,但 curl 路径返回 401,说明 Token 是编造的——改用 apify call。
402 / insufficient credit月度额度已用尽告知用户;他们可以等到每月额度重置,或前往 https://apify.com/pricing?fpr=z8j1nz 升级(推荐链接)。不要重试。
404Actor ID 或运行 ID 无效检查 URL 使用的是带波浪号的 apify~instagram-scraper,而不是斜杠。
408 / 超时同步调用超出时限改用上文的异步模式。
空数组内容为私密、已删除或确实为空如实报告。不要假定这是计费问题。
apify call 以非零状态退出运行失败,或 CLI 会话已失效CLI 会输出原因和运行 URL——先查看,不要重试。如果 apify info 也失败,则会话已过期:重新执行 Setup。

空结果也是有效答案。私密账号、已删除的帖子和没有动态的话题标签都可能确实不返回任何内容。

需要准确说明的数据特点,而非视为错误
  • likesCount: -1 表示创作者隐藏了点赞数。Instagram 不会公开该数据。应说明“创作者已隐藏”,切勿将其报告为零或错误。
  • 私人账号通常不会返回任何内容。有一种例外:如果私人账号被标记为帖子上的协作者,且任一共同作者的账号为公开账号,Instagram 会将该帖子视为公开内容,并在结果中显示。
  • 指标可能与应用中显示的不同。 Instagram 向未登录的访客展示的计数略有不同,而且较大的计数会不断变化。出现细微差异是正常的。
  • 结果数量无法保证。 没有固定上限;实际返回数量取决于 Instagram 公开的数据。若要确认理论上应有哪些结果,请在无痕窗口中打开 URL。

控制成本

用户按结果付费。务必将这视为实际费用。

  • 始终设置 resultsLimit。 每个 URL 的默认值为 100;如果用户实际上只需要 25 个结果,使用默认值进行一次包含 5 个 URL 的调用就会产生 500 个结果。
  • 对于有关粉丝数、简介或帖子数量的问题,使用 resultsType: "details"。它会为每个账号返回一个结果。
  • 从小规模开始。 对于任何范围开放的问题,先运行有数量限制的初步查询,向用户展示返回的内容,并在扩大规模前征求确认。
  • 开始大规模查询前,说明费用。 按每 1,000 个结果 $2.30 计算,5,000 个结果的任务费用约为 $11.50。
  • 收到 401 或 402 后,切勿重复相同调用——每次尝试都可能产生费用,而且都不会成功。

评论

支持 Markdown