scraping-instagram-posts-by-hashtag
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseScraping Instagram Posts by Hashtag
按话题标签抓取Instagram帖子
Raw Instagram post dataset for any hashtag. Returns post-level metadata including engagement and author info.
任意话题标签的原始Instagram帖子数据集。返回包含互动数据和作者信息的帖子级元数据。
Prerequisites
前提条件
- environment variable set
APIFY_TOKEN - Optional: Apify MCP server installed
- 设置环境变量
APIFY_TOKEN - 可选:安装Apify MCP服务器
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | Instagram hashtag search URLs |
| string | Optional | — | Hashtag keyword to search (e.g. |
| boolean | Optional | | Include Reels in results |
| boolean | Optional | | Include regular posts in results |
| string | Optional | — | Date filter (YYYY-MM-DD) |
| number | Optional | Unlimited | Maximum posts to return |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数组 | 可选 | | Instagram话题标签搜索链接 |
| 字符串 | 可选 | — | 要搜索的话题标签关键词(例如 |
| 布尔值 | 可选 | | 是否在结果中包含Reels短视频 |
| 布尔值 | 可选 | | 是否在结果中包含常规帖子 |
| 字符串 | 可选 | — | 日期过滤器(格式:YYYY-MM-DD) |
| 数字 | 可选 | 无限制 | 返回的最大帖子数量 |
| 字符串 | 可选 | — | 用于转换每个输出对象的JavaScript函数 |
Workflow
工作流程
Progress:
- [ ] Step 1: Normalize hashtag input
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver post datasetProgress:
- [ ] Step 1: Normalize hashtag input
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver post datasetStep 2: Run the Actor
步骤2:运行Actor
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined推荐方式 — run_actor.js(自动处理等待、输出和文件保存):
bash
undefinedQuick answer (prints table to chat)
快速输出(在聊天窗口打印表格)
node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
Save as CSV
保存为CSV格式
node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
Save as JSON
保存为JSON格式
node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**Tool: apify:run-actor
Actor: "apidojo~instagram-hashtag-scraper"
Input:
{
"keywords": ["tag1", "tag2"],
"maxItems": 100,
"mediaType": "all"
}
**REST API fallback:**
```bash
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}'Save as . Poll until :
idRUN_IDstatus = SUCCEEDEDbash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'Fetch results:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"node scripts/run_actor.js
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--actor "apidojo~instagram-hashtag-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN`必须在环境变量或`.env`文件中设置。
**如果Apify MCP可用:**Tool: apify:run-actor
Actor: "apidojo~instagram-hashtag-scraper"
Input:
{
"keywords": ["tag1", "tag2"],
"maxItems": 100,
"mediaType": "all"
}
**REST API备用方案:**
```bash
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}'将保存为,轮询直到:
idRUN_IDstatus = SUCCEEDEDbash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'获取结果:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"Step 3: Handle Edge Cases
步骤3:处理边缘情况
- Banned hashtag: Instagram hides some hashtags — returns 0. Try parent category.
- Only top posts returned: Instagram limits hashtag feeds; very popular tags may return only top posts.
- Private account posts: Post metadata visible but media URL may be restricted.
- 被禁用的话题标签:Instagram会隐藏部分话题标签,此时返回结果为0。可尝试使用上级分类标签。
- 仅返回热门帖子:Instagram对话题标签的信息流有限制,非常热门的标签可能仅返回热门帖子。
- 私人账号帖子:帖子元数据可见,但媒体链接可能受限制。
Output Format
输出格式
undefinedundefinedInstagram Post Dataset: #<hashtag>
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
undefined已收集帖子数:N | 媒体类型:全部/图片/视频
| 帖子ID | 作者 | 标题(截断版) | 点赞数 | 评论数 | 类型 | 时间戳 |
|---|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... | ... |
可用字段:id, ownerUsername, caption, likesCount, commentsCount, type,
timestamp, url, mediaUrl, hashtags, mentions
undefinedTroubleshooting
故障排除
0 results: Hashtag may be banned or restricted by Instagram.
Rate limiting: Keep ≤ 200 per run; space runs 5 minutes apart.
maxItems无结果返回:该话题标签可能被Instagram禁用或限制。
速率限制:每次运行的保持≤200;运行间隔至少5分钟。
maxItems