finding-restaurant-brands-on-instagram

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Finding Restaurant Brands On Instagram

在Instagram上寻找餐饮品牌



Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
array
[]
Instagram URLs — profiles, hashtags, locations, audio pages, reels
until
stringOptionalScrape posts until this date (YYYY-MM-DD)
maxItems
numberOptionalUnlimitedMaximum posts to return
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型必填默认值说明
startUrls
数组
[]
Instagram 链接 — 个人主页、话题标签、地理位置、音频页面、Reels
until
字符串可选抓取帖子的截止日期(格式:YYYY-MM-DD)
maxItems
数字可选无限制返回的最大帖子数量
customMapFunction
字符串可选用于转换每个输出对象的JavaScript函数

How to Run

运行方法

Using run_actor.js (recommended)

使用run_actor.js(推荐)

bash
undefined
bash
undefined

Quick answer (table)

Quick answer (table)

node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}'
node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}'

Save as CSV

Save as CSV

node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}' --output results.csv --format csv
node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}' --output results.csv --format csv

Save as JSON

Save as JSON

node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}' --output results.json --format json
undefined
node scripts/run_actor.js --actor "apidojo~instagram-scraper" --input '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}' --output results.json --format json
undefined

REST API fallback

REST API备选方案

bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}'
If Apify MCP is available: Use the Apify MCP
call_actor
tool with actor
apidojo~instagram-scraper
and the input above.

bash
curl -X POST "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://www.instagram.com/explore/tags/restaurantowner/"], "maxItems": 100}'
如果Apify MCP可用: 使用Apify MCP的
call_actor
工具,指定actor为
apidojo~instagram-scraper
并传入上述输入参数。

Scoring & Ranking

评分与排名

Score each account by:
  • engagement_rate = (likeCount + commentCount) / followerCount
    → weight 0.4
  • followerCount
    → normalized 0-1, weight 0.3
  • has_business_bio
    (bio contains phone/website/address keywords) → weight 0.3
python
score = 0.4 * min(engagement_rate / 0.05, 1.0) + 0.3 * min(followerCount / 50000, 1.0) + 0.3 * int(has_business_bio)

按照以下维度为每个账号评分:
  • engagement_rate = (点赞数 + 评论数) / 粉丝数
    → 权重0.4
  • 粉丝数
    → 归一化至0-1区间,权重0.3
  • has_business_bio
    (个人简介包含电话/网站/地址关键词)→ 权重0.3
python
score = 0.4 * min(engagement_rate / 0.05, 1.0) + 0.3 * min(followerCount / 50000, 1.0) + 0.3 * int(has_business_bio)

Classification

分类等级

ScoreTierLabel
≥ 0.70APRIME_PROSPECT
0.40–0.69BWARM_LEAD
< 0.40CLOW_PRIORITY

分数等级标签
≥ 0.70APRIME_PROSPECT
0.40–0.69BWARM_LEAD
< 0.40CLOW_PRIORITY

Edge Cases

边缘情况

  • Hashtag too broad:
    #food
    returns millions of posts from consumers, not businesses. Use niche tags like
    #restaurantowner
    or
    #foodbiz
    .
  • No business in bio: Filter by accounts that have website links or phone in bio.
  • Consumer accounts mixed in: Filter by followerCount > 500 and postCount > 20.
  • Private account: No post data — skip.
  • Duplicate accounts: Same brand may post under multiple hashtags — deduplicate by username.
  • 话题标签过于宽泛
    #food
    会返回数百万来自普通用户而非企业的帖子。使用细分标签如
    #restaurantowner
    #foodbiz
  • 个人简介无商业信息:筛选个人简介中包含网站链接或电话的账号。
  • 混入普通用户账号:筛选粉丝数>500且帖子数>20的账号。
  • 私人账号:无帖子数据 — 跳过。
  • 重复账号:同一品牌可能出现在多个话题标签下 — 通过用户名去重。