

# 如何從 Instagram 貼文說明與首則留言收集主題標籤

先收集已知貼文的最上層留言文字，核對哪則留言屬於貼文擁有人，然後擷取主題標籤。Actor 是託管的數據收集程式。Task 是已儲存的輸入預設。Actor 收集來源列，分析由你來做。

## 收集步驟

1. 選定一則已知貼文，並保留其 URL 或短代碼。把公開來源上的現有貼文說明，連同觀察時間，抄入獨立的說明欄位。留言 Actor 不提供貼文說明。不要使用過往研究的舊端點。
2. 以預設順序跑一個小型試點樣本，把 `maxCommentsPerPost` 設為 `3`。把 `postUrls` 設為你已知的公開貼文或 Reel URL，把 `collectAllAvailable` 設為 `false`，把 `commentSortMode` 設為 `default`。檢查目標身分、文字和 `OUTPUT`。`savedRows` 和 `cappedTargets` 是該次運行的合計。目標項目為每個目標保存 `resultState`、`sampleHealth` 和 `stopReason`。已檢查的現行三列上限對照，只核對來源身分、文字和日期。它不能證明已找回擁有人留言，也不能證明按時間順序的首則留言。不要因上限較高而承諾會取得擁有人留言。只在有充分理由的已知貼文上提高上限。如果公開樣本隱藏了所需留言，把首則留言標籤證據標為未知，並人手查看該則公開貼文。
3. 從來源貼文辨認擁有人帳戶。如有 `ownerId`，就用它來配對，因為[用戶名稱本身可能會改變](/zh-Hant/articles/%E5%89%B5%E4%BD%9C%E8%80%85%E5%90%8D%E5%96%AE-instagram%E5%80%8B%E4%BA%BA%E6%AA%94%E6%A1%88%E5%8E%BB%E9%87%8D/)。一則標註創作者的留言，並非由創作者所寫。作者配對含糊時，保持為未解決。
4. 保留每則候選的擁有人所寫留言的 `commentId`、`text`、`createdAt`、`ownerId`、`ownerUsername`、`ownerVerified`、`likesCount`、`repliesCount`、`collectedAt` 和來源 URL。注意 `repliesCount` 是顯示的計數，不是回覆匯出。人手檢查它是否為預期的最初主題標籤留言。由舊到新只會排序已收集的公開樣本。它不能確定真正的首則留言。不要把不確定的候選標成首則。
5. 擷取可見的主題標籤符記，保留原始拼寫，並另做一個大小寫摺疊的比較鍵。使用清晰的符記規則。英文方面，接受井號後面緊接字母、數字或底線。標點符號結束該符記。其他文字系統需要對應規則和人手檢查。排除用戶提及、電郵地址，以及單獨的井號。
6. 建立來源表。包括貼文鍵、留言鍵或貼文說明來源、作者核對、原始標籤、正規化鍵、`collectedAt` 和狀態。不要把其他用戶的標籤混入擁有人的標籤。
7. 比較貼文說明標籤鍵與已核對的擁有人留言標籤鍵。報告只在說明、只在留言，以及共用的集合。把未能取得的擁有人留言證據，放在空集合聲稱之外。這顯示觀察到的標籤放置位置，不是觸及的證明。

## 虛構的逐步演算示例

以下是一個原創虛構例子，用來顯示這張表如何運作。虛構貼文 P1 的說明是「Garden notes #LeafCare #HomeGarden.」。一則已核對的擁有人留言 C1 寫着「More tags: #HomeGarden #SoilMix #LeafCare #SoilMix.」。另一個帳戶 C2 寫着「Nice #PlantSale.」。

擁有人身分與 C1 相符，其最初放置位置已在公開貼文上檢查。貼文說明集合有 leafcare 和 homegarden。擁有人留言集合有 homegarden、soilmix 和 leafcare。共用標籤是 leafcare 和 homegarden。只在留言的是 soilmix。只在說明的集合是空的。

貼文說明和留言合共六次主題標籤出現，變成三個不同的擁有人曾用鍵。重複的 soilmix 出現仍留在來源數據。來自 C2 的 plant sale 標籤不納入擁有人曾用集合，但仍留在來源數據。如果另一次運行看不到 C1，應說擁有人留言標籤未能取得，而不是說擁有人沒有使用留言主題標籤。

在下表中，`Manual post-owner match`（欄位顯示為「人手貼文擁有人配對」）是讀者檢查：留言的 `ownerId` 是否與擁有該貼文的帳戶相符。原生的 `ownerVerified` 是公開徽章欄位，不是貼文擁有權的證明。虛構數據沒有提供徽章值，所以保持為未知。表中的 `Active` 和 `Excluded` 值（分別顯示為「有效」和「排除」）代表讀者的審閱決定，不是原生數據集狀態，因為 Actor 沒有數據集狀態欄位。原生的 `postUrl`、`postId` 和 `postShortCode` 會保留在每一筆實際來源列；虛構使用讀者貼文鍵 P1，未提供的真實 URL 和識別碼標為未知，而不是捏造。

| 貼文鍵 | 貼文 URL | 貼文 ID | 貼文短代碼 | 來源 | 人手貼文擁有人配對 | 原始標籤 | 正規化鍵 | 收集時間 | 狀態 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| P1 | 未知 | 未知 | 未知 | 貼文說明 | 是 | #LeafCare | leafcare | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | 貼文說明 | 是 | #HomeGarden | homegarden | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | C1 | 是 | #HomeGarden | homegarden | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | C1 | 是 | #SoilMix | soilmix | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | C1 | 是 | #LeafCare | leafcare | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | C1 | 是 | #SoilMix | soilmix | 2026-10-13 | 有效 |
| P1 | 未知 | 未知 | 未知 | C2 | 否 | #PlantSale | plantsale | 2026-10-13 | 排除 |

## 下一步

用 [Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper) Actor 和預設的 [Task](https://apify.com/chronometrica/instagram-comments-scraper/examples/instagram-comments-scraper) 輸入來跑試點樣本，先收集最上層留言列，再檢查標籤來源。

## 來源與延伸閱讀

- [Instagram Comments Scraper Actor](https://apify.com/chronometrica/instagram-comments-scraper)
- [Instagram Comments Scraper Task](https://apify.com/chronometrica/instagram-comments-scraper/examples/instagram-comments-scraper)
- [歷史研究問題](https://www.reddit.com/r/webscraping/comments/aefai8/how_can_i_webscrape_instagram_hashtags_that_are/)