使用 Cribl 自动抓取房源数据并实现实时通知的完整指南

作者:API传播员 · 2025-10-16 · 阅读时间:5分钟

在本篇文章中,我们将深入探讨如何使用 Cribl 实现以下功能:

  • 搜索您所在地区的新房信息;
  • 将数据存储到 S3;
  • 使用 Cribl 查询存储的数据;
  • 在符合特定条件的房屋上市时,接收短信通知。

设置数据源

我们将利用 RapidAPI 提供的房地产经纪人端点获取房屋上市信息,并将其导入到 Stream 中。首先,注册一个免费的 RapidAPI 账户并获取 API 密钥。完成后,您可以设置以下 REST 收集器源:

REST 收集器源设置示例

请注意,您需要使用 JSON ARRAY 事件断路器,并在收集器中调整 Collect POST Body 参数,以获取您所在地区的房屋列表。更多详细信息请参考 RapidAPI 文档。此外,您可以将任务设置为每 3 小时查询一次新房源。


配置路由

当您验证收集器正常工作并通过 Stream 获取房屋列表后,便可以设置路由并转换数据。以下是两条主要路由的示例:

  1. 将数据发送到 S3;
  2. 设置通知功能。

路由配置示例

在此配置中,房屋列表数据会先通过“通知助手”路由(房地产经纪人通知),然后再通过“S3 路由”(房地产经纪人 S3)。需要注意的是,第一条路由未设置“最终”标志,因此数据会同时通过两条路由。


配置 S3 管道和 Redis 数据库

在 S3 管道中,前两个函数仅解析 parse_rawdescription 字段。您可以根据实际需求解析或删除其他字段。

S3 管道解析示例

  • 第三个函数检查 property_id 是否存在于 Redis 数据库中。如果存在,则返回对应值;如果不存在,则返回 null
  • 接下来的函数会删除当前 list_price 等于 Redis 中保存值的事件。这确保只有新的或价格发生变化的房源会被保留。
  • 第五个函数将 {property_id:list_price} 添加到 Redis 数据库中,以便进行后续追踪。
  • 最后,通过 Eval 函数删除不必要的字段。

Redis 数据库配置示例


配置通知助手管道和目标

通知助手的主要目的是在符合条件的房屋上市时发送短信。以下是通知管道的配置示例:

通知助手管道配置

  • 前两个解析器函数与 S3 管道中的解析器类似,解析 _rawdescription 字段。
  • 第三个函数会删除不符合筛选条件的房源。在本例中,我们筛选价格在 40 万至 50 万美元之间,面积在 1400 至 1500 平方英尺的独栋或联排别墅。
  • 第四个函数检查 Redis 数据库中是否已存在该房源。
  • 第五个函数会删除价格未发生变化的房源。

Twilio 目的地配置

您可以使用 Webhook 将数据发送到任何目标,而不仅限于 Twilio。设置 Twilio 试用账户后,您将获得一个电话号码、SID 和访问密钥,利用这些信息即可完成目标配置。


配置 S3 目标

虽然本文不详细介绍 AWS S3 的设置,但以下是 Cribl Destination 的配置示例:

  • 数据会被存储到 <amproject> 存储桶;
  • 分区表达式将数据按以下路径存储:/realtor.com/YEAR/MONTH/DATE/HOUR

请注意,您也可以选择 Azure Blob 存储或 Google 云存储,并通过 Cribl 查询数据。


使用 Cribl Search 查询数据

当数据存储到 S3 后,您可以通过 Cribl Search 查询这些数据。以下是设置步骤:

  1. 数据 > 数据集提供程序 中,配置 Search 与 S3 的连接。

    数据集提供程序配置

  2. 数据 > 数据集 中,指定要查询的数据源,包括数据集提供者、存储桶路径和区域。

    数据集配置

  3. 处理 选项卡中,设置数据的读取方式和格式。

完成配置后,您即可运行查询并分析数据。


总结

通过本文的指导,您可以使用 Cribl 实现从数据抓取到通知发送的完整流程。无论是存储到 S3,还是通过 Redis 数据库进行数据筛选,Cribl 都能提供高效的解决方案。希望本文能为您的项目提供参考价值。

原文链接: https://cribl.io/blog/api-scraping-using-cribl-and-setting-up-a-notification-assistant/