一個功能完整的 Facebook 貼文抓取工具,支援使用 Selenium 自動化瀏覽器來抓取貼文內容、留言,並提供朋友數量分析和視覺化圖表。
- 🎯 貼文抓取:自動抓取 Facebook 貼文的內容、圖片、留言
- 💬 留言分析:支援點擊「查看更多留言」載入更多留言(最多 100 次)
- 👥 朋友數量分析:自動分析留言者的 Facebook 朋友數量
- 📊 視覺化圖表:使用 Chart.js 繪製朋友數量分佈直方圖
- 🌐 Web UI:現代化的網頁界面,無需使用 Terminal
- 📥 數據匯出:支援匯出留言 JSON 和朋友數量分析結果
- 🔐 Cookies 支援:支援使用 Cookies 進行身份驗證
- 🔧 DEBUG Mode:開發模式,可使用示例資料快速測試
- ⚡ 並行處理:支援多個 Chrome 實例並行分析,提升效率
點擊上方圖片觀看完整功能演示影片
點擊上方圖片觀看第二個功能演示影片
影片展示了以下功能:
- Web UI 界面操作
- 貼文抓取流程
- 朋友數量分析
- 視覺化圖表展示
- 風格切換功能
- DEBUG mode 使用
- 並行處理功能
Web UI 主界面,包含 DEBUG mode 開關和 Chrome 實例數控制
右上角可切換 5 種不同風格:預設、駭客任務、高科技、賽德龐克、紅色警戒
.
├── app.py # Flask Web 應用主程式
├── selenium_facebook_scraper.py # Selenium 抓取核心功能
├── analyze_friends.py # 朋友數量分析功能
├── templates/
│ └── index.html # Web UI 前端頁面
├── img/ # 功能截圖資料夾
│ ├── main_interface.png # 主界面截圖
│ ├── scraping_results.png # 抓取結果截圖
│ ├── friends_analysis.png # 朋友數量分析截圖
│ └── friends_chart.png # 分佈圖表截圖
├── start.bat # 啟動服務器(Windows)
├── stop.bat # 停止服務器(Windows)
├── check_server.bat # 檢查服務器狀態(Windows)
├── cookies.json # Facebook Cookies(需自行準備)
├── README.md # 本文件
└── .gitignore # Git 忽略文件
- Python 3.7+
- Chrome 瀏覽器
- ChromeDriver(會自動下載)
# 安裝 Python 套件
pip install selenium flask flask-cors webdriver-manager
# 如果需要使用 facebook-scraper(舊版功能)
pip install facebook-scraper lxml_html_cleancookies.json 是用於身份驗證的 Facebook Cookies 檔案,可以讓抓取工具以登入狀態訪問 Facebook,提高抓取成功率。
-
安裝 Chrome 擴充功能:
- 前往 Chrome 線上應用程式商店
- 搜尋並安裝 EditThisCookie
- 或直接訪問:https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg
-
登入 Facebook:
- 在 Chrome 瀏覽器中打開 https://www.facebook.com
- 使用您的帳號登入 Facebook
-
匯出 Cookies:
- 點擊瀏覽器右上角的 EditThisCookie 擴充功能圖示
- 點擊「Export」按鈕
- 選擇「Export as JSON」格式
- 複製匯出的 JSON 內容
-
儲存檔案:
- 在專案目錄下創建
cookies.json檔案 - 將複製的 JSON 內容貼上並儲存
- 確保檔案編碼為 UTF-8
- 在專案目錄下創建
-
登入 Facebook:
- 在 Chrome 瀏覽器中打開 https://www.facebook.com
- 使用您的帳號登入
-
打開開發者工具:
- 按
F12或右鍵選擇「檢查」 - 切換到「Application」或「應用程式」標籤
- 按
-
查看 Cookies:
- 在左側選單展開「Cookies」
- 點擊
https://www.facebook.com - 您會看到所有 Facebook 的 Cookies
-
手動建立 JSON 檔案:
- 創建
cookies.json檔案 - 按照以下格式手動輸入重要的 Cookies(至少需要
c_user,xs,datr,fr等):
[ { "name": "c_user", "value": "您的用戶ID", "domain": ".facebook.com", "path": "/", "secure": true, "httpOnly": false, "sameSite": "no_restriction", "session": false }, { "name": "xs", "value": "您的xs值", "domain": ".facebook.com", "path": "/", "secure": true, "httpOnly": true, "sameSite": "no_restriction", "session": false } // ... 其他 Cookies ] - 創建
cookies.json 應該是一個 JSON 陣列,每個元素包含以下欄位:
name: Cookie 名稱(必填)value: Cookie 值(必填)domain: Cookie 域名,通常為.facebook.com(必填)path: Cookie 路徑,通常為/(必填)secure: 是否為安全連線,通常為true(選填)httpOnly: 是否為 HTTP Only,視 Cookie 而定(選填)sameSite: SameSite 設定,通常為no_restriction(選填)session: 是否為 Session Cookie,true表示關閉瀏覽器後失效(選填)expirationDate: 過期時間戳記(選填)
以下 Cookies 對於身份驗證特別重要:
- c_user: 用戶 ID,用於識別登入的帳號
- xs: 驗證令牌,用於維持登入狀態
- datr: 設備識別碼
- fr: Facebook 追蹤 Cookie
- sb: 瀏覽器識別碼
⚠️ 安全注意事項:
cookies.json包含您的登入憑證,請妥善保管- 絕對不要將此檔案上傳到 Git 倉庫或分享給他人
- 如果 Cookies 洩露,請立即更改 Facebook 密碼
- 建議定期更新 Cookies(約每 1-2 個月)
- 本專案的
.gitignore已設定忽略cookies.json檔案
- 啟動 Web 應用:
雙擊 start.bat 或在命令行執行:
start.bat- 停止 Web 應用:
雙擊 stop.bat 或在命令行執行:
stop.bat- 檢查服務器狀態:
雙擊 check_server.bat 或在命令行執行:
check_server.bat- 使用 Python 直接啟動:
python app.py- 訪問網頁:
在瀏覽器中打開:http://localhost:5003
-
開始抓取:
- 輸入 Facebook 貼文 URL
- 選擇點擊「查看更多留言」的次數(0-100 次)
- 勾選「使用 Cookies」(建議)
- 點擊「🚀 開始抓取」
-
查看結果:
- 實時查看抓取進度和日誌
- 查看抓取的留言內容
- 點擊「🔍 分析朋友數量」分析留言者的朋友數量
- 查看朋友數量分佈圖表
- 匯出 JSON 數據
# 直接執行 Selenium 抓取
python selenium_facebook_scraper.py- 自動抓取貼文標題、內容、圖片
- 支援抓取留言(包含作者名稱、URL、留言內容)
- 可設定點擊「查看更多留言」的次數(0-100 次)
- 自動訪問每個留言者的 Facebook 個人頁面
- 提取朋友數量資訊
- 生成 JSON 格式的分析結果
- 使用 Chart.js 繪製朋友數量分佈直方圖
- 橫軸:朋友數量(每格 20 人,最多 2000 人)
- 縱軸:落在該區間的留言者人數
- 顯示統計資訊:總人數、平均、中位數、最少、最多
selenium_post_data.json- 抓取的貼文和留言數據friend_analysis.json- 朋友數量分析結果facebook_post_screenshot.png- 頁面截圖(調試用)facebook_post_page.html- 頁面 HTML(調試用)
在 Web UI 中可以選擇:
- 0 次:只抓取初始可見的留言(預設)
- 1-100 次:點擊「查看更多留言」按鈕的次數
- 建議勾選「使用 Cookies」以獲得更好的抓取效果
- 確保
cookies.json文件存在且有效
- 遵守服務條款:使用此工具時,請遵守 Facebook 的服務條款和相關法律法規
- 僅抓取公開資料:只抓取公開可見的內容,不要侵犯他人隱私
- 頻率控制:避免過於頻繁的請求,可能導致帳號被封鎖
- 僅供學習研究:此工具僅供學習和研究用途
- Cookies 安全:請妥善保管
cookies.json,不要分享給他人
A: 可能的原因:
- Facebook 的反爬蟲機制(需要等待或使用 Cookies)
- 頁面需要登入才能查看
- URL 格式不正確
- 網路連線問題
A: 請參考上面的「準備 Cookies」說明,使用 EditThisCookie 擴充功能匯出 Cookies。
A: 可以抓取:
- 公開頁面的貼文
- 貼文的內容、圖片
- 留言(包含作者資訊)
- 留言者的朋友數量(需要分析功能)
A: 每個用戶約需 5-10 秒,具體時間取決於留言者數量。例如 20 位留言者約需 2-3 分鐘。
- 後端:Python 3.7+, Flask
- 前端:HTML, CSS, JavaScript, Chart.js
- 自動化:Selenium WebDriver
- 瀏覽器:Chrome + ChromeDriver
本專案僅供學習和研究用途。使用時請遵守相關法律法規和服務條款。
歡迎提交 Issue 和 Pull Request!




