JuggerBot icon
JuggerBot
Stable Beta Web Capture Engine
Stable Beta HTML to PNG Tor-Aware

JuggerBot

JuggerBot is a beast-class web screenshot crawler built for full-page capture, crawl-depth reconnaissance, Tor-routed page rendering, file discovery, JSON run logs, and portable HTML reports. It began as a simple HTML-to-PNG utility and evolved into a controlled crawler console with a dark cyber interface, stop-safe capture handling, Playwright rendering, and report output that can move with the release folder instead of breaking into absolute-path rubble.

Overview

JuggerBot is designed to capture web pages as rendered screenshots, not just raw HTML. It uses a browser-backed capture engine so modern pages, redirects, stylesheets, layouts, and page height can be handled closer to how a real browser sees them. The tool is built around a Tkinter desktop interface with crawl controls, Tor proxy options, screenshot dimensions, file discovery, JSON logging, and HTML report generation.

The goal is simple: enter a target URL, choose how deep the crawler should go, decide whether Tor should be used, optionally scrape downloadable files, then generate a structured capture run with screenshots, metadata, logs, and a readable report.

Stable Beta means the current build is locked as a functional milestone. The crawler, screenshot engine, report system, stop behavior, and packaged runtime have reached a usable test state. This is still a beta, so field testing remains part of the monster’s diet.

Core Features

Full-Page Screenshots

Captures rendered pages into PNG files with browser-backed layout handling and full-page screenshot support.

HTML to PNG Utility

Works as a practical HTML page capture tool for local sites, public pages, test deployments, and crawler diagnostics.

Tor SOCKS Proxy Support

Routes HTTP and browser capture traffic through a SOCKS proxy when Tor mode is enabled.

Tor Identity Rotation

Includes controls for requesting Tor identity rotation through the control port when configured with the proper password.

Crawl Depth Control

Supports link-following with configurable maximum depth, maximum page count, and same-domain-only behavior.

File Discovery

Optionally checks linked resources for downloadable files such as ZIP, PDF, text, image, JSON, XML, and document assets.

JSON Logs

Every run records structured JSON output including page status, URLs, screenshots, errors, file metadata, and run details.

Portable HTML Reports

Reports are generated for easy review with links to screenshots and downloaded files stored alongside the report folder.

Stop-Safe Capture

The stable beta build focuses on making the Stop control interrupt active capture behavior without trashing the interface.

Interface Modules

General

  • Start URL input
  • Output base directory selection
  • User-Agent override field
  • Start Run, Stop, Save Config, and Rotate Now controls

Tor

  • SOCKS proxy address
  • Control host and port
  • Control password support
  • Optional identity rotation before each page

Browser

  • Viewport width
  • Minimum screenshot height
  • Maximum screenshot height
  • Timeout controls for browser capture behavior

Crawl

  • Follow links toggle
  • Same-domain-only toggle
  • Download scrapeable files toggle
  • Maximum crawl depth and page count settings

Runtime Output

Output Purpose Typical Location
Screenshots Full-page PNG captures generated during the crawl run. JuggerBot/screenshots/
Downloads Optional discovered file downloads from crawled pages. JuggerBot/downloads/
Reports HTML summaries with page status, links, screenshots, and errors. JuggerBot/reports/
Logs Structured JSON logs containing run data, page data, file data, and errors. JuggerBot/logs/

Configuration Notes

JuggerBot uses a local configuration file so the application can remember browser settings, Tor settings, crawl settings, download options, and output directories. The stable beta build is intended to keep the configuration beside the application during regular use and portable testing.

Tor SOCKS: socks5://127.0.0.1:9050
Tor Control: 127.0.0.1:9051
Default viewport: 1440px
Default output folders: screenshots, downloads, logs, reports
Report links: relative paths, not absolute local file paths

Packaging Notes

The stable beta build uses Python, Tkinter, httpx, BeautifulSoup, Stem, and Playwright. When packaged with PyInstaller, the Playwright browser path must be handled cleanly so Chromium can be located at runtime. The current packaging direction favors setting the Playwright browser path inside the application rather than relying on shell wrapper scripts.

Playwright is powerful, but it is not a tiny dependency. Browser binaries are the heavy artillery. If the executable reports a missing Chromium or headless shell path, the Playwright browser install path must be corrected before capture can work.

Changelog

Stable Beta Lock

  • Locked JuggerBot as a stable beta milestone after successful runtime testing.
  • Confirmed themed Tkinter interface as the preferred UI direction.
  • Preserved cyber interface styling with black backgrounds, green text, blue structure, and red hover/error accents.
  • Confirmed full-page screenshot capture as the primary feature.
  • Confirmed crawl queue discovery and one-page capture path.
  • Validated JSON log creation after runs.
  • Validated HTML report creation after runs.
  • Identified and corrected report path behavior so screenshots can be linked through portable relative paths.

Stop Button Stabilization

  • Moved blocking screenshot capture behavior into a stop-safe execution path.
  • Added process termination behavior for active capture operations.
  • Preserved the existing UI, colors, layout, controls, and output behavior while fixing stop behavior.
  • Added defensive handling for interrupted capture results.
  • Improved Stop status reporting inside the live log.
  • Reduced the risk of a stalled browser capture keeping the application trapped after Stop is clicked.

Report System Fixes

  • Confirmed reports live inside a reports directory while screenshots live in a sibling screenshots directory.
  • Corrected screenshot link strategy to use relative references such as ../screenshots/file.png.
  • Corrected report portability expectations so generated HTML can be opened from the report directory without local absolute path edits.
  • Documented the distinction between write paths used by the application and display paths used by the report.

Playwright / PyInstaller Runtime Notes

  • Confirmed compiled build can launch but requires Playwright browser path handling.
  • Identified missing Chromium headless shell errors caused by PyInstaller runtime extraction paths.
  • Set application-side Playwright browser path handling to avoid unprofessional wrapper-script dependency.
  • Validated that the application must be built from the same Python virtual environment where dependencies are installed.

Crawler / Download Handling

  • Maintained same-domain crawl option.
  • Maintained max-depth and max-pages controls.
  • Maintained optional scrapeable file discovery.
  • Observed that closing an active HTTP client after Stop can create expected stopped-client errors if downstream download loops continue; stop checks should prevent further request attempts after cancellation.

UI / Theme

  • Added full cyber hacker theme treatment.
  • Applied black background base with green, blue, and red accent system.
  • Styled notebook tabs, buttons, entries, checkboxes, tree views, scrollbars, progress bars, and live logs.
  • Kept application identity focused on a crawler console rather than a generic desktop utility.

Downloads

Known Beta Notes