SuperAPI AI 工具集

scraping-instagram-location-posts

数据与分析

查看项目

更新于 10-15 12:09

技能介绍

用途

该技能用于导出在任意物理地点被标记的 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 函数

工作流:

  1. 解析地点 ID。
  2. 运行 instagram-location-scraper。
  3. 轮询直至状态为 SUCCEEDED。
  4. 交付帖子数据集。

第 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 无效或地点被移除时无法获取数据。
  • 收费、价格等信息暂未提供。