Recommended Free Tools
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
For a repeatable bulk capture, use a Playwright script to open each product URL, save a viewport or full-page screenshot, and record the result against the original URL. Playwright supplies the browser navigation and screenshot operations; you supply the list handling, pacing, filenames, retries, and storage. If you prefer a hosted workflow, Urlbox documents CSV, Google Sheets, and Airtable list options. Before capturing or sharing images, check the actual retailers’ terms and access rules.
Choose the workflow that fits your URL list
| Route | Best fit | What it handles | What you still need to plan |
|---|---|---|---|
| Playwright script | Developers who need a repeatable workflow or integration | Navigate to each URL and save a screenshot; choose viewport or full-page mode. Playwright Page API and screenshot documentation | Parsing the list, pacing requests, retries, naming, and storage are your implementation choices. |
| Urlbox / CaptureDeck | People who prefer hosted or no-code list processing | Urlbox documents CSV, Google Sheets, and Airtable workflows. Its bulk guide describes automation or CaptureDeck for a list. Urlbox documentation and bulk guide | Check current canonical product and API documentation for setup details. The cited bulk guide is served from a staging hostname; no price comparison is established here. |
There is no substantiated universal winner for speed or cost. Choose based on technical control, list input and output organization, capture mode, request pacing, and whether a hosted service suits your use case.
Prepare the product URL list
- Put one absolute product-page URL on each line in a plain-text file, or use another format your script can parse.
- Remove blank lines and check that each entry begins with a scheme such as
https://. Keep the original URL for the output manifest. - Decide whether you need the visible viewport or the entire scrollable page. Full-page images include below-the-fold content and can be much taller; viewport captures focus on the initial visible state.
- Choose a request pace appropriate for the destination sites. Avoid bursts of parallel requests that could burden a retailer.
Bulk screenshot URLs with Playwright and Python
The example below uses Playwright’s Python API and Chromium. It reads urls.txt, opens each URL sequentially, saves one PNG per entry, and writes a JSON Lines manifest with the source URL, timestamp, outcome, and filename or error. The default capture is a viewport screenshot; set FULL_PAGE to True for the full scrollable page. This is a reusable workflow example, not a claim that it has been tested against specific Indian retailers.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Install Playwright
- Create and activate a Python virtual environment if desired.
- Install the package with
python -m pip install playwright. - Install Chromium with
python -m playwright install chromium. - Create
urls.txtwith one product URL per line.
Save as bulk_screenshots.py
import asyncio
import json
import re
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlparse
from playwright.async_api import async_playwright
INPUT_FILE = Path("urls.txt")
OUTPUT_DIR = Path("screenshots")
MANIFEST = OUTPUT_DIR / "manifest.jsonl"
FULL_PAGE = False
TIMEOUT_MS = 45_000
PAUSE_SECONDS = 2
def read_urls(path: Path) -> list[str]:
urls = []
for raw in path.read_text(encoding="utf-8").splitlines():
value = raw.strip()
if value and not value.startswith("#"):
parsed = urlparse(value)
if parsed.scheme not in {"http", "https"} or not parsed.netloc:
raise ValueError(f"Not an absolute HTTP(S) URL: {value}")
urls.append(value)
return urls
def filename_for(index: int, url: str) -> str:
host = urlparse(url).netloc.lower()
safe_host = re.sub(r"[^a-z0-9.-]+", "_", host).strip("._") or "page"
return f"{index:04d}_{safe_host}.png"
async def main() -> None:
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
urls = read_urls(INPUT_FILE)
async with async_playwright() as playwright:
browser = await playwright.chromium.launch(headless=True)
try:
async with MANIFEST.open("w", encoding="utf-8") as manifest:
for index, url in enumerate(urls, start=1):
image_name = filename_for(index, url)
image_path = OUTPUT_DIR / image_name
record = {
"url": url,
"captured_at_utc": datetime.now(timezone.utc).isoformat(),
}
page = await browser.new_page(viewport={"width": 1365, "height": 900})
try:
response = await page.goto(
url, wait_until="domcontentloaded", timeout=TIMEOUT_MS
)
# Allow a short settling interval for client-side rendering.
await page.wait_for_timeout(1500)
await page.screenshot(path=str(image_path), full_page=FULL_PAGE)
record.update({
"outcome": "captured",
"file": image_name,
"http_status": response.status if response else None,
})
except Exception as exc:
record.update({"outcome": "failed", "error": str(exc)})
finally:
await page.close()
manifest.write(json.dumps(record, ensure_ascii=False) + "n")
manifest.flush()
await asyncio.sleep(PAUSE_SECONDS)
finally:
await browser.close()
if __name__ == "__main__":
asyncio.run(main())
Run it with python bulk_screenshots.py. Images and the manifest go into screenshots/. A recorded HTTP status indicates the navigation response status, not that the page is a valid product listing or that every image finished rendering.
#1 Best Overall
- PORTABLE SCANNER FOR USE ON-THE-GO — The fastest and lightest mobile single-sheet-fed compact document scanner in its class¹
- QUICK DOCUMENT SCANNING ― This Epson ultra-fast scanner scans a single page as quickly as 5.5 seconds²; Windows and Mac compatible
- VERSATILE PAPER HANDLING ― Portable scanner scans documents up to 8.5 x 72 in; Also easily digitizes receipts and ID cards to make accounting, bookkeeping, and organizing simpler
- INTUITIVE, HIGH-SPEED SOFTWARE — Epson ScanSmart Software³ is a smart tool allowing you to easily scan, review, and save; Stay organized easily with the help of this Epson scanner
- EASY SETUP — USB-powered connect to your computer for quick and simple scanning; No batteries or external power supply required to operate portable document scanner; Standard Connectivity: USB 2.0
Adjust the capture behavior
- Full-page: change
FULL_PAGE = FalsetoTruewhen below-the-fold details matter. Playwright defines a full-page screenshot as capturing the full scrollable page; otherwise the default screenshot is the viewport. See Playwright screenshot options. - Wait condition:
domcontentloadedwaits for the document’s DOM to be parsed, not for every late-loading product image. Increase the settling delay or wait for a retailer-specific selector if your purpose requires a known element. Do not assume one selector works across unrelated stores. - Viewport: change the width and height in
new_pageto the layout you need. A mobile-oriented viewport can produce a different page layout from desktop. - File naming: the sequence number prevents collisions when two URLs share a host. Extend the manifest or naming rule if you need to distinguish repeated runs or retain specific URL identifiers.
- Concurrency: this version processes URLs sequentially. If you add parallel workers, keep concurrency conservative and consistent with the sites’ rules and your permitted use.
Hosted list capture with Urlbox
Urlbox’s documentation describes no-code list sources including CSV, Google Sheets, and Airtable. Its bulk guide describes using CaptureDeck or an automation loop that submits URLs, then batching work and planning storage. The guide says its API does not natively capture an entire site in one request; for a supplied list, use the documented automation approach rather than expecting one request to discover and capture every page. Verify current setup details in Urlbox’s canonical documentation because the cited bulk guide is on a staging hostname.
When evaluating a hosted workflow, confirm how it accepts your list, how outputs map back to source URLs, what capture options are available, and what request limits or pacing apply. The available information does not establish a comparable price or performance result.
Rank #2
- FAST SPEEDS - Scans color and black and white documents a blazing speed up to 16ppm (1). Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- ULTRA COMPACT – At less than 1 foot in length and only about 1. 5lbs in weight you can fit this device virtually anywhere (a bag, a purse, even a pocket).
- READY WHENEVER YOU ARE – The DS-640 mobile scanner is powered via an included micro USB 3. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan.
- WORKS YOUR WAY – Use the Brother free iPrint&Scan desktop app for scanning to multiple “Scan-to” destinations like PC, Network, cloud services, Email and OCR. (2) Supports Windows, Mac and Linux and TWAIN/WIA for PC/ICA for Mac/SANE drivers. (3)
- OPTIMIZE IMAGES AND TEXT – Automatic color detection/adjustment, image rotation (PC only), bleed through prevention/background removal, text enhancement, color drop to enhance scans. Software suite includes document management and OCR software. (4)
Or skip the browser setup
ScreenshotNeo can process a URL through one GET request and return a PNG, JPEG, WebP, or PDF. Its clean-shot steps accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response includes X-Page-Verdict and X-Billed headers. It also offers an MCP server for AI agents, with take_screenshot, get_page_info, and capture_pdf tools. Free includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. For bulk lists, you can call the endpoint once per URL in your own loop and keep the URL-to-file manifest described above.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsInstall requests with python -m pip install requests, set your API key, then adapt this one-call example for each URL. See the ScreenshotNeo API documentation.
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
Sign up for ScreenshotNeo to get 1,000 screenshots a month free, with no card required.
Rank #3
- STAY ORGANIZED – Easily convert your paper documents into digital formats like searchable PDF files, JPEGs, and more.Power Consumption : 2.5W or less (Energy Saving Mode: 0.7W). Suggested Daily Volume : 500 scans..Does it contain liquid: no
- CONVENIENT AND PORTABLE –lightweight and small in size, you can take the scanner anywhere from home offices, classrooms, remote offices, and anywhere in between
- HANDLES VARIOUS MEDIA TYPES – Digitize receipts, business cards, plastic or embossed cards, reports, legal documents, and more
- FAST AND EFFICIENT – No technical hurdles or complicated setups here; easily scan both sides of a document at the same time, in color or black-and-white, at up to 12 pages-per-minute, and with a 20 sheet automatic feeder
- BROAD COMPATIBILITY – Works with both Windows and Mac devices, be it laptop or computer
Handle failures and keep results traceable
Navigation times out or fails
Possible causes include a slow response, network interruption, or a destination that does not load in the automated browser. The script records the exception and continues to the next URL. Review the manifest, retry failures separately with a measured timeout or delay, and do not treat a retry as permission to bypass a site restriction.
The screenshot is blank or missing product content
A page may render content after the DOM event used in the example, use client-side loading, or require interaction. Add a wait for a relevant visible selector when one is known, or adjust the settling delay. If the page remains inaccessible, record the outcome rather than claiming a successful product capture.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #4
- IRIScan Express, portable scanner : scans color and black and white documents a blazing speed up to 8ppm simplex. Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- IRIScan Express mobile scanner is powered via an included micro USB 2. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan. USB cable provided. AC Adapter not provided and not needed.
- IRIScan flatbed scanner uses a simplex scanning mode allows for quick and straightforward scanning of single-sided documents. IRIScan with its full portable features is the ideal document scanners for computers.
- IRIScan document scanner : Versatile scanning capabilities, including scanning to Word, PDF, and Excel formats with companion software provided Readiris OCR
- Receipt scanner and card scanner with Additional features include scanning business cards directly to Outlook, photo scanning, and receipt scanning for efficient document management
Output files overwrite or are hard to match
Use a stable per-input index and retain the original URL in the manifest. For repeated runs, add a run identifier or timestamp to the output directory so a new batch does not overwrite the previous one.
A site blocks or challenges automation
Do not assume that browser automation can access every retailer page. Respect the site’s access controls and terms; stop if your use is not permitted. This workflow does not promise to defeat bot checks or CAPTCHAs.
Best Value
- Scanner type: Document
- Connectivity technology: USB
- With Auto Scan Mode, the scanner automatically detects what you're scanning
- Digitize documents and images
Check permission before capturing or redistributing
“Indian ecommerce” does not identify a particular retailer, purpose, or intended use of the images. Check the terms and access restrictions for each actual site, and obtain appropriate permission where needed, especially before retaining or republishing captures. Urlbox describes how its own signed requests handle robots.txt—using its user-agent token and falling back to *—and says normal customer requests capture a requested page without spidering links. Those statements describe Urlbox’s behavior; they do not decide whether a particular capture is permitted or establish a general legal rule for India.
Frequently Asked Questions
Can one request capture every page on a retailer’s site?
Not with the documented Urlbox API behavior: its bulk guide says it does not natively capture an entire site in one request. This guide’s workflow processes an explicit URL list one entry at a time.
Does full-page mode guarantee that every product image appears?
No. Full-page mode captures the scrollable page, but lazy-loaded or dynamically rendered content may require additional waiting or page-specific handling.
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.

