What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Use APScheduler to decide when a Python function runs, and Playwright to open the site and capture it. For the example below, install APScheduler 3.x and Playwright, install Playwright’s Chromium browser, then run a persistent Python process. Choose an interval trigger for a fixed elapsed cadence or a cron trigger for calendar times such as weekdays at 9 a.m.
Install APScheduler and Playwright
This example uses APScheduler’s 3.x interface. Its job-and-scheduler API differs from the newer task-and-schedule interface in the current APScheduler documentation, so keep your installed major version aligned with your code. The example uses Playwright’s synchronous Python API.
-
In the Python environment that will run the scheduler, install APScheduler 3.x and Playwright:
python -m pip install "APScheduler>=3,<4" playwright -
Install the browser binary separately:
python -m playwright install chromium -
On Linux or in a container, install the operating-system libraries required by the browser as well. The browser and its dependencies must be present in the environment where the scheduled job executes, not just on your development machine.
Recommended: Crashes or Glitches? A Free Driver Scan Usually Finds the Culprit →Recommended: Fix Windows Errors and Clear Junk Files in Minutes - Free Scan →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Playwright runs browsers headlessly by default, so a graphical desktop is not required for ordinary captures.
Write a capture function and schedule it
Save this as scheduled_screenshot.py. It creates an output directory, navigates to the target, waits for the page’s load event, captures a full-page PNG, and closes the browser even if navigation or capture fails.
from datetime import datetime
from pathlib import Path
from apscheduler.schedulers.blocking import BlockingScheduler
from playwright.sync_api import sync_playwright
URL = "https://example.com"
OUTPUT_DIR = Path("screenshots")
def capture_website(url: str = URL) -> None:
"""Capture one full-page screenshot, named with its capture time."""
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
output_path = OUTPUT_DIR / f"website-{timestamp}.png"
with sync_playwright() as playwright:
browser = playwright.chromium.launch()
try:
page = browser.new_page()
page.goto(url, wait_until="load", timeout=60_000)
page.screenshot(path=str(output_path), full_page=True)
print(f"Saved {output_path}")
finally:
browser.close()
if __name__ == "__main__":
scheduler = BlockingScheduler()
scheduler.add_job(
capture_website,
trigger="interval",
minutes=30,
id="example-site-screenshot",
max_instances=1,
coalesce=True,
)
scheduler.start()
Run it with python scheduled_screenshot.py. A blocking scheduler keeps the script in its scheduler loop; stop it with the normal process shutdown mechanism for your environment. The first scheduled run occurs on the interval cadence, rather than immediately at startup. If you need a startup capture too, call capture_website() explicitly before starting the scheduler.
Choose the right trigger
Use interval for elapsed time
An interval trigger is suited to requests such as “capture every 30 minutes.” The interval controls when a run becomes due; it does not guarantee that a capture finishes within 30 minutes. If the prior capture is still running when the next one is due, APScheduler 3.x’s default is one concurrent instance of a job. The next run may be treated as a misfire, so set concurrency and misfire behavior intentionally for your workload.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Use cron for calendar times
For a weekday capture at 9 a.m., replace the add_job call with a calendar trigger:
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
scheduler.add_job(
capture_website,
trigger="cron",
day_of_week="mon-fri",
hour=9,
minute=0,
id="weekday-morning-screenshot",
max_instances=1,
coalesce=True,
timezone="America/New_York",
)
Set the timezone explicitly when the schedule means local wall-clock time. Cron fields combine to determine matching fire times; they are not interchangeable with “wait this many minutes after the previous run.” Use a timezone appropriate to the schedule and deployment.
Choose what the screenshot includes
Viewport or full page
page.screenshot(path="capture.png") saves the current viewport. Use full_page=True to capture the page’s full scrollable extent. Full-page output can be very tall on long pages; use viewport capture when you need a consistent above-the-fold image.
Wait for content the page loads later
The sample waits for the browser’s load event, which may not mean a site’s client-rendered or delayed content is ready. For a known element, wait for that selector before capturing:
page.goto(url, wait_until="load", timeout=60_000)
page.locator("main article").wait_for(state="visible", timeout=30_000)
page.screenshot(path=str(output_path), full_page=True)
Replace the selector with one that identifies the content you actually need. A selector that does not appear will time out; do not add an arbitrary delay unless the page offers no more reliable readiness condition.
Capture multiple sites
For sites with independent schedules, retries, logs, or retention needs, create one scheduled job per site with a stable job ID. If every site shares the same cadence and operational policy, one dispatcher job can read a target list and capture each URL. The dispatcher is simpler, but one slow or failing site can affect later targets unless failures are handled per target.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Keep the schedule reliable across restarts
A scheduler running only in memory loses its schedule and job state when the process exits or crashes. APScheduler 3.x can use a persistent job store, but persistence does not keep the Python process alive. Run the service under a suitable process or container supervisor, or use an external scheduler/worker arrangement.
For jobs added during application startup to a persistent store, assign each job an explicit stable ID and use replace_existing=True when registering it. This prevents startup from adding another copy of the same job every time the application restarts. Ensure the callable can be imported by the scheduler and that the browser binaries and system dependencies are installed on the executing host.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Operational choices that affect output and cost
-
Output naming and retention: the sample uses a timestamped filename so later captures do not overwrite earlier ones. Add a retention policy if the directory must not grow indefinitely.
-
Capture duration: record each run’s start, success or exception, and duration. Pages can be slow or unreachable, and a longer-than-expected capture can collide with the next scheduled time.
-
Failure handling: navigation timeouts and browser launch errors should be logged and surfaced to your monitoring. Ensure cleanup runs on exceptions, as in the sample’s
finallyblock.Rank #4
SaleUGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
-
Execution continuity: a persistent job store preserves scheduler data, while a supervisor keeps the process running. These solve separate reliability problems.
Recommended Free Tools
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Storage: PNG files can accumulate quickly, particularly for full-page captures. Choose output format, retention, and any post-processing to fit the downstream use.
Troubleshooting
Playwright says the browser executable is missing
Install the browser binary in the same environment that runs the job with python -m playwright install chromium. In a Linux deployment, also install the browser’s system dependencies there.
The script exits and no later screenshots appear
The scheduler only runs while its containing process is alive. Start it as a long-running service or worker, and configure the deployment to restart it when needed. A persistent store alone does not keep a stopped process running.
A scheduled capture is skipped or late
Check whether a previous run was still active, whether the process was unavailable at the scheduled time, and how the job’s instance, misfire, and coalescing settings are configured. Log each run’s timing and exceptions so you can distinguish a slow capture from a stopped scheduler.
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
The image is blank or misses the important content
Confirm the destination URL is correct and that navigation completed. If the page renders content after the load event, wait for a meaningful visible selector before taking the screenshot. For very long pages, consider whether the relevant content is outside the captured viewport or whether full-page capture is required.
Restarting creates duplicate jobs
When registering a startup-created job in an APScheduler 3.x persistent store, give it a stable explicit ID and set replace_existing=True. Review the installed APScheduler major version as well: current documentation describes a newer API than the 3.x add_job pattern used here.
Or skip the browser setup
ScreenshotNeo provides a one-request alternative if you do not want to install and maintain a browser for the capture. Create an API key, then use this cURL call; see the ScreenshotNeo API documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server offers screenshot, page-info, and PDF-capture tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free 1,000 screenshots a month, with no card required.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

