A command-line utility for taking automated screenshots of websites
--format
, --width
, --height
, --scale
and --print-background
. Thanks, Eddie Chapman. #87
-h
shortcut for help - use --help
instead. -h
was clashing with the shorter version of --height
. Thanks, Matthew Bafford. #84
shot-scraper $URL --wait-for EXPRESSION
can be used to take the screenshot only once the provided JavaScript expression returns true
. See Waiting until a specific condition. #72
wait_for:
key in the YAML format used by shot-scraper multi
provides equivalent functionality for scripted multiple screenshots.--selector-all
option to take a screenshot that encompasses every element matching the specified CSS selector - complements --selector
which takes a screenshot of just the first element matching that selector. See Specifying elements using JavaScript filters. #64
selector_all:
and selectors_all:
keys in the shot-scraper multi
YAML format.--js-selector
and --js-selector-all
options for specifying elements to screenshot using a JavaScript expression, for cases which cannot be handled using CSS selectors #43. The following example takes a screenshot of the first paragraph on the page that mentions shot-scraper
:
shot-scraper https://github.com/simonw/shot-scraper \
--js-selector 'el.tagName == "P" && el.innerText.includes("shot-scraper")'
js_selector:
, js_selectors:
, js_selector_all:
and js_selectors_all:
equivalent keys in the shot-scraper multi
YAML format.--user-agent
option for setting a custom user agent header. #63
--browser webkit
option for running WebKit - thanks, Ryan Murphy. #56
shot-scraper accessibility --timeout
option, thanks Ben Welsh. #59
shot-scraper auth --browser
option for authentication using a browser other than Chromium. #61
--quality
now results in a JPEG file with the correct .jpg
extension. Thanks, Ian Wootten. #58
--reduced-motion
flag for emulating the "prefers-reduced-motion" media feature. Thanks, Ryan Murphy. #49
-b/--browser
option for the shot-scraper install
, shot
, multi
and javascript
commands. This can be used to install and run alternative browsers firefox
, chrome
or chrome-beta
. Thanks, Ben Welsh. #53
--timeout
option for shot-scraper shot
and shot-scraper multi
. Thanks, Ben Welsh. #47
shot-scraper multi
now continues to create other shots despite a timeout error, unless --fail-on-error
is passed. Thanks, Ryan Cheley. #50
async () => { ... }
pattern for shot-scraper javascript
, as discussed in Extracting web page content using Readability.js and shot-scraper.shot-scraper javascript
to scrape a web page. See Scraping web pages from the command-line with shot-scraper.New shot-scraper javascript command for executing JavaScript against a web page and returning the result to the console as JSON: #38
% shot-scraper javascript datasette.io document.title
"Datasette: An open source multi-tool for exploring and publishing data"
This can be used for web scraping and data extraction. Any JavaScript errors will cause the command to return an exit code of 1, so this can also be used to run tests against a website from within a continuous integration environment such as GitHub Actions.
The shot-scraper pdf
and shot-scraper accessibility
commands can both now be used with local files in addition to URLs. #37
The output:
key is no longer required in YAML shot configuration: if omitted, an automatic filename will be used instead. #40
An empty YAML file no longer produces an error. #41