在活动启动前,可以自动将简报中的每个 IG 账号与其公开资料进行核对。此类检查可以发现用户名不匹配、账号设为私密、姓名或简介发生变化,以及帖子数量超出预期范围等问题。结果是一份供营销人员参考的检查表,而不是对创作者是否合格的自动判定。

问题:简报的更新速度赶不上表格
活动名单中可能记录了账号名称、链接、预期粉丝数,以及对公开个人资料的要求。这些信息很容易不一致:账号更改了用户名,资料转为私密,而简报中的数字却没有更新。逐个手动检查账号并不难;但每次活动前都要重复检查一整份名单,就更难以管理和复现。
一种实用做法是为每一行设定明确规则,获取检查时可用的公开字段,并将原始值和实际值并列记录。此时,“匹配”仅表示某个具体字段符合某条具体规则;受众是否匹配或内容质量如何,仍应由专业人员判断。
应请求哪些数据
IG API 路由参考文档介绍了 GET 路由 /v1/user/by/username,其中必需参数为 username。在经过验证的响应中,个人资料数据位于 ig 对象内,包括用户名、全名、简介、私密和认证标志,以及帖子数、粉丝数和关注数。这些字段描述的是当前可获取的个人资料快照。
对于初步筛查,这些数据足以核对账号名称、隐私状态和数值门槛。可以将简介展示给操作人员查看,也可以按简单规则检查,例如是否包含必需词语。这种文本筛选只能查找字符串匹配,本身无法评估语义,也不能证明合同条款已得到满足。
如何在 Python 中集成请求
首先将许可证密钥保存到环境变量 JSONSCRAPER_INSTAGRAM_LICENSE_KEY 中。示例使用了已确认的基础地址、路由、username 参数和 license_key 密钥字段名。CSV 文件包含 username,min_followers,max_followers,require_public 字段;脚本会逐个账号将响应与规则比对,并标记需要检查的行。
import csv
import os
import sys
import requests
BASE_URL = "https://ig.jsonscraper.com"
API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
raise SystemExit("Set JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
# brief.csv: username,min_followers,max_followers,require_public
with open("brief.csv", newline="", encoding="utf-8") as source:
brief = list(csv.DictReader(source))
results = []
for row in brief:
username = row.get("username", "").strip()
minimum_text = row.get("min_followers", "").strip()
if not username or not minimum_text:
results.append({
"requested_username": username,
"needs_review": True,
"error": "Missing username or min_followers",
})
continue
try:
response = requests.get(
f"{BASE_URL}/v1/user/by/username",
params={"username": username, "license_key": API_KEY},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
raise ValueError("Unexpected API response")
profile = payload["ig"]
followers = profile.get("follower_count")
minimum = int(minimum_text)
maximum_text = row.get("max_followers", "").strip()
maximum = int(maximum_text) if maximum_text else None
public_required = row.get("require_public", "").strip().lower() == "true"
checks = {
"username_matches": (
isinstance(profile.get("username"), str)
and profile["username"].lower() == username.lstrip("@").lower()
),
"followers_in_range": (
isinstance(followers, int)
and followers >= minimum
and (maximum is None or followers
运行命令:python check_profiles.py。请安装 requests 库,在运行环境中设置环境变量,并将 brief.csv 放在同一目录下。不要把密钥写进源代码或最终 CSV 文件。脚本会按顺序处理列表,适合检查和调试规模较小的账号集合。
为什么缺失值必须保持可见
检查规则必须区分数值为零和字段缺失。示例中,只有存在数值型字段时,粉丝数才会被视为符合要求;如果计数器字段缺失,该条件就无法得到确认,记录会转交人工检查。min_followers 门槛为空时,也会被标记为输入错误,而不会自动当作零。
还应将响应验证纳入工作流程。脚本首先确认外部状态为 ok,然后检查是否存在 ig 对象。HTTP 错误、意外的 JSON 或无效规则会记录在报告中,但不会包含可能泄露 URL 中密钥的异常文本。这样,操作人员可以区分请求故障与个人资料不匹配,同时避免暴露机密信息。
如何读取结果并自动化检查
profile_check.csv 文件包含原始用户名、返回的名称、可用的公开字段、各项条件的检查结果,以及汇总标记 needs_review。团队可以按此标记筛选记录,开发人员则可以将报告保存到存储系统,或传递给 ETL 流程的下一步。要安排定期运行,可以使用任务调度程序启动脚本,并单独保存运行日期,以便比较各次活动的资料快照。

如果规则发生变化,应将其保存在简报中,而不是写死在代码里。这样可以核验门槛:每一行都能看到预期的粉丝数范围或公开状态标志。可以为简介添加指定文本是否存在的检查,但字面匹配不能取代专业人员的内容评估。
IG Scraper API 页面提供了基础地址、请求示例和 Postman 链接。以上方案仅使用已确认的用户名资料查询功能,并不假设该请求会返回帖子内容。
实际效果是建立一套可重复执行的初步检查流程:团队无需手动查看整份名单,而能获得一份按简报具体字段划分的匹配项和例外项。这可以加快活动启动前的核查,同时将活动是否符合要求的最终判断留给相关专业人员。