Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Use a browser automation script to capture each listing, then a scheduler to run that script at your chosen interval. Playwright can save a viewport, a specific page element, or the full page; GitHub Actions can run the script on a cron schedule. Keep the capture settings consistent and save each image with a listing label and UTC timestamp. A screenshot records what a browser displayed—it does not verify a listing’s claims.

Choose what to capture and how often

Start with specific listing URLs you are authorized to view. A stable, individual property page is easier to compare over time than a broad search-results page, where listings can move or inventory can change. Keep a small configuration file with a human-readable label and URL for each property.

Choose a capture interval that suits the purpose. A daily image may be enough for a personal record; a more frequent schedule creates more files and site requests. Avoid aggressive repeated access. Check each portal’s current terms, account rules, and access restrictions before automating. The available sources do not establish a universal right to automate access to Indian real estate portals.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Capture a listing with Playwright

Playwright supports viewport, element, and full-page screenshots. Its screenshot API also offers settings such as image type, quality, scale, masking, and style injection. Keep the settings fixed between runs if you want meaningful visual comparisons. See the Playwright Python screenshot documentation.

#1 Best Overall
Sale
Motorola Moto g - 2026 | Unlocked | Made for US 4/128GB | 50MP Camera | Pantone Slipstream, Cellular_Phone
  • Universal unlocked. Compatible with all major U.S. carriers, including Verizon, AT&T, T-Mobile and other prepaid carriers.
  • Super-bright, super-smooth 6.7" display. See your screen clearly even outdoors in sunlight, and enjoy seamless views with a fast-refreshing 120Hz display.*
  • AI-powered camera system. Take stunning photos in any light with the 50MP camera**, look your best with a 32MP selfie cam*****, and capture extreme close-ups.
  • Superfast 5G performance. Unleash your entertainment at 5G speed*** with the MediaTek Dimensity 6300 chipset and up to 12GB of RAM with RAM Boost****.
  • Long-lasting battery + TurboPower charging. Power through day after day with a 5200mAh battery, then get hours of power in just minutes.****

Install the Python package and browser

With Python and pip installed, create a project folder and run:

python -m venv .venv
# macOS/Linux
source .venv/bin/activate
# Windows PowerShell
# .venvScriptsActivate.ps1
pip install playwright
playwright install chromium

Save one consistent screenshot per listing

Create listings.json in the project folder:

[
  {
    "label": "property-a",
    "url": "https://example.com/listing"
  }
]

Replace the example with listing URLs you are permitted to access. Then save this as capture.py:

import json
from datetime import datetime, timezone
from pathlib import Path
from playwright.sync_api import sync_playwright

OUT = Path("captures")
OUT.mkdir(exist_ok=True)

with open("listings.json", encoding="utf-8") as f:
    listings = json.load(f)

stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page(viewport={"width": 1440, "height": 1000}, device_scale_factor=1)

    for item in listings:
        label = item["label"]
        url = item["url"]
        try:
            response = page.goto(url, wait_until="domcontentloaded", timeout=60000)
            page.wait_for_timeout(3000)
            path = OUT / f"{label}_{stamp}.png"
            page.screenshot(path=str(path), full_page=True)
            status = response.status if response else "no response object"
            print(f"OK {label}: HTTP {status}; saved {path}")
        except Exception as exc:
            print(f"FAILED {label}: {type(exc).__name__}: {exc}")

    browser.close()

Run it manually first with python capture.py. The script waits for the DOM content to load, then adds a short fixed delay for client-rendered content before saving a full-page PNG. A fixed delay is simple, not a guarantee that every page has finished loading. For a site with a known stable content region, wait for that selector instead; for example, replace the delay with page.locator("CSS_SELECTOR").wait_for(state="visible", timeout=15000). Selectors vary by site and can break when its page changes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Samsung Galaxy A17 5G Smart Phone 128GB US 1 Yr Manufacturer Warranty Black
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.

Choose viewport, element, or full-page capture

  • Viewport: remove full_page=True to save only the currently visible browser area. This creates smaller, consistently sized images.
  • Full page: keep full_page=True to include below-the-fold details. Long pages can produce tall images and include dynamic recommendations or unrelated content.
  • One element: locate a stable element and call page.locator("CSS_SELECTOR").screenshot(path="listing.png"). This focuses the archive on a listing region, but depends on a selector that remains valid.

Use the same viewport dimensions, device scale factor, image format, capture scope, and wait strategy on each run. The script names images with the listing label and a UTC timestamp; keep old files rather than silently overwriting them.

Schedule the script with GitHub Actions

GitHub Actions scheduled workflows use POSIX cron. Schedules default to UTC and support an IANA timezone setting. GitHub documents a shortest schedule interval of once every five minutes, but scheduled events can be delayed at busy times or dropped under sufficiently high load. A scheduled trigger is therefore not a minute-exact guarantee. Scheduled workflows run only when the workflow file is on the repository’s default branch. See GitHub’s schedule event documentation.

Add the workflow

Commit capture.py and listings.json to a GitHub repository. Add .github/workflows/capture.yml:

