

# 如何核验本地商家目录中的 Facebook 主页记录

用已知的公开 Facebook 主页网址建立目录，然后把已匹配的商家身份、可获得的公开详情和缺失的来源字段分开。Actor 是托管的数据采集程序。Task 是已保存的输入预设。Actor 采集来源行，读者进行分析。

## 工具设置与对照检查

在试运行中，把默认的两个主页示例清单替换为 startUrls 里一个拟使用的已知公开主页网址。

工具构建版本为 0.1.24。它接受的 startUrls 为 1 到 1000 个已知公开主页或个人资料网址，而不是搜索页或城市关键词发现。一行对应一次已尝试的输入。

输出指标包括 requestedChannels、acceptedProfileInputs、rejectedInputs、datasetRows、usefulRows、billableRows、nonUsefulRows 和 statusCounts。行字段包括 input、channelId、pageId、channelUrl、handle、displayName、alternateName、profileType、description、category、website、detectedLinks、detectedEmails、phone、email、address、profileTabs、status、statusReason、observedAt 和 isBillable。缺失字段为 null。channelId 与旧版或委托的 pageId 是不同的身份值，两者可以不一致。

对 NASA 的一次对照检查返回了已匹配的 ID、状态 ok、一段描述，以及两个检测到的 Facebook 分区链接。网站、电话、电子邮箱和地址不可用。这只证明，仅在该对照中，可选字段可以不可用。

## 目录创建与核验操作

1. 在采集之前先确定目录用途和必填字段。使用一份已知的拟收录商家来源清单，其中包含本地行 ID，并记录每个网址的来源。城市搜索不在此工具范围内。人工发现是明确的前提，不是承诺的功能。
2. 测试一个拟使用的公开主页。对照来源检查 channelId、pageId、channelUrl、displayName、profileType、status 和 statusReason。即使可选的“关于”字段被隐藏，仅返回的身份本身也可以有用。当两家商家同名时，不要仅凭名称匹配。
3. 保留来源行和时间。将个人资料 ID 存为字符串，并单独保留旧版或委托主页 ID。对已核验的身份观察去重，但不要丢弃输入与来源清单的对应关系。
4. 对每个必填字段记录 source_available、unavailable 或 needs_manual_check。让 website 与 detectedLinks 保持区分。Facebook 的“关于”或照片链接是个人资料分区，不是外部商家网站。detectedEmails 和 detectedLinks 是未经核验的线索，不是完整的商家联系方式集合。
5. 如果目录需要城市服务区域或外部网站，请人工检查匹配的公开商家来源，并在单独的充实字段中[记录证据、来源和时间](/zh-Hans/articles/%E5%BF%85%E5%BA%94-%E7%BD%91%E9%A1%B5%E6%90%9C%E7%B4%A2%E6%99%BA%E8%83%BD%E4%BD%93-%E5%B7%B2%E6%A0%B8%E5%AF%B9%E9%A1%B5%E9%9D%A2%E8%AF%81%E6%8D%AE/)。不要用来自 handle 的猜测城市覆盖 Actor 地址中的 null。此工具不执行这种关联网站检查。
6. 针对所述用途定义目录行的就绪条件。例如，身份索引需要已匹配的身份；联系目录还需要一条已检查的公开联系路径；城市商家清单还需要有依据的本地相关性。让每条规则保持明确。缺少可选数据并不能证明该商家不具备该属性。
7. 把记录分为 ready、needs_review 和 unavailable_target。分别统计已匹配身份、可用字段和就绪记录。失败的来源请求不是一条空白的成功商家记录。保留来源状态原因，以便以后可以把重试限定在相应范围。
8. 导出有用的目录，并附上就绪原因和证据链接。需要时刷新观察结果，而不是断言该工具会提供过去的历史。本指南不发送外联，也不为商家做认证。

## 原创虚构示例与表格

以下文本为原创虚构。一个虚构的清洁商家目录有四个拟使用的主页。

| 记录键 | 已匹配身份 | 原生状态 | 原始网站 | 原始地址 | 检测到的链接 | 人工地址 / 本地证据 | 人工来源与检查（虚构） | 记录就绪状态与读者判定原因 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| B1 | 已匹配 ID | ok | https://example.com/b1-site (虚构) | 123 Main St（虚构） | facebook.com/b1/about（虚构） | 虚构的 123 Main St，Target City，已根据其带日期的人工来源另行确认 | https://example.com/b1-source (2026-03-01, 本地检查) | 就绪（已匹配 ID，原生网站和地址存在，人工本地证据已确认） |
| B2 | 已匹配 ID | ok | null | null | facebook.com/b2/photos（虚构） | 未知 | 无人工来源与检查 | 需要复核（已匹配 ID，原生网站/地址为 null，无人工证据） |
| B3 | 无身份 | login_required | null | null | null | 未知 | 无人工来源与检查 | 不可用目标（需要登录，未取回身份） |
| B4 | 已匹配 ID | ok | null | null | facebook.com/b4/about, facebook.com/b4/photos（虚构） | 虚构的 8 Side Rd，Other City，已根据其带日期的人工来源另行确认 | https://example.com/b4-source (2026-03-02, 城市范围外) | 未就绪 / 超出范围（已匹配 ID，原生网站/地址为 null，链接是个人资料分区，人工检查证明在城市范围外） |

三个已匹配身份并不能得到三条就绪记录。有一条就绪记录，两条需要复核或超出范围的记录，以及一个不可用目标。确切规则依据人工本地证据把 B4 排除出城市清单，而不是根据主页名称猜测。在这个虚构例子中，三个已匹配行的字段可用性是：网站为三中有一，返回的地址为三中有一。不可用目标 B3 单独报告。不要把这些分数当作真实的工具成功率。

## 下一步操作

使用 [Apify Facebook Channel Scraper](https://apify.com/chronometrica/facebook-channel-scraper) 和 [Facebook Business Page Profile Dataset Task](https://apify.com/chronometrica/facebook-channel-scraper/examples/facebook-business-page-profile-dataset) 复核你的输入，以建立你的台账。

## 来源和延伸阅读

- [Apify Facebook Channel Scraper Actor](https://apify.com/chronometrica/facebook-channel-scraper)
- [关于 Facebook 主页抓取的 Reddit 讨论](https://www.reddit.com/r/webscraping/comments/16namzg/is_there_a_web_scraper_for_facebook_pages/)