Justin

Command Palette

Search for a command to run...

Back to project archive
Completed2026information-system

Fandom / MediaWiki Scraper Platform

A MediaWiki API-first wiki data platform with SQLite browsing, analysis, export, and compliance logging.

I stabilized and upgraded the original Fandom GUI scraper into a Web-first data platform. Users can create multi-wiki campaigns, follow a compliant crawl process, generate wiki.db outputs, browse pages/categories/links/templates/images/revisions/infobox/page text, review analysis visuals, export data, and watch a full guided walkthrough.

Verified Demo Recording 1

Copied by the portfolio quality pass from existing project demo media.

30 screenshots5 demo videos

Media overview

Browse the project screenshots and recorded walkthroughs.

Project links and demo readiness

Project overview

The core of this project is not simply crawling a website. It turns Fandom / MediaWiki wiki content into an inspectable, resumable, and analyzable data platform. Users can choose the fast offline demo or a compliant live crawl preset. The process shows URL normalization, robots checks, API discovery, rate limiting, retry/backoff, checkpoints, SQLite persistence, and export. The data layer centers on `wiki.db`. The crawler writes MediaWiki pages, categories, links, templates, images, revisions metadata, infobox-like fields, and page text into SQLite. Both the Web Browse view and the Qt Viewer can read the same output, so the demo is not only a UI mockup. Users can inspect tables, search datasets, switch dataset types, paginate through rows, and download CSV/JSON/Parquet exports. The Web UI is now the main portfolio presentation. Campaigns shows multi-wiki runs, per-wiki counts, and events. Process visualizes the crawl pipeline. Browse lets users inspect the actual data. Analysis uses category bars, text terms, a network graph, and quality checks to show the value after data engineering. Compliance Log records robots, rate limits, 403/429 handling, stop reasons, and explicit non-goals. I also automated the demo evidence itself. Playwright opens the demo app, sets the Chinese UI and theme, runs the guided user assistant, jumps through each page, and captures section screenshots plus recordings. Those assets are reused in the README, live demo preview, and portfolio project page so users can quickly understand the full pipeline without hunting through the interface.

My role

Independent Python / Web Scraping / Data Engineering / GUI / Frontend Developer

Problem

A scraper can easily stop at HTML extraction and output files, but a portfolio-grade project needs to show a fuller engineering system: API-first design, compliant runtime controls, resumable data workflows, inspectable SQLite datasets, Web/Qt UI, analysis visualization, and a reproducible demo.

Solution

I first stabilized runtime dependencies and compliance boundaries, removed unsafe bypass/proxy/fingerprint naming, and eliminated eager import side effects. Then I built a MediaWiki Action API-first data flow. The Web UI is organized around Campaigns, Scraper, Process, Browse, Analysis, Export, and Compliance Log, with Playwright-generated user guide screenshots and recordings.

Current outcome

The project is now demoable as a complete Fandom / MediaWiki Wiki Data Scraper & Analysis Platform with a FastAPI backend, PyQt6 desktop viewer, SQLite wiki.db outputs, CSV/JSON/Parquet export, HTML infobox fallback, analysis visualization, bilingual Web UI, a guided user assistant, and a deployed live demo.

Highlights

  • Built an API-first crawler flow that prefers the MediaWiki Action API, using HTML parsing only as an infobox-like data fallback.
  • Stored pages, categories, links, templates, images, revisions metadata, infobox fields, and page text in SQLite for Web and Qt browsing.
  • Completed live data UX for Campaigns, Browse, and Analysis, including dataset counts, search, pagination, error drill-down, network graph, and quality summaries.
  • Added a guided user assistant, bilingual UI, indigo/light visual theme, Playwright section screenshots, and demo recordings.

Engineering challenges

  • Keeping the scraper compliant required clear boundaries: no CAPTCHA bypass, Cloudflare bypass, login wall handling, proxy pools, or fingerprint spoofing.
  • The demo needed both offline sample data and compliant live crawl presets so it would not depend on external network state while still proving the pipeline works.
  • The Qt GUI, FastAPI backend, static Web UI, SQLite schema, and portfolio page all had to reflect the same data workflow.

Target users

  • Portfolio reviewers and interviewers
  • Technical readers who need a quick view of purpose, stack, and maturity

Technical highlights

  • Detected technical signals: Python, FastAPI, PyQt6, SQLite, MediaWiki API, JavaScript, HTML, CSS, Playwright, pytest
  • README evidence exists and can support a fuller reviewed case study
  • A public GitHub repository is linked for source traceability

Architecture

This case study is generated from the portfolio catalog pipeline using README, Git metadata, package/build configuration, and media signals. The final architecture narrative still needs source-level review. Current detected technology signals include: Python, FastAPI, PyQt6, SQLite, MediaWiki API, JavaScript, HTML, CSS, Playwright, pytest.

Data flow

A public data-flow narrative is not fully reviewed yet. If the project includes data processing, AI pipelines, or backend APIs, the next pass should document input, processing, storage, and UI/output flow end to end.

Project structure

fandom-gui-scraper/
  README.md              # project documentation, when available
  source files           # implementation reviewed by local audit
  package/build config   # detected capability signals

Setup / Run guide

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.

Future improvements

  • Complete the production-quality README, screenshots, and demo recording
  • Add architecture diagrams, data-flow notes, and key technical decisions
  • Verify build/test status and update the portfolio release report

Interview notes

  • State the current maturity and demonstrable scope first
  • Focus on verified stack, source structure, and completed behavior
  • Do not claim unverified deployment, video, or test coverage as finished

Next steps

  • Add integration tests for more MediaWiki edge cases such as continuation, redirects, template-heavy pages, and image metadata.
  • Expand the analysis layer with centrality metrics, category clustering, and text quality scoring.
  • Package the live demo deployment into a more reliable container release flow to reduce manual remote deployment work.

Related projects