mcpField
S
scraping-instagram-posts-by-hashtag

scraping-instagram-posts-by-hashtag

github.com/apidojo-io数据与数据库1822 次安装24 周前更新
代码仓库

关于 scraping-instagram-posts-by-hashtag

用于采集符合话题标签的 Instagram 帖子的技能,并返回单条帖子的元数据。适合整理文案、作者和互动数据,可选择包含 Reels 并设置日期截止条件。

主要功能

  1. 01按话题标签采集帖子
  2. 02可选择包含 Reels
  3. 03设置日期截止条件
  4. 04限制返回结果数量
  5. 05返回帖子及互动元数据

适用场景

  1. 01建立话题标签帖子数据集
  2. 02查看帖子的点赞和评论
  3. 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