用途
该技能用于导出在任意物理地点被标记的 Instagram 帖子。它使用 Instagram 的地点 ID 或地点名称来收集带有地理标签的内容,底层调用 apidojo 在 Apify 平台上的 Instagram Location scraper。
主要能力
- 根据 Instagram 地点页面 URL(startUrls)或地点 ID(locationIds)抓取该地点被标记的帖子。
- 支持设置最大返回帖子数量(maxItems,留空为不限)。
- 支持日期过滤(until,格式 YYYY-MM-DD)。
- 支持传入自定义 JavaScript 函数(customMapFunction)来转换每个输出对象。
使用方式
前置条件:
- 设置 APIFY_TOKEN 环境变量。
- 可选:安装 Apify MCP 服务器。
输入参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| startUrls | array | 否 | [] | Instagram 地点页面 URL |
| locationIds | array | 否 | [] | Instagram 地点 ID |
| maxItems | number | 否 | 不限 | 返回的最大帖子数量 |
| until | string | 否 | — | 日期过滤(YYYY-MM-DD) |
| customMapFunction | string | 否 | — | 转换每个输出对象的 JavaScript 函数 |
工作流:
- 解析地点 ID。
- 运行 instagram-location-scraper。
- 轮询直至状态为 SUCCEEDED。
- 交付帖子数据集。
第 2 步:运行 Actor。
推荐使用 run_actor.js(自动处理等待、输出和文件保存):
# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
--actor "apidojo~instagram-location-scraper" \
--input '{"param": "value"}'
# 保存为 CSV
node scripts/run_actor.js \
--actor "apidojo~instagram-location-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# 保存为 JSON
node scripts/run_actor.js \
--actor "apidojo~instagram-location-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKEN 必须设置在环境变量或 .env 文件中。
如果 Apify MCP 可用:
工具:apify:run-actor Actor:"apidojo~instagram-location-scraper" 输入:
{
"locationIds": ["<LOCATION_ID>"],
"maxItems": 100
}
REST API 回退方案:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~instagram-location-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locationIds": ["<LOCATION_ID>"], "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"
边界情况处理
- 找不到地点 ID:ID 无效或地点已从 Instagram 移除——向用户报告。
- 帖子量少:小众地点可能少于 20 条帖子——返回所有可用内容。
- feed 中的私密账号帖子:元数据可见,但媒体可能受限。
输出格式
# Instagram Location Posts: <location name>
Location ID: <id> | Posts collected: N
| Post ID | Author | Caption (truncated) | Likes | Comments | Type | Timestamp |
|---------|--------|---------------------|-------|----------|------|-----------|
| ... | ... | ... | ... | ... | ... | ... |
故障排查
- 没有地点 ID:访问 https://www.instagram.com/explore/locations/ 进行搜索——ID 就在 URL 中。
- 0 结果:地点可能已被重命名或合并——搜索新的 ID。
适用场景
需要收集某一物理地点或场所相关的 Instagram 公开帖子数据,并进行导出或进一步处理的场景。
限制
- 需要 APIFY_TOKEN 环境变量。
- 私密账号帖子的媒体内容可能受限。
- 小众地点可用帖子数量可能较少。
- 地点 ID 无效或地点被移除时无法获取数据。
- 收费、价格等信息暂未提供。