snscrape 是社群網路服務 (SNS) 的抓取工具。它會抓取用戶個人資料、主題標籤或搜尋等內容,並傳回發現的項目,例如相關貼文。
目前支援以下服務:
snscrape 需要 Python 3.8 或更高版本。安裝 snscrape 時會自動安裝 Python 套件相依性。
請注意,相依性之一 lxml 也需要安裝 libxml2 和 libxslt。
pip3 install snscrape
如果你想使用開發版本:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
snscrape 的 CLI 的通用語法是:
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
和snscrape SCRAPER-NAME --help
提供有關選項和參數的詳細資訊。 snscrape --help
也列出了所有可用的抓取工具。
CLI 的預設輸出是每個結果的 URL。
一些值得注意的全球選項是:
--jsonl
取得 JSONL 格式的輸出。這包括 snscrape 提取的所有資訊(例如訊息內容、日期時間、圖像;詳細資訊因抓取工具而異)。--max-results NUMBER
僅傳回前NUMBER
結果。--with-entity
取得正在抓取的實體上的項目,例如使用者或頻道。並非所有抓取工具都支援此功能。 (您可以將其與--max-results 0
一起使用以僅獲取實體資訊。) 收集 Jason Scott (@textfiles) 的所有推文:
snscrape twitter-user textfiles
將輸出重定向到檔案以進行進一步處理通常很有用,例如在 bash 中使用檔案名稱twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
要獲取帶有 #archiveteam 標籤的最新 100 條推文:
snscrape --max-results 100 twitter-hashtag archiveteam
也可以使用 snscrape 作為 Python 中的函式庫,但目前尚未記錄。
如果您發現 snscrape 有問題,請在 https://github.com/JustAnotherArchivist/snscrape/issues 報告。如果您使用 CLI,請使用-vv
執行 snscrape 並將日誌輸出包含在問題中。如果您使用 snscrape 作為模組,請使用匯入import logging; logging.basicConfig(level = logging.DEBUG)
(在使用 snscrape 之前)並將日誌輸出包含在問題中。
在某些情況下,偵錯可能需要比日誌中提供的資訊更多的資訊。 CLI 有一個--dump-locals
選項,可以根據重要的日誌訊息(而不是預設僅在崩潰時)轉儲 snscrape 中的所有本地變數。請注意,轉儲檔案在某些情況下可能包含敏感訊息,並可能被用來識別您的身分(例如,如果服務在其回應中包含您的 IP 位址)。如果您希望私下安排文件傳輸,只需在問題中提及即可。
該程式是免費軟體:您可以根據自由軟體基金會發布的 GNU 通用公共授權(許可證的第 3 版)或(由您選擇)任何更高版本的條款重新分發和/或修改它。
分發此程序的目的是希望它有用,但不提供任何保證;甚至沒有適銷性或特定用途適用性的默示保證。有關更多詳細信息,請參閱 GNU 通用公共許可證。
您應該隨該程式一起收到 GNU 通用公共授權的副本。如果沒有,請參閱 https://www.gnu.org/licenses/。