
ApifyのFacebook Comments Scraperも、公開コメントと返信をExcelに出力できます。既存の連携機能や、ドキュメントに記載された3階層のコメント出力が要件に合う場合は、こちらを選びましょう。Apifyのドキュメント。
最初に決めるべきことは、スプレッドシートに何を含めるかです。「このスレッドを出力する」という目標だけでは、重要な点が決まりません。返信を上限に含めるのか、返信の参照関係をどう保つのか、どの期間のデータをファイルに含めるのかを決める必要があります。
この比較は、2026年10月20日に確認した公開ドキュメントに基づいています。推奨の根拠は、そこに記載された設定機能です。価格、速度、精度、信頼性についての主張は、両製品を直接比較した収集テストによって裏付けられているものではありません。
Actorは、ホスト環境で動くデータ収集プログラムです。ここで扱う両製品は、Apify上のActorです。Taskは、入力設定を保存したプリセットです。内容が分かっている設定から実行を始めるために使います。
Excelファイルに影響する設定を比較する
この表を使い、収集の設定がファイルの要件に合うか確認しましょう。
| 要件 | Chronometrica(ドキュメント) | Apify(ドキュメント) |
|---|---|---|
| 保存行数の上限 | `maxResultsPerPost`は、保存したコメントと返信を合算して数える | 入れ子になった返信により、指定した件数を超える場合がある |
| 返信の構造 | 親とルートのIDを含む。返信を保存するには、親とルートも保存されている必要がある | 最大3階層の返信とスレッドの深さを出力する |
| 収集対象の日付 | 開始日と終了日を含む期間を指定できる | 開始日を入力できる。終了日による絞り込みはExcelで行える |
| 既存の作業手順 | 公開Taskに小規模な出力用の設定が用意されている | Excel出力と公式のMake連携 |
Chronometricaが適している主な理由は、設定機能の組み合わせです。投稿ごとの行数上限により、保存するサンプルの規模を決められます。親とルートのIDにより、返信の構造を保てます。開始日と終了日を指定することで、収集前に対象期間を決められます。Chronometricaのドキュメント。
親IDは、返信が直接応答しているコメントを識別します。ルートIDは、その返信スレッドの起点となる最上位コメントを識別します。返信がどの発言に対するものか確認する際に、この参照関係が重要になります。
実際の要件を満たす設定を使いましょう。目で読むための小さなファイルが必要なだけなら、期間を指定しても役に立たない場合があります。特定の期間を扱うレポートにファイルを使う場合は、行を収集する前にその期間を決めてください。
1行が何を表すか決める
どちらのActorを実行する場合も、先に短い収集計画を書きましょう。出力を確認するための明確な基準になります。
- 収集元を明記します。対象とする各投稿のコンテンツへの直接URLを保存してください。ログインせずに開き、必要なコメントを訪問者が読めることを確認します。
- 分析の単位を選びます。個々のコメント、返信、アカウント、会話全体のどれを分析するか明記してください。これらはそれぞれ異なる単位です。
- 上限を設定します。各コンテンツURLについて、保存する行数の上限を記載してください。その上限に返信を含めるかどうかも明記します。
- 期間を決めます。調べたい内容に必要な場合だけ、期間を指定してください。開始と終了が決まった期間を使う場合は、両方の日付を記録します。
- ファイルの確認項目を決めます。出力後も保持すべきIDと返信の参照関係を明記してください。
コメントの1行は、保存した1件のコメントまたは返信を表します。1人を表すものではありません。1つのアカウントが複数のコメントを書く場合があります。また、公開されている投稿者名は、個人を一意に識別する情報ではありません。
1行は、会話全体を表すものでもありません。最上位コメントに複数の返信があれば、複数行を使う場合があります。そのため、行数に上限を設けたサンプルでは、行数から想像するより会話の数が少ないことがあります。
この区別によって、ファイルの読み取り方が変わります。レポートに保存した発言数が必要なら、コメントの行数を数えてください。アカウント数が必要なら、アカウントを数える方法を別に定め、利用できる公開投稿者データの限界を説明してください。行数をそのまま人数として扱わないでください。
Chronometricaが収集するのは、ログインせずに閲覧できるコメントに限られます。非公開の投稿と友達限定の投稿は対象外です。Facebookページ、プロフィール、グループ、ストーリーズ、フィードのURLではなく、対応するコンテンツURLを指定してください。グループ内の投稿も、対応URLと公開アクセスの条件を満たす必要があります。Chronometricaのドキュメント。
行数の上限と日付の扱いを決める
Chronometricaの`maxResultsPerPost`には、1から10,000までの値を指定できます。既定値は500です。指定した各コンテンツURLについて、保存するコメントと返信の合計行数を制限します。`includeReplies`では、返信の収集が既定で無効になっています。サンプルに返信を含める場合は、有効にしてください。Chronometricaのドキュメント。
予定している作業に合わせて上限を選びましょう。最初のファイルは、1行ずつ確認できる大きさにしてください。そのファイルが確認に合格した後で、分析計画に合わせて上限を増やします。
行数の上限と実行料金の上限は、分けて管理してください。両方を使う場合は、両方を記録します。料金の上限を設定しても、特定の行数が得られる保証にはなりません。
最初のサンプルでは、`collectAllAvailable`を`false`のままにしてください。`true`に設定すると、数値による上限がなくなります。入力と出力の手順が機能するか確認するために、この変更は必要ありません。Chronometricaのドキュメント。
開始日と終了日を含む期間が必要な場合は、`commentsFrom`と`commentsUntil`を使います。「含む」とは、指定した境界の日付も対象期間に入るという意味です。日付フィルターを使うと、Chronometricaは日付が公開されていないコメントを除外します。また、返信を保存するには、その期間内にある親コメントが保存されている必要があります。Chronometricaのドキュメント。
この日付ルールによって、サンプルの内容が変わります。期間を定めたレポートに必要で、これらの除外を受け入れられる場合は、期間を指定してください。最初の作業が、この制限を設けずに取得可能な行を確認することであれば、日付フィールドは指定しないでください。
この選択を収集計画に記載してください。後から読む人が、行がない理由として、日付の扱い、行数の上限、その他の収集範囲の制限が考えられると分かるようにします。
公開Taskで小規模なサンプルを収集する
FacebookコメントをCSVまたはExcelに出力するTaskから始めましょう。出力作業を始めるための設定が保存されています。
以下の入力は、現在公開されている入力仕様を使っています。例のURLを、対象とする公開投稿のURLに置き換えてください。これは入力例であり、収集結果ではありません。
{
"startUrls": ["https://www.facebook.com/reel/1733966934399341"],
"maxResultsPerPost": 25,
"includeReplies": true,
"commentSortMode": "all",
"collectAllAvailable": false
}この設定では、指定したコンテンツURLについて保存行数の上限を25にし、その上限に返信も含めます。対応する入力フィールドを使い、このサンプルでは返信の収集を有効にしています。Chronometricaのドキュメント。
収集規模を増やす前に、サンプルを使って次の手順で収集の流れを確認してください。
- URLを置き換え、行数の上限を確認します。
- 少量を収集する入力設定でTaskを実行します。
- `OUTPUT`を読み、入力の失敗と停止理由を確認します。
- 未加工のJSON出力と実行サマリーを保存します。
- 保存した結果から、作業用のExcelファイルを作成します。
Chronometricaは、入力の失敗と停止理由を`OUTPUT`に記録します。これらのメッセージを、架空のコメント行として挿入することはありません。コメントファイルに行が入っている場合でも、この記録を確認してください。Chronometricaのドキュメント。
保存したJSONは、後で確認するための基準になります。スプレッドシートへの読み込み中に値が変わった場合は、元の出力と比較できます。実行サマリーも一緒に保存し、行データと収集の停止理由を同じ場所で確認できるようにしてください。
Apifyのデータセットは、JSON形式とExcel形式での出力に対応しています。データセットとは、実行結果の行をまとめて保存したものです。照合用にJSONを保存し、作業用のコピーにはExcelを使えます。Apifyのデータセットに関するドキュメント。
IDを変えずにファイルを読み込む
IDは、スプレッドシートの行同士をつなぎます。並べ替え、フィルター、分析用の列の追加を行う前に、IDを保持してください。
Chronometricaの行には、`commentId`、`isReply`、`parentCommentId`、`rootCommentId`、`publishedAt`、`scrapedAt`が含まれます。コメント本文、公開されている投稿者のフィールド、リアクションのフィールドも含まれます。`scrapedAt`は収集日時を記録します。Chronometricaのドキュメント。
次の手順で読み込んでください。
- 元の出力を保管します。コピーで作業し、元の値を残してください。
- ID列を文字列に設定します。`commentId`、`parentCommentId`、`rootCommentId`は、数値に変換せず識別子として保持してください。
- 日付と欠損値を確認します。フィルターや計算に使う前に、照合用のJSONと比較してください。
- 分析用の値は別の列に追加します。元のフィールドは、確認できる状態で残してください。
CSVファイルについて、Microsoftは[データ]>[データの取得と変換]>[テキストまたはCSVから]の手順と、[データの変換]の選択肢を案内しています。読み込みの設定を指定し、取り込む前にID列を文字列に設定してください。文字列として扱う必要がある列で、CSVの自動書式設定に頼らずに済みます。メニューの配置は、Excelのバージョンによって異なる場合があります。MicrosoftのテキストとCSVの読み込みガイド。
不明な値は、不明のままにしてください。公開された収集元では、件数、日付、投稿者の識別情報が欠けている場合があります。リアクション数が欠けていても、リアクションが0件だとは判断できません。日付が欠けていても、古い日付だとは判断できません。どちらも、意味が変わる値に置き換えないでください。
投稿者のフィールドにも、同じルールが当てはまります。返された公開値は保持してください。ただし、表示名が一致することを、2つの行が同じ人によるものだという証拠にしないでください。
収集規模を増やす前に保存したサンプルを確認する
Excelで開けるファイルでも、確認は必要です。行と参照関係が収集計画に合っているか確認してください。
- 保存した行数を数えます。合計を、指定した上限および記録された停止理由と照合してください。
- 重複を除いたコメントIDの数を数えます。「重複を除く」とは、異なる各IDを1回ずつ数えることです。各行を別々のコメントとして扱う前に、行数と重複を除いたID数に差があれば、その理由を調べてください。
- 返信の参照先を確認します。各返信について、nullではないすべての`parentCommentId`と`rootCommentId`が、保存された`commentId`の値の中に存在することを確認してください。
- 読み込み結果を確認します。IDの文字列と、確認対象として選んだ日付の値を、未加工のJSONと比較してください。
- 収集がどこで止まったかを記録します。上限に達して停止したのか、報告された別の理由で停止したのかを明記してください。その記録と一緒に、収集元のURLと収集日時も保存します。
nullではない参照には、空ではなく値が入っています。その値が指す行が存在しない場合、保存ファイルは参照関係の確認に不合格です。原因を調べてください。確認に合格させるために、親の行を作ったり、欠けているコメント本文を補ったりしないでください。
上限を設けた実行で得られるのは、サンプルです。取得可能なデータを最後まで収集しても、Facebookがすべてのコメントを取得可能にしていた証拠にはなりません。どちらの製品でも、Facebookが表示するすべての内容を完全に収集したとは確認できません。保存行数をFacebookの表示件数で割り、その結果を「全体に対する収集率」と呼ばないでください。そう呼ぶには、両方の件数が同じ公開データの集合を表すという証拠が必要です。
これらの確認により、より限定的で実用的な結論を得られます。保存ファイルが、指定した行のルールに従い、IDを保持し、有効な返信の参照関係を持つという結論です。明記した作業のために収集規模を増やすか判断するには、これで十分です。
次の作業がフィードバック分析であれば、Facebookコメントの出力と顧客フィードバックの分析に進んでください。出力の手順を選び、確認した後で、行データをどう使うかを説明しています。
架空の条件で選択を考える
この例はすべて架空です。分析担当者は、対象となる2件の公開投稿を把握しています。各投稿から、返信を含めて最大100行を保存する必要があります。各返信には、親への参照を残す必要があります。レポートには、開始日と終了日を含む期間も必要です。担当者は、日付を取得できないコメントが除外されることを受け入れています。
Chronometricaは、この設定要件に合います。担当者は`maxResultsPerPost`を100に設定し、返信を有効にします。数値による上限を有効なままにし、必要な開始日と終了日を指定します。異なる2件のコンテンツ全体では、収集元の制約が結果に影響する前の設定上の上限は、保存行数200です。Chronometricaのドキュメント。
保存した1つのサンプルに、最上位コメントが70件、返信が30件あるとします。含まれるコメントの行数は100です。100人や、100件の会話全体が含まれるという意味ではありません。
担当者は、保存されたIDを確認します。すべての返信について、親とルートがファイル内に存在すれば、サンプルは参照関係の確認に合格です。この結果が示すのは、保存したサンプルについてのことです。収集元のスレッド全体が完全にそろっていることを証明するものではありません。担当者はJSONとサマリーを保存し、作業用のExcelコピーを用意します。
要件を変えてみましょう。担当者がすでにApifyの公式Makeモジュールを使っており、3階層の出力を必要とし、日付は後からExcelで絞り込む場合です。この場合は、Apifyのほうが実務に適している可能性があります。Apifyのドキュメント。
実際の要件が、非公開コメントをすべて収集することであれば、公開データを扱うどちらのActorも適していません。この比較から適切な選択をするには、先に収集要件を変える必要があります。
出典と参考資料
著者 Chronometrica · 更新日
ページの先頭へ ↑