Justin

Command Palette

Search for a command to run...

返回作品典藏庫
已完成2026information-system

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 素材複製。

30 張截圖5 支 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,降低遠端手動部署成本。

相關作品