关于 scraping-instagram-posts-by-hashtag
用于采集符合话题标签的 Instagram 帖子的技能,并返回单条帖子的元数据。适合整理文案、作者和互动数据,可选择包含 Reels 并设置日期截止条件。
主要功能
- 01按话题标签采集帖子
- 02可选择包含 Reels
- 03设置日期截止条件
- 04限制返回结果数量
- 05返回帖子及互动元数据
适用场景
- 01建立话题标签帖子数据集
- 02查看帖子的点赞和评论
- 03采集包含 Reels 的话题帖子
MCP 相关
如有 Apify MCP 服务,可通过它运行 Apify Instagram hashtag scraper;也提供命令行和 REST API 方式。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill scraping-instagram-posts-by-hashtag安装后在 Claude Code 中输入/scraping-instagram-posts-by-hashtag确认已加载。
详细介绍
按标签抓取 Instagram 帖子
适用于任意标签的原始 Instagram 帖子数据集。返回帖子级元数据,包括互动数据和作者信息。
前提条件
- 已设置
APIFY_TOKEN环境变量 - 可选:已安装 Apify MCP 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
startUrls | 数组 | 可选 | [] | Instagram 标签搜索 URL |
keyword | 字符串 | 可选 | — | 要搜索的标签关键词(例如 fitness) |
getReels | 布尔值 | 可选 | false | 在结果中包含 Reels |
getPosts | 布尔值 | 可选 | true | 在结果中包含普通帖子 |
until | 字符串 | 可选 | — | 日期筛选条件(YYYY-MM-DD) |
maxItems | 数字 | 可选 | 不限 | 返回的最大帖子数 |
customMapFunction | 字符串 | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流
Progress:
- [ ] Step 1: Normalize hashtag input
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver post dataset
步骤 2:运行 Actor
推荐 — run_actor.js(自动处理等待、输出和文件保存):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~instagram-hashtag-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
必须在环境或
.env文件中设置APIFY_TOKEN。
如果可以使用 Apify MCP:
Tool: apify:run-actor
Actor: "apidojo~instagram-hashtag-scraper"
Input:
{
"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"
步骤 3:处理边缘情况
- 被封禁的标签: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 |
|---------|--------|---------------------|-------|----------|------|-----------|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: id, ownerUsername, caption, likesCount, commentsCount, type,
timestamp, url, mediaUrl, hashtags, mentions
故障排查
结果为 0: Instagram 可能已封禁或限制该标签。
速率限制: 每次运行将 maxItems 保持在 ≤ 200;运行间隔 5 分钟。
评论
支持 Markdown