
shot-scraper
CLISimon Willison's website screenshot CLI: batch screenshots from YAML, record demo videos, export PDF and HTML, run JavaScript in pages to extract data, and dump accessibility trees. Built on Playwright; install a browser on first use.
shot-scraper
A CLI utility for taking screenshots of websites, recording video demos and scraping sites using JavaScript
For background on this project see shot-scraper: automated screenshots for documentation, built on Playwright.
Documentation
- Full documentation for shot-scraper
- Tutorial: Automating screenshots for the Datasette documentation using shot-scraper
- Release notes
Get started with GitHub Actions
To get started without installing any software, use the shot-scraper-template template to create your own GitHub repository which takes screenshots of a page using shot-scraper. See Instantly create a GitHub repository to take screenshots of a web page for details.
Quick installation
You can install the shot-scraper CLI tool using pip:
pip install shot-scraper
# Now install the browser it needs:
shot-scraper install
Taking your first screenshot
You can take a screenshot of a web page like this:
shot-scraper https://datasette.io/
This will create a screenshot in a file called datasette-io.png.
Many more options are available, see Taking a screenshot for details.
Examples
- The shot-scraper-demo repository uses this tool to capture recently spotted owls in El Granada, CA according to this page, and to generate an annotated screenshot illustrating a Datasette feature as described in my blog.
- The Datasette Documentation uses screenshots taken by
shot-scraperrunning in the simonw/datasette-screenshots GitHub repository, described in detail in Automating screenshots for the Datasette documentation using shot-scraper. - Ben Welsh built @newshomepages, a Twitter bot that uses
shot-scraperand GitHub Actions to take screenshots of news website homepages and publish them to Twitter. The code for that lives in palewire/news-homepages. - scrape-hacker-news-by-domain uses
shot-scraper javascriptto scrape a web page. See Scraping web pages from the command-line with shot-scraper for details of how this works. - Reuters uses shot-scraper to generate regularly updating data dashboards for email newsletters.
関連リソース

Browser Use MCP
MCPLocal MCP server built into Browser Use: lets agents navigate, click, type and extract page content, or hand multi-step tasks to the built-in browser agent. Bring your own OpenAI or Anthropic API key.
browser-use/browser-use118k
ExecuteAutomation Playwright MCP Server
MCPCommunity Playwright browser automation MCP from ExecuteAutomation (not Microsoft's official one): navigate, click, fill forms, screenshot and scrape page text, plus send HTTP requests, assert network responses and record actions into test code, with 143 device emulations built in.
executeautomation/mcp-playwright5.7k
Browser Use
CLIOpen-source browser agent project. Its browser-use CLI lets Claude Code, Codex and other agents drive your logged-in local Chrome with Python snippets, or connect to a cloud browser; also ships a Python agent library. The cloud browser needs an API key.
browser-use/browser-use118k
Scrapling
CLIAdaptive web scraping framework: scrapling extract turns a page into Markdown, text or HTML in one command, with CSS selectors and browser rendering for dynamic pages, plus an MCP server (needs the ai extra). Needs Python 3.10+ and a browser install on first use.
D4Vinci/Scrapling88.1k
Playwright
CLIMicrosoft's cross-browser end-to-end testing framework: one API drives Chromium, Firefox and WebKit, npx playwright test runs tests in parallel and isolation, with auto-waiting and trace replay for debugging failures.
microsoft/playwright97.9k
Scrapling
MCPMCP server built into the adaptive Python scraping framework Scrapling: supports plain HTTP requests, browser rendering and stealth fetching, and uses CSS selectors to pass only the target content to the AI, saving tokens and filtering out prompt injection.
D4Vinci/Scrapling88.1k