Rank #3
Samsung Galaxy A16 5G 128GB Cell Phone, Unlocked Android Smartphone, Large AMOLED Display, Durable Design, Super Fast Charging, Expandable Storage, US Version, 2025, Blue Black (Renewed)
  • Charger NOT Included, 6.7" Super AMOLED FHD+, 90Hz Refresh Rate, 385 ppi, 800 nits (HBM), 1080x2340px, 5000mAh Battery
  • 128GB, 4GB RAM, microSDXC, Exynos 1330 (5nm), Octa-Core, Mali-G68 MP2 or Mali-G57 MC2 GPU
  • Rear Camera: 50MP, f/1.8 (wide) + 5MP, f/2.2 (ultrawide) + 2MP, f/2.4 (macro), LED flash, panorama, HDR; Front Camera: 13MP, f/2.0, Android 14, up to 6 major Android upgrades, One UI 6.1
  • 3G: HSDPA 850/900/1700(AWS)/1900/2100; 4G LTE: 1/2/3/4/5/7/12/13/14/20/25/26/28/29/30/38/39/40/41/48/66/71, 5G: 2/5/25/41/66/71/77/78 SA/NSA/Sub6/mmWave - Nano-SIM + eSIM
  • US Model – Global Connectivity – Compatible with Most GSM Carriers like T-Mobile, AT&T, MetroPCS, etc. Will Also work with CDMA Carriers Such as Verizon, Straight Talk.
name: Capture property listings

on:
  schedule:
    - cron: '15 4 * * *'
      timezone: 'Asia/Kolkata'
  workflow_dispatch:

jobs:
  capture:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.x'
      - run: pip install playwright
      - run: playwright install --with-deps chromium
      - run: python capture.py
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: listing-captures-${{ github.run_id }}
          path: captures/
          if-no-files-found: warn

The cron expression 15 4 * * * means 04:15 every day in the configured timezone; with Asia/Kolkata, that is India local time. If you omit the timezone field, interpret the schedule in UTC and convert your desired local time accordingly. The workflow can also be started manually through GitHub’s Actions interface using workflow_dispatch.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The example uploads files as workflow artifacts. Artifact availability is governed by GitHub’s artifact retention settings, so do not treat this as a permanent archive. For long-term records, copy results to storage with an appropriate retention policy. The example logs failures, but a workflow that finishes after logging an individual listing failure may still appear successful; for operationally important monitoring, make failures affect the job status and configure a notification or second delivery path.

Make captures useful as a historical record

Preserve timestamps, settings, and run outcomes

  • Use unambiguous UTC timestamps in filenames, even when the schedule is expressed in India local time.
  • Keep a run log with the listing label, capture timestamp, page response status when available, output path, and any error.
  • Retain the original images and avoid replacing prior captures. An archive is useful only if previous versions remain accessible.
  • Masking or injected styles can suppress known dynamic regions, but a mask may also hide a meaningful listing change. Apply such settings consistently and only when you understand what they conceal.

Interpret visual differences cautiously

Rotating banners, recommendation modules, timestamps, and page-layout changes can alter pixels without changing the property’s terms. Compare successive images in context. A screenshot is evidence that a browser session produced a particular image at a recorded time, assuming the capture log and clock are trustworthy; it does not establish when a listing first appeared, whether its details were accurate, or whether an offer was legally binding.

Check privacy and listing reliability

Do not publish or casually share captures that expose phone numbers, names, account details, or other personal information. Protect the archive and limit access to people with a legitimate need.

Rank #4
Sale
Samsung Galaxy A17 5G Smart Phone 128GB, US 1 Yr Manufacturer Warranty Blue
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.

Portal terms and listing reliability are separate questions. Magicbricks’ terms and conditions describe its listing and search services and say listing and RERA information may not be verified by the platform, placing responsibility for independent verification on users. This is specific to Magicbricks, not a statement about every portal. Confirm material property and regulatory claims through authoritative records and appropriate direct due diligence.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Alternative: use a managed scheduled capture service

A hosted service may suit readers who do not want to maintain a browser runtime, but compare schedule timing, missed-run behavior, storage and retention, notifications, privacy handling, quotas, current cost, and whether it can render the particular listing page. Allscreenshots’ scheduled screenshot guide says captures can be scheduled in its dashboard or API, results are kept, delivery can use email or a webhook, and schedules are available on every plan and count against a monthly screenshot quota. Those are vendor statements; verify current plan terms, retention, and quotas before relying on them.

Or skip the browser setup

ScreenshotNeo is a screenshot API and MCP server for developers. Its one-call endpoint can capture a listing page as a PNG, JPEG, WebP, or PDF; the API parameters used by other screenshot APIs also work, which can make switching easier. Add your API key and target URL to this cURL request:

Best Value
Tracfone Motorola Moto G 2025, 64GB, Saphire Blue (Locked to
  • Carrier: This phone is locked to Tracfone, which means this device can only be used on the Tracfone wireless network. Tracfone plan required, activating is easy, just 3 steps.
  • DISPLAY: Immersive viewing on a 6.7-inch super-bright 120Hz display with powerful stereo speakers and Bass Boost for cinematic entertainment.
  • CAMERA SYSTEM: Advanced 50MP Quad Pixel camera captures sharp, detailed photos and videos in any lighting condition
  • PERFORMANCE: Lightning-fast 5G connectivity paired with a powerful processor and RAM Boost for smooth multitasking.
  • BATTERY LIFE: Long-lasting 5000mAh battery with TurboPower charging technology delivers hours of power in minutes.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/listing -o shot.webp

See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. An MCP server lets AI agents use screenshot tools, including take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. These are ScreenshotNeo plan terms as stated for this article; check the site for current details. For a recurring archive, connect a call to your scheduler and retain the resulting files and run records yourself. Sign up for 1,000 free screenshots a month with no card.

Frequently Asked Questions

What time zone does the example schedule use?

It specifies the IANA timezone Asia/Kolkata, so the cron time is interpreted as India local time.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can screenshots prove that a property listing was truthful?

No. They preserve a browser-rendered view; verify property and regulatory claims independently.

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.