知识

用于调查报道的公开记录收集:方法、伦理与核实

公开记录推动调查报道,但前提是谨慎收集、按原样保存并在发布前核实。这是一套适用于新闻编辑室的方法。

James Meadow

2026年10月5日 · 2 分钟阅读

许多最具影响力的调查都始于公共记录:一个公司注册处的记录显示同一位董事名下有五十家空壳公司,采购公告揭示某份合同被拆分以规避某个门槛,法庭文件与一份公开声明相矛盾。这些信息从头到尾都是公开的。真正的工作在于系统地收集它、完整地保存它,并在任何人依赖它之前核实它。

大规模地完成这项工作是一个数据采集问题,而那些让企业的数据采集变得可靠的习惯,在结果要署名发表时显得更加重要。本指南提出了一套用于报道和研究的公共记录采集方法:从哪里入手、如何采集、如何保存证据、如何核实,以及随之而来的伦理问题。

关键要点

  • 从官方的批量数据和 API 入手。许多注册机构都提供免费下载或 API,这比抓取其网站更完整,也更站得住脚。
  • 带着一份书面计划去采集:你需要什么、从哪里获取、多久一次,以及你不会采集什么。
  • 完全按服务器返回的原样保存每一条记录,附上哈希值、时间戳和来源地址,以便日后证明当时来源说了什么。
  • 发布前先核实:对照第二来源或发布机构确认记录,把任何单一记录都当作线索,而非结论。
  • 公开不等于无害。公共记录中的个人数据仍然需要最小化处理、谨慎对待,并有明确的公共利益理由。

从已发布的可复用数据入手

在写爬虫之前,先检查该来源是否已经发布了可供复用的数据。通常确实如此,而且官方数据比抓取的副本更容易站得住脚:

来源可获得的内容备注
UK Companies House免费的公共数据 API 和免费的批量下载,包括每月公司快照、账目数据和重大控制人文件英国公司的高管、备案文件和所有权信息
EU procurement, TED来自《官方公报》增刊的公告,每年约 800,000 份,以开放数据形式提供,并可通过 API 获取覆盖欧盟范围内的招标和合同授予信息
US federal courts, PACER电子法庭记录,每页 $0.10,每份文件最高收费 $3,每季度消费 $30 或以下的用户可免除费用案卷和文件;大规模获取时费用会累积

批量数据还有另一个优势:它捕捉整个登记册在某一时间点的全貌,这能让你发现诸如同一地址聚集多家公司这样的模式,而逐页浏览永远发现不了这些。如果只有一个网站可用,就按下文所述谨慎地从中采集。

带着计划去采集

在开始采集之前写一份简短的计划,能让工作保持聚焦且站得住脚:

  • 问题。 你想要确认什么,哪些记录能够证实或推翻它。
  • 来源。 哪些登记册、门户网站和档案库,以及为什么每一个对其所涉及的部分具有权威性。
  • 字段。 你将采集什么,以及你会刻意略去什么,尤其是你不需要的个人数据。
  • 频率。 一次性快照,还是重复采集以捕捉变化和删除。
  • 方法。 官方 API、批量下载,或从网页上谨慎采集,且速度不会对公共服务造成实质性负担。

重复采集往往是发现报道线索的地方。那些悄然变化的记录、被修改的备案文件,以及消失的条目,只有在你采集过”之前”和”之后”才能看见。用于大规模变化检测和监测供应商的公开足迹的技术同样直接适用于此。

按原样保存记录

当来源日后对其发布的内容提出异议时,截图是不够的证据。要完全按照服务器返回的原样保存记录,以及证明它来自何处、何时获取所需的上下文。下面的函数会保存未经改动的响应正文,以其 SHA-256 哈希命名,并附加一行日志,记录 URL、状态、时间和哈希值:

import hashlib
import json
from datetime import datetime, timezone
from pathlib import Path

import requests


def capture(url, folder, session=None, note=""):
    """Save a public record exactly as served, with a hash and the context needed to verify it later."""
    session = session or requests.Session()
    response = session.get(url, timeout=30)
    body = response.content
    digest = hashlib.sha256(body).hexdigest()
    retrieved = datetime.now(timezone.utc).isoformat(timespec="seconds")
    folder = Path(folder)
    folder.mkdir(parents=True, exist_ok=True)
    (folder / f"{digest}.body").write_bytes(body)
    record = {
        "requested_url": url,
        "final_url": response.url,
        "status": response.status_code,
        "retrieved_utc": retrieved,
        "sha256": digest,
        "bytes": len(body),
        "content_type": response.headers.get("content-type", ""),
        "last_modified": response.headers.get("last-modified"),
        "note": note,
    }
    with open(folder / "log.jsonl", "a", encoding="utf-8") as log:
        log.write(json.dumps(record) + "\n")
    return record

