Skip to main content
你想知道什么时候一个关键词(品牌名称、产品、竞争对手)在 Instagram、TikTok 或 X 上的帖子中出现。你事先没有这些 URL,所以不能只是把一个列表交给爬虫。你需要先进行一个发现步骤。 在本教程中,我们将用一个 Python 脚本构建这个发现管道。你将使用 Bright Data 的 SERP APIparsed_light 模式下运行 site:instagram.com "your keyword" 风格的查询,从每个响应中获取前 10 个有机链接,按平台对其进行分类,并异步触发匹配的社交爬虫。最后,你将获得每个平台的一个快照,可以交付给 S3 或 webhook。 我们在触发步骤处停止。将快照路由到存储是一个交付配置更改,本系列中的其他两个教程已经涵盖。

你将构建什么

一个 Python 脚本,可以:
  1. 为你的关键词运行三个 SERP API 查询,每个平台一个
  2. 从每个 parsed_light 响应中读取前 10 个有机结果
  3. 将每个链接分类为 Instagram 帖子、TikTok 视频或 X 帖子
  4. 为每个平台的 URL 列表触发匹配的 Bright Data 社交爬虫
  5. 打印每个平台的一个快照 ID
运行一次,获得三个快照 ID。稍后将同一脚本连接到 GitHub Actions,你就有了一个每日提及监控器。 预计时间:25 分钟。

前置条件

第 1 部分:设置项目

创建一个新文件夹并放入 requirements.txt
requirements.txt
安装依赖:
导出脚本将从环境读取的凭证。API 密钥同时认证 SERP API 和社交爬虫触发;区域名称告诉 SERP API 通过哪个 SERP 区域路由请求:

第 2 部分:使用 SERP API 发现提及

SERP API 是一个单一 REST 端点:POST https://api.brightdata.com/request。你提供一个区域名称和一个 Google 搜索 URL,它返回该查询的 SERP。传递 data_format: "parsed_light",你会获得一个紧凑的 JSON 有效载荷,只包含前 10 个有机结果,无广告、无知识面板、无需你这边进行解析。 创建 listen.py 并从发现步骤开始:
listen.py
有三件事值得注意:
  • data_format: "parsed_light" 是关键。它告诉 SERP API 仅返回前 10 个有机结果在一个紧凑的 organic 数组中,跳过广告和知识面板。更快的响应,更少的数据需要分类。
  • format: "raw"data_format 旁边是必需的。它指的是外部 HTTP 响应信封,而不是解析的有效载荷。SERP API 文档详细说明了这一点
  • timeout=180 的设置很慷慨。大多数 SERP API 调用在不到一秒内返回,但在 Google 速率限制期间,单个查询有时可能需要更长时间。每次三秒的预算使脚本保持稳健,同时又不浪费。

第 3 部分:按平台对 URL 进行分类

每个 SERP 响应给你一个 organic 数组,每个条目都有一个 link 字段指向真实的帖子 URL。你需要对这些链接进行分类,以便每个爬虫只获得它理解的 URL。 将这些助手添加到 listen.py
listen.py
注意正则表达式仅匹配帖子形状的 https:// URL,而不是个人资料页面或主题页面。像 instagram.com/tiktok 这样的个人资料 URL 被拒绝,因为本教程的爬虫仅将帖子 URL 作为输入。https:// 前缀的严格性是有意的:社交爬虫在验证时拒绝纯 http:// URL,所以在这里删除它们可以避免稍后从触发步骤获得 400 validation_errordict.fromkeys 技巧在保留顺序的同时去重。

第 4 部分:触发社交爬虫

你现在有三个帖子 URL 列表。使用异步触发将它们发送到匹配的社交爬虫,以便每个爬虫可以按自己的计划运行,而不会阻止脚本:
listen.py
有两件事值得注意:
  • 发现是同步的,爬取是异步的。 SERP API 每个查询在不到一秒内返回,所以你在内联循环遍历三个查询。社交爬虫每个可能需要几分钟,所以你触发并退出。Bright Data 在后台运行它们。
  • 脚本返回快照 ID,而不是数据。 实际帖子会根据你的爬虫交付配置指向的位置(API 下载、webhook 或 S3/GCS/Azure)。有关 webhook 交付S3 交付,请参阅两个附带教程。

第 5 部分:将其连接在一起并运行

添加一个 main 块来粘合这三个步骤:
listen.py
使用可能在所有三个平台上出现的关键词运行它:
你应该会看到类似的输出:
三个快照 ID,每个平台一个。每个现在都在 Bright Data 异步运行,并将结果交付到你为该爬虫交付目的地配置的位置。

祝贺

你构建了一个关键词社交监听器,它:
  • 使用 parsed_light 模式下的 SERP API 作为紧凑、亚秒级的发现引擎
  • 获取每个查询的前 10 个有机结果,并使用帖子形状正则表达式按平台对其进行分类
  • 触发 Instagram、TikTok 和 X 爬虫在发现的 URL 上并行运行
  • 触发后立即退出,将繁重工作留给 Bright Data
整个管道是一个 Python 文件。无代理设置、无胶合服务、无批处理作业。

后续步骤

交付到 webhook

将每个社交爬虫指向一个 webhook 处理程序(如 LinkedIn 教程中的 Next.js 处理程序),以实时获取映射的帖子记录。

交付到 S3

在每个爬虫上配置 S3 交付,并使用 GitHub Actions 计划此脚本以获取每日提及报告。

缩小搜索范围

可以添加到搜索 URL 的 Google 特定查询参数的完整列表,包括 glhluule 和时间过滤器。

SERP API 参考

所有支持的引擎、解析的输出架构和用于大量数据的异步请求模式。