ZBrowse is a measurement tool to track dependencies for websites using a command-line headless web browser built on top of Headless Chrome. This tool produces JSON reports on the structure of websites including the object dependency tree and network requests. ZBrowse is part of the The ZMap Project, a large open source community that maintains this tool and others that support large-scale Internet measurement. Much of the development happens at the University of Michigan, University of Illinois Urbana-Champaign, University of California, Berkeley, and Rapid7. The core team can be reached at zmap-team@umich.edu.
This tool is in active development, and headless Chromium is also in active development. Changes in headless Chromium can break functionality with certain sites. If you are experiencing trouble, make sure you have the most up to date build of headless Chromium.
- NodeJS 6+
- chromium-browser version that supports the --headless option
ZBrowse will spawn a headless_shell instance of Chromium and uses the DevTools protocol to instrument, inspect, debug and profile websites.
Before using ZBrowse, be sure to run npm install
to get all the relevant node packages downloaded and installed.
cd js
npm install
cd js
node index.js <URL>
This is a basic example of using ZBrowse to connect to google.
node index.js https://www.google.com
docker build -t zbrowse .
node index.js https://www.google.com
docker build -t zbrowse .
docker run --rm zbrowse <url>