应用于英国注册处的一个公开公司页面:

import requests

from capture import capture

session = requests.Session()
session.headers["User-Agent"] = "ExampleNewsroom/1.0 (+https://example.org/research)"

record = capture("https://find-and-update.company-information.service.gov.uk/company/00445790",
                 "records", session, note="registered office check")
print(record["status"], record["sha256"], record["retrieved_utc"])

对该页面相隔十秒的两次采集产生了相同的哈希值,这正是关键所在:如果一条记录没有变化,任何人都可以逐字节核实;如果它变了,哈希值会准确显示变化发生的时间。对于更大规模的采集,保留原始响应一文所述的 WARC 格式可以用标准工具将请求和响应一并存储,而来自在线列表的、可供法庭使用的证据则涵盖了材料可能最终用于法律诉讼时所需的额外步骤。同一时间在公共网络档案中进行的一次抓取,能提供独立的佐证。

同时也要记录采集的发起地点。一些门户网站会根据访问者所在位置展示不同的内容或语言,而正如关于采集地点标准的论证所指出的,记录下采集地点能让其他人复现你所看到的内容。

发布前先核实

公共记录常常是错误的、过时的或含糊不清的。登记册记录的是被提交的内容,而非真实情况;姓名会被重复使用;地址可能被许多通过同一家代理机构注册的公司共用。核实的过程把一条记录变成一个结论:

检查项防范的问题
向发布机构或第二个官方来源确认转录错误和过时条目
以标识符而非姓名进行匹配同名的不同个人或公司
检查日期和版本被修改的备案文件、已被取代的记录、时区混淆
寻找无辜的解释代理机构地址、名义董事、常规备案
发布前询问当事人记录中没有显示的背景信息,以及公平性
保持从主张到记录的完整链条每一条已发表的陈述都能追溯到一条经过保存、带哈希值的记录

最后一项是最重要的纪律。报道中的每一项事实主张都应指向一条具体的、已保存的记录,团队中的任何人都应该能够打开它,看到它在被采集那天所呈现的内容。

伦理

采集公共记录会引出与任何报道相同的伦理问题。美国职业记者协会(Society of Professional Journalists)的行为准则将它们归纳为四项原则:追求真相并予以报道、将伤害降至最低、保持独立行事、负责且透明。其中有几项对大规模采集尤为适用:

  • 公开不等于无害。 登记册中包含家庭住址、出生日期和家庭细节。只采集报道所需的内容,限制对其余部分的访问,在发布非当事人的他人个人细节之前要三思。
  • 聚合会产生新的信息。 组合多条记录可能揭示出任何单一记录都无法揭示的内容,这常常正是调查的意义所在,但也正是风险所在。权衡这种组合所揭示内容的公共利益。
  • 尊重地采集。 公共服务是由公众出资维持的。在有批量数据的情况下使用批量数据,控制采集速度,诚实地表明你的采集者身份,不要绕过访问控制。
  • 留意你所在地的法律。 数据保护、版权和计算机滥用相关规定同样适用于记者,许多司法辖区为新闻或研究用途提供了附带条件的具体豁免。我们关于网络抓取是否合法和GDPR 与数据采集的概述可以作为起点;具体项目请咨询你所在新闻机构的法律顾问。

总结

公共记录是调查报道所能拥有的最有力的来源之一,也是最容易被滥用的来源之一。从官方的批量数据和 API 入手,按照书面计划采集,完全按原样保存每一条记录并附上哈希值和时间戳,对照第二来源和当事人核实每一项结论,并将个人数据控制在报道所需的范围内。

其结果是经得起检验的报道:每一项主张都可追溯到任何人都能核实的记录,且采集方式是新闻机构能够解释清楚的。

来源与参考文献

准备好开始了吗?

试用 Shifter 住宅代理,205M+ 个 IP,195+ 个国家,低至 $0.10/GB。

立即开始