Fandom / MediaWiki Scraper Platform
以 MediaWiki API 為優先、支援 SQLite 瀏覽、分析、匯出與合規紀錄的 Wiki data platform。
我把原本的 Fandom GUI scraper 穩定化並升級成 Web-first 的資料平台:使用者可以建立多 wiki campaign、走合規爬取流程、產生 wiki.db、瀏覽 pages/categories/links/templates/images/revisions/infobox/page text,並查看分析圖表、匯出資料與完整導覽錄影。
已驗證 Demo 錄影 1
由 portfolio quality pass 從既有專案 demo 素材複製。
媒體總覽
快速瀏覽這個專案的截圖與錄影展示。
專案連結與 Demo 狀態
專案概覽
這個專案的核心不是「抓一個網站」,而是把 Fandom / MediaWiki wiki 資料變成可檢查、可恢復、可分析的 data platform。使用者可以選擇快速離線 demo,也可以使用合規即時爬取 preset;流程會展示 URL normalization、robots check、API discovery、rate limit、retry/backoff、checkpoint、SQLite persistence 與 export。 資料層以 `wiki.db` 為中心。Crawler 會把 MediaWiki pages、categories、links、templates、images、revisions metadata、infobox-like fields 與 page text 寫入 SQLite,Web Browse 和 Qt Viewer 都可以讀同一份資料。這讓 demo 不只是看 UI,而是可以真的檢查資料表、搜尋資料集、切換 dataset、分頁瀏覽、下載 CSV/JSON/Parquet。 Web UI 是這次作品集展示的主角。Campaigns 頁呈現多 wiki run、每個 wiki 的資料量與事件;Process 頁把爬取流程視覺化;Browse 頁讓使用者查資料;Analysis 頁用 category bars、text terms、network graph 和 quality checks 顯示資料工程後的分析價值;Compliance Log 則記錄 robots、rate limit、403/429、停止原因與非目標功能。 我也把展示流程本身自動化。Playwright 會開啟 demo app、設定中文與主題、跑使用者導覽小幫手、逐步跳到對應頁面並擷取區塊截圖與錄影。這些素材會同步放進 README、live demo preview 和 portfolio project page,讓使用者不用猜功能在哪裡,也能快速看到完整 pipeline。
我的角色
獨立 Python / Web Scraping / Data Engineering / GUI / Frontend Developer
問題背景
單純 scraper 很容易停留在抓 HTML 和輸出檔案,但作品集需要展示更完整的工程能力:API-first 設計、合規 runtime 控制、可恢復資料流程、可檢查的 SQLite dataset、Web/Qt UI、分析視覺化與可重現 demo。
解決方案
我先穩定 runtime 與合規設計,移除不適合的 bypass/proxy/fingerprint 命名與 eager import 副作用,再建立 MediaWiki Action API 優先的資料流程。Web UI 以 Campaigns、Scraper、Process、Browse、Analysis、Export、Compliance Log 組成,並用 Playwright 產生使用者導覽截圖與錄影。
目前成果
專案現在可以展示為完整 Fandom / MediaWiki Wiki Data Scraper & Analysis Platform:包含 FastAPI backend、PyQt6 desktop viewer、SQLite wiki.db、CSV/JSON/Parquet export、HTML infobox fallback、分析視覺化、雙語 Web UI、使用者導覽小幫手與部署後 live demo。
作品亮點
- 建立 API-first crawler flow,優先走 MediaWiki Action API,HTML parsing 只作為 infobox-like data fallback。
- 用 SQLite 儲存 pages、categories、links、templates、images、revisions metadata、infobox fields 與 page text,並支援 Web/Qt 瀏覽。
- 完成 Campaigns / Browse / Analysis 的 live data UX:dataset count、搜尋、分頁、錯誤 drill-down、network graph 與資料品質摘要。
- 加入使用者導覽小幫手、雙語介面、indigo/light visual theme、Playwright section screenshots 與 demo recording。
技術挑戰
- 要避免把 scraper 做成灰色反爬工具,因此功能邊界必須明確:不做 CAPTCHA、Cloudflare、登入牆、代理池或 fingerprint bypass。
- 需要讓 offline demo、sample wiki.db 與 live crawl preset 同時存在,讓展示不依賴外部網路但仍能證明 pipeline 可運作。
- Qt GUI、FastAPI backend、static Web UI、SQLite schema 與 portfolio page 都要對齊同一套資料流程。
目標使用者
- 作品集審閱者與面試官
- 需要快速理解專案目的、技術棧與成熟度的技術讀者
技術亮點
- 偵測到的主要技術線索:Python, FastAPI, PyQt6, SQLite, MediaWiki API, JavaScript, HTML, CSS, Playwright, pytest
- 已有 README 作為後續補齊案例研究的依據
- 已連接公開 GitHub repository,可從作品集追溯原始碼
系統架構
此專案目前由 portfolio catalog pipeline 依 README、Git metadata、package/build 設定與素材線索建立案例頁。正式架構說明仍需依實際 source code 補齊;目前可確認的技術線索包含:Python, FastAPI, PyQt6, SQLite, MediaWiki API, JavaScript, HTML, CSS, Playwright, pytest。
資料流程
目前尚未完成可公開的資料流程說明。若此專案含資料處理、AI pipeline 或後端 API,後續應補上 input、processing、storage、UI/output 的端到端流程。
專案結構
fandom-gui-scraper/ README.md # project documentation, when available source files # implementation reviewed by local audit package/build config # detected capability signals
安裝與執行
This project does not expose a verified runnable web command yet. Review the README/source tree and add exact install, run, test, and build commands before interview use. No verified build command was detected. Treat the current portfolio page as a case-study placeholder until build steps are reviewed.
後續改進
- 補齊正式 README、截圖與 demo recording
- 補上架構圖、資料流程與關鍵技術決策
- 確認 build/test 狀態並更新 portfolio release report
面試說明重點
- 先說明此專案目前的成熟度與可展示範圍
- 聚焦在可驗證的技術棧、程式結構與已完成部分
- 不要宣稱尚未部署、尚未錄影或尚未測試的能力已完成
後續規劃
- 把更多 MediaWiki edge cases 納入 integration tests,例如 continuation、redirects、template-heavy pages 與 image metadata。
- 擴充 analysis layer,例如 centrality metrics、category clustering 與 text quality scoring。
- 把 demo deployment 拆成更穩定的 container release flow,降低遠端手動部署成本。