多くの重要な調査は公的記録から始まる。五十の企業の背後に同じ取締役がいることを示す企業登記簿、契約が閾値を下回るように分割されたことを明らかにする調達告知、公的な発言と矛盾する裁判資料。情報はずっと公開されていた。仕事は、それを体系的に収集し、損なわれない形で保持し、誰かがそれに依拠する前に検証することだった。
これを大規模に行うことはデータ収集の問題であり、企業にとって収集を信頼できるものにする習慣は、結果が署名記事として公表される場合にはさらに重要になる。本ガイドでは、報道と調査のための公的記録収集の方法を示す。どこから始めるか、どう収集するか、証拠をどう保存するか、どう検証するか、そしてそれに伴う倫理的な問題である。
要点
- まずは公式の一括データやAPIから始める。多くの登記機関は、そのウェブサイトをスクレイピングするよりも完全で正当性のある無料のダウンロードやAPIを公開している。
- 文書化した計画に基づいて収集する。何が必要か、どこから、どのくらいの頻度で、何を収集しないか。
- すべての記録を提供されたとおりに、ハッシュ、タイムスタンプ、取得元のアドレスとともに保存し、後でソースが何を述べていたかを証明できるようにする。
- 公表前に検証する。記録を第二のソースまたは発行機関に照らして確認し、単一の記録は結論ではなく手がかりとして扱う。
- 公開されているからといって無害とは限らない。公的記録内の個人データには、最小化、配慮、そして明確な公共の利益に基づく理由が依然として求められる。
再利用のために公開されているものから始める
スクレイパーを書く前に、ソースがすでに再利用のためにデータを公開しているかどうかを確認する。多くの場合そうなっており、公式データはスクレイピングされたコピーよりも正当性を主張しやすい。
| ソース | 入手可能なもの | 備考 |
|---|---|---|
| UK Companies House | 無料の公開データAPIと無料の一括ダウンロード。月次の企業スナップショット、会計データ、重要な支配権を持つ人物のファイルを含む | 英国企業の役員、提出書類、所有権情報 |
| EU procurement, TED | 官報補足からの告知。年間約800,000件、オープンデータおよびAPIとして入手可能 | EU全域の入札と契約落札情報 |
| US federal courts, PACER | 1ページ$0.10、1文書あたり上限$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"])
そのページを10秒間隔で2回取得したところ、同一のハッシュが得られた。これが重要な点だ。記録が変化していなければ、誰もがそれをバイト単位で確認でき、変化すれば、ハッシュが正確にいつ変化したかを示す。より大規模な収集では、生のレスポンスを保持するで説明されているWARC形式が、標準ツールを用いてリクエストとレスポンスを一緒に保存し、オンライン出品からの法廷対応証拠は、資料が法的手続きに発展しうる場合の追加手順を扱っている。同時刻に行われた公開ウェブアーカイブへのキャプチャは、独立した裏付けを加える。
収集をどこから実行したかも記録する。一部のポータルは訪問者の所在地によって異なる内容や言語を表示する。ヴァンテージポイント標準の提案で論じられているように、観測地点を記録しておけば、他者が見たものを再現できる。
公表前に検証する
公的記録はしばしば誤っていたり、古かったり、曖昧だったりする。登記簿は提出された内容を記録するのであって、真実を記録するのではない。名前は使い回され、住所は同じ設立代行業者を通じて登記された多数の企業によって共有される。検証は記録を結論へと変える。
| チェック項目 | 防げるもの |
|---|---|
| 発行機関または第二の公式ソースで確認する | 転記ミスや古くなったエントリー |
| 名前ではなく識別子で照合する | 同名の異なる人物や企業 |
| 日付とバージョンを確認する | 修正された提出書類、置き換えられた記録、タイムゾーンの混乱 |
| 無害な説明がないか探す | 設立代行業者の住所、名義取締役、定型的な提出書類 |
| 公表前に対象者に問い合わせる | 記録が示さない文脈、そして公正さ |
| 主張から記録までの連鎖を保つ | 公表されたすべての記述が保存されハッシュ化された記録まで遡れること |
最後の項目が最も重要な規律だ。記事内のすべての事実主張は、特定の保存された記録を指し示すべきであり、チームの誰もがそれを開いて、収集された日に何が書かれていたかを確認できるべきである。
倫理
公的記録の収集は、あらゆる報道と同じ倫理的問いを提起する。Society of Professional Journalistsの倫理規定は、それらを4つの原則のもとに整理している。真実を追求し報道すること、害を最小化すること、独立して行動すること、そして説明責任と透明性を果たすことである。いくつかは特に大規模収集に強く当てはまる。
- 公開であることは無害であることと同じではない。 登記簿には自宅住所、生年月日、家族の詳細が含まれる。記事に必要なものだけを収集し、それ以外へのアクセスを制限し、対象者でない人物の個人情報を公表する前によく考える。
- 集約は新しい情報を生む。 記録を組み合わせることで、単一の記録では分からないことが明らかになることがある。それはしばしば調査の目的そのものであり、同時にリスクでもある。組み合わせが示すものの公共の利益を慎重に見極める。
- 敬意を持って収集する。 公的サービスは公費で賄われている。存在する場合は一括データを使い、収集のペースを調整し、収集者であることを正直に明示し、アクセス制御を迂回しない。
- 活動地域の法律に留意する。 データ保護、著作権、コンピュータ不正使用に関する規則はジャーナリストにも適用されるが、多くの法域にはジャーナリズムや研究のための特定の例外規定があり、それぞれに固有の条件がある。ウェブスクレイピングは合法かおよびGDPRとデータ収集に関する概説が出発点になる。具体的なプロジェクトについては編集部の法律顧問に相談すること。
結論
公的記録は調査が持ちうる最も強力な情報源の一つであり、同時に最も悪用しやすいものの一つでもある。まずは公式の一括データとAPIから始め、文書化された計画に基づいて収集し、すべての記録を提供されたとおりにハッシュとタイムスタンプとともに保存し、各発見を第二のソースと対象者に照らして検証し、個人データは記事に必要な範囲にとどめる。
その結果得られる報道は揺るがない。すべての主張が、誰もが確認できる記録にまで遡れ、編集部が説明できる方法で収集されている。
出典と参考資料
- Companies House, Companies House data products.
- European Commission, Tenders Electronic Daily.
- PACER, Pricing: how fees work.
- Society of Professional Journalists, Code of Ethics.
- Capture code tested by Shifter on 5 October 2026 against a public Companies House page.