

# Chronometrica 與 Techforce Facebook Public Comments：哪個能保存可取得的留言日期？

如果你需要從已知的 Facebook 公開留言串保存可取得的留言日期，並能接受未公開的日期保留為 `null`，可選擇 Chronometrica。

Chronometrica 是本次比較中自家 Actor 的發布者。Actor 是託管式資料擷取程式。經查核的輸出包含記錄留言發布日期的 `publishedAt`，以及記錄擷取時間的 `scrapedAt`。確切的發布時間戳記不一定公開，因此 `publishedAt` 可能為 `null`。這能在日期可取得時保存日期，但不保證每則留言都有確切日期。[Chronometrica Facebook Comments Scraper](https://apify.com/chronometrica/facebook-comments-scraper)

如果你的專案只需要從粉絲專頁擷取留言文字和使用者名稱，選擇就會不同。Techforce Facebook Public Comments 適合這項較精簡的需求。經查核的功能規格不包含留言時間戳記。[Techforce Facebook Public Comments](https://apify.com/techforce.global/facebook-public-comments)

如果每筆儲存的資料都必須包含滑鼠停在留言上時顯示的確切日期，這 2 個經查核的功能規格都沒有提供這項保證。

## 先確定需要保存哪種日期

讀者的問題很直接：如何保存 Facebook 留言的確切時間？這則公開提問希望保留留言日期，而非只保留幾分鐘前或幾小時前的相對時間。這是日期保存問題。[讀者的原始提問](https://www.reddit.com/r/webscraping/comments/ysjeit/help_how_to_save_exact_time_of_a_facebook_comment/)

選擇 Actor 前，先寫下「時間」在你的專案中代表什麼。以下 2 種不同事件各有自己的日期：

- 使用者發布留言。
- 擷取程式儲存留言。

這些事件可能相隔數天或數月。擷取日期無法告訴你使用者何時寫下留言。

接著，確定工作需要多詳細的日期資訊。每日審查可能只需要年月日。要確定事件先後順序，則可能需要確切時間。符合前者需求的值，未必符合後者。

擷取資料前，先明確訂出需求。例如：「每則通過驗收的留言都必須有公開的發布日期。沒有日期的留言另放在一組審查。」這項規則能保留有用的日期記錄，也能讓缺失日期清楚可見。

更嚴格的規則可能要求每筆資料都有確切發布時間。這會影響選擇，因為允許缺失值的欄位，本身無法滿足這項規則。先查核公開來源提供哪些資訊，再查核儲存的值是否具有所需的詳細程度。

## 依照需求比較功能規格

本文所稱的功能規格，是指 Actor 文件記載的輸入、輸出欄位及限制。本次比較採用於 2026 年 10 月 20 日查核的公開功能規格。本文沒有報告新的擷取執行結果，也沒有提供實測效能結果。

| 決策項目 | Chronometrica | Techforce Facebook Public Comments |
| --- | --- | --- |
| 必要輸入 | 已知的公開貼文、Reel、影片或相片網址 | 粉絲專頁／個人檔案 |
| 此工作每筆輸出的內容 | 1 則已儲存的留言；可選擇將回覆另存為獨立資料列 | 頂層留言文字 |
| 所需欄位 | `publishedAt`、`scrapedAt` | `post_url`、`comment_username`、`comment_text` |
| 缺失日期處理規則 | 無法取得的 `publishedAt` 值保留為 `null` | 不包含留言時間戳記 |
| 主要限制 | 不一定能取得公開的確切發布日期 | 不輸出留言時間戳記 |
| 影響選擇的條件 | 需要保留可取得的發布日期時使用 | 需要從粉絲專頁擷取文字且不需要日期時使用 |

來源：[Chronometrica 的公開功能規格](https://apify.com/chronometrica/facebook-comments-scraper)、[Techforce 的公開功能規格](https://apify.com/techforce.global/facebook-public-comments)。

先確認必要欄位，再查核輸入方式。如果無法提供支援的來源，有日期欄位也沒有幫助。如果輸出缺少決策所需的欄位，即使來源受支援也沒有幫助。

如果較精簡的功能規格能滿足全部需求，就選擇它。只需要文字的專案，不必加入日期處理。同樣，也不要因為另一種匯出方式較容易開始，就取消日期需求。

## 區分發布時間與擷取時間

Chronometrica 提供 2 個含義不同的欄位。`publishedAt` 儲存可取得的留言發布日期。`scrapedAt` 記錄擷取時間。首次審查匯出資料時，請保留這 2 個欄位的原始名稱。[Chronometrica 輸出欄位](https://apify.com/chronometrica/facebook-comments-scraper)

用 `publishedAt` 判定留言是否有符合規則的日期。用 `scrapedAt` 記錄擷取發生的時間。後者可協助追蹤擷取工作，但不能用來填補前者的缺失值。

將 `null` 視為缺失值。在試算表中，可以將它顯示為空白儲存格。請在工作筆記及後續匯出資料中清楚保留其含義。不要將它改成 0、擷取日期或虛構的預設日期。

也要區分相對時間標籤與確切日期。「2 小時前」這類標籤，是相對於另一個時間點的描述。它與公開的確切時間戳記並非同等證據。不要從擷取時間減去 2 小時，再將結果當成留言的確切發布時間。

如果儲存的日期包含時間，請先檢查時區資訊，再與其他日期比較。如果缺少時區資訊，請記錄這項不確定性。不要假設 2 個顯示的時間使用相同時區。

這些檢查可維持資料含義。填滿空白儲存格後，欄位可能看似完整，但實際的發布日期仍然未知。請讓未知日期清楚可見，讓下一位使用者能正確判斷結果。

## 從已知留言串設定小規模擷取

這項工作需要向 Chronometrica 提供已知的內容網址。輸入可接受 1–100 個公開貼文、Reel、影片或相片連結。經查核的輸入結構也支援短連結及分享連結。粉絲專頁、社團、個人檔案、限時動態及私人連結不適用於此輸入方式。[Chronometrica 輸入結構](https://apify.com/chronometrica/facebook-comments-scraper)

已發布的 [Facebook 留言與回覆匯出 Task](https://apify.com/chronometrica/facebook-comments-scraper/examples/facebook-comments-and-replies-export) 提供初始預設設定。Task 是為 Actor 儲存的一組輸入預設值。開啟 Task 頁面，並不能確定目前儲存了哪些輸入值。執行前請先檢查輸入。

以下範例已依照提供的公開輸入結構通過靜態檢查。靜態檢查會驗證輸入格式及允許的值。它不會擷取留言，也不能證明範例來源目前仍可用。

```json
{
  "startUrls": [
    "https://www.facebook.com/reel/1733966934399341"
  ],
  "maxResultsPerPost": 100,
  "includeReplies": false
}
```

從已知留言串設定小規模擷取

將範例網址換成你要使用的公開來源。在此範例中，`maxResultsPerPost` 將該網址儲存的結果上限設為 100 筆。這不保證會取得 100 筆結果。經查核的輸入結構允許將上限設為 1 至 10,000。[Chronometrica 輸入限制](https://apify.com/chronometrica/facebook-comments-scraper)

範例將 `includeReplies` 設為 `false`。如果專案需要回覆，請改為 `true`。回覆會另存為獨立的付費資料列，並計入各網址的同一個結果上限。請依照研究問題的範圍選擇此設定。只審查頂層留言與審查完整對話，需求並不相同。[Chronometrica 回覆設定](https://apify.com/chronometrica/facebook-comments-scraper)

## 使用匯出資料前，先完成 4 項驗收檢查

驗收檢查是用來判定輸出是否符合需求的規則。首次執行前，先寫下這些規則。這能避免看到資料後才更改標準。

### 1. 指明所需的日期

寫明你需要發布時間還是擷取時間。如果需要發布時間，請在規則中指明 `publishedAt`。保留 `scrapedAt`，用於記錄擷取時間。

也要說明所需的詳細程度。「只需年月日」與「必須有確切時間」是不同規則。如果需要時區，也請將它寫入規則。

小規模審查只需簡短一句話。多人合作時，請將規則放在匯出資料旁，讓其他人不必猜測就能套用。

### 2. 更改前先檢查儲存的值

保留一份原始輸出副本。在不同欄位中審查 `publishedAt` 和 `scrapedAt`。從小型樣本中檢查幾個已有值的日期，以及每個缺失的發布日期。

留意試算表顯示方式可能與儲存資料不同的值。縮短的儲存格顯示可能隱藏時間細節。空白儲存格可能掩蓋原始值為 `null` 的事實。先檢查儲存的值，再判定其含義。

如果更改顯示格式，請保留原始值。更清楚的顯示方式不應增加來源未提供的精確度。

### 3. 清點缺失的發布日期

計算已儲存的資料列總數。再分別計算發布日期符合及不符合規則的資料列數。尚未釐清的值應另行分組。

這些組別應涵蓋整份匯出資料。這樣能發現篩選時遺漏的資料列，也更容易說明結果：部分留言可用於依日期進行的工作，其他留言則仍無日期或日期不確定。

樣本的完整率只能描述該樣本。它不能確定你從其他留言串會取得什麼結果。不要將 1 個成功樣本變成對未來來源的保證。

### 4. 明確作出驗收決定

如果允許缺失日期，請保留這些留言及其缺失值。說明後續分析會納入還是排除這些留言。

如果每筆資料都需要符合條件的日期，只要有 1 個缺失或尚未釐清的值，該份匯出資料就不符合規則。擷取更多資料列，無法解決現有資料列的日期缺失問題。

如果後續工作需要依問題是否已獲回答來分組留言，請參閱[如何找出 Facebook 留言中尚未獲答的問題](/zh-Hant/articles/%E6%89%BE%E5%87%BAfacebook%E7%95%99%E8%A8%80%E4%B8%AD%E6%9C%AA%E7%8D%B2%E5%9B%9E%E8%A6%86%E7%9A%84%E5%95%8F%E9%A1%8C/)。該指南涵蓋更完整的審查方法。如果時間會影響你的研究問題，請先完成日期檢查。

## 虛構範例：3 則留言，2 個可用日期

這是虛構範例。它不是產品測試、買家成果、即時資料集或實測成本結果。以下日期用來說明驗收決定，並非實際的 Actor 回應格式。

一位研究人員想將 3 則已儲存的留言依日期排序。規則允許缺失日期，但無日期的留言必須留在日期排序之外。

1. 第 1 則虛構留言的 `publishedAt` 值為 2026 年 10 月 18 日 09:15 UTC。其 `scrapedAt` 值記錄的擷取時間為 2026 年 10 月 20 日 12:00 UTC。
2. 第 2 則留言的 `publishedAt` 值為 2026 年 10 月 18 日 10:05 UTC。其 `scrapedAt` 值記錄了相同的擷取時間。
3. 第 3 則留言為 `publishedAt: null`。其 `scrapedAt` 值也記錄了該擷取時間。

UTC（協調世界時）是常用的時間基準。在這個虛構範例中，2 個發布時間都使用 UTC，因此研究人員可以直接比較。

第 1 則留言早於第 2 則留言。第 3 則留言在此順序中的位置未知。它的擷取時間不能證明其發布時間晚於另外 2 則留言。

檢查涵蓋全部 3 筆資料：2 筆有可用的發布時間，1 筆缺少發布時間。研究人員將第 3 筆資料保留在無日期組別中，不會將它的日期或時間設為午夜或 10 月 20 日。

按照上述規則，匯出資料可讓 2 則留言依日期排序，同時保留第 3 則留言供另行審查。如果規則改為要求全部 3 則留言都有確切發布時間，這份匯出資料就不符合需求。

如果這個虛構專案改為只需要從粉絲專頁擷取文字及使用者名稱，不需要日期，Techforce 較精簡的文字功能規格便適合。[Techforce Facebook Public Comments](https://apify.com/techforce.global/facebook-public-comments)

## 依缺失日期規則決定推薦方案

如果你有受支援的公開內容網址，需要可取得的留言發布日期，並能將缺失日期保留為 `null`，Chronometrica 就符合經查核的需求。它以不同欄位記錄日期，讓你保留發布與擷取的區別。[Chronometrica Facebook Comments Scraper](https://apify.com/chronometrica/facebook-comments-scraper)

影響選擇的主要條件，是能否接受無法取得發布日期。如果可以，允許空值的欄位就能支援這項工作。如果每則留言都必須有滑鼠停留時顯示的確切日期，經查核的文件不足以確認能滿足這項需求。

不要依據假設的速度、準確度、涵蓋範圍或成本優勢作選擇。本次比較沒有在相同條件下執行測試，也沒有經核准的價格計算。證據所支持的差異，是輸入、文件記載的欄位，以及缺失日期的處理方式。

## 從你要使用的公開來源開始

開啟 [Facebook 留言與回覆匯出 Task](https://apify.com/chronometrica/facebook-comments-scraper/examples/facebook-comments-and-replies-export)。替換範例網址、檢查結果上限，並設定回覆選項。擷取前，寫下 `publishedAt` 值必須符合的規則。

如果規則允許無法取得的公開日期保留為 `null`，請使用 [Chronometrica Facebook Comments Scraper](https://apify.com/chronometrica/facebook-comments-scraper)。審查首次輸出時，並排檢視 `publishedAt` 和 `scrapedAt`。只有在儲存的值及缺失日期處理方式符合既定需求時，才通過驗收。

## 來源與延伸閱讀

- [Chronometrica Facebook Comments Scraper：公開說明及輸入結構](https://apify.com/chronometrica/facebook-comments-scraper)
- [Techforce Facebook Public Comments：公開說明](https://apify.com/techforce.global/facebook-public-comments)
- [Facebook 留言與回覆匯出 Task](https://apify.com/chronometrica/facebook-comments-scraper/examples/facebook-comments-and-replies-export)
- [關於保存 Facebook 留言確切時間的原始提問](https://www.reddit.com/r/webscraping/comments/ysjeit/help_how_to_save_exact_time_of_a_facebook_comment/)
- [如何找出 Facebook 留言中尚未獲答的問題](/zh-Hant/articles/%E6%89%BE%E5%87%BAfacebook%E7%95%99%E8%A8%80%E4%B8%AD%E6%9C%AA%E7%8D%B2%E5%9B%9E%E8%A6%86%E7%9A%84%E5%95%8F%E9%A1%8C/)