用途
本技能用于按话题标签(Hashtag)抓取 Instagram 帖子,基于 Apify 平台上的 apidojo Instagram scraper 运行。它返回原始 Instagram 帖子数据集,包含帖子级元数据,包括互动数据和作者信息。当用户要求获取某话题标签下的 Instagram 帖子、抓取相关数据时触发。
主要能力
- 按话题标签关键词抓取 Instagram 帖子
- 可选择是否包含 Reels
- 可选择是否包含普通帖子
- 支持日期过滤(YYYY-MM-DD)
- 支持设置最大返回帖子数
- 支持通过自定义 JavaScript 函数对每个输出对象进行转换
- 输出字段包括:id、ownerUsername、caption、likesCount、commentsCount、type、timestamp、url、mediaUrl、hashtags、mentions
输入参数
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| startUrls | array | 可选 | [] | Instagram 话题标签搜索 URL |
| keyword | string | 可选 | — | 要搜索的话题标签关键词(例如 fitness) |
| getReels | boolean | 可选 | false | 是否在结果中包含 Reels |
| getPosts | boolean | 可选 | true | 是否在结果中包含普通帖子 |
| until | string | 可选 | — | 日期过滤(YYYY-MM-DD) |
| maxItems | number | 可选 | 不限 | 返回的最大帖子数 |
| customMapFunction | string | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
使用方式
前置条件
- 设置 APIFY_TOKEN 环境变量
- 可选:安装 Apify MCP 服务器
工作流程
- 规范化话题标签输入
- 运行 instagram-scraper
- 轮询直到状态为 SUCCEEDED
- 返回帖子数据集
运行 Actor(推荐使用 run_actor.js,自动处理等待、输出和文件保存)
快速回答(在聊天中打印表格):
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}'
保存为 CSV:
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
保存为 JSON:
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKEN 必须设置在环境变量或 .env 文件中。
如果 Apify MCP 可用
工具:apify:run-actor Actor:"apidojo~instagram-hashtag-scraper" 输入:
{
"keywords": ["tag1", "tag2"],
"maxItems": 100,
"mediaType": "all"
}
REST API 备用方式
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~instagram-hashtag-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["tag1"], "maxItems": 100}'
保存 id 为 RUN_ID。轮询直到 status = SUCCEEDED:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
获取结果:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
边界情况处理
- 被封禁的话题标签:Instagram 会隐藏某些话题标签,返回 0。可尝试父级分类。
- 仅返回热门帖子:Instagram 会限制话题标签信息流;非常热门的话题标签可能只返回热门帖子。
- 私密账号帖子:帖子元数据可见,但媒体 URL 可能受限。
输出格式
# Instagram Post Dataset: #<hashtag>
Posts collected: N | Media type: all/image/video
| Post ID | Author | Caption (truncated) | Likes | Comments | Type | Timestamp |
|---------|--------|---------------------|-------|----------|------|-----------|
| ... | ... | ... | ... | ... | ... | ... |
可用字段:id、ownerUsername、caption、likesCount、commentsCount、type、timestamp、url、mediaUrl、hashtags、mentions
故障排除
- 0 结果:话题标签可能被 Instagram 封禁或限制。
- 速率限制:每次运行保持 maxItems ≤ 200;运行间隔 5 分钟。