/zbrowse

Headless Chrome-based browser

Primary LanguageJavaScript

ZBrowse

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.

Requirements

  • NodeJS 6+
  • chromium-browser version that supports the --headless option

Getting Started

ZBrowse will spawn a headless_shell instance of Chromium and uses the DevTools protocol to instrument, inspect, debug and profile websites.

Setup

Before using ZBrowse, be sure to run npm install to get all the relevant node packages downloaded and installed.

cd js
npm install

Usage

cd js
node index.js <URL>

Example

This is a basic example of using ZBrowse to connect to google.

node index.js https://www.google.com

Docker usage

Build image

docker build -t zbrowse .

Run

node index.js https://www.google.com

Docker usage

Build image

docker build -t zbrowse .

Run

docker run --rm zbrowse <url>