Skip to content

Instantly share code, notes, and snippets.

@captn3m0
Created November 24, 2013 15:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save captn3m0/7628244 to your computer and use it in GitHub Desktop.
Save captn3m0/7628244 to your computer and use it in GitHub Desktop.
Headless web browsers. Copied over from https://gist.github.com/evandrix/3694955 (now deleted)

Here are a list of headless browsers that I know about:

  • HtmlUnit - Java. Custom browser engine. JavaScript support/DOM emulated. Open source.
  • Ghost - Python only. WebKit-based. Full JavaScript support. Open source.
  • Twill - Python/command line. Custom browser engine. No JavaScript. Open source.
  • PhantomJS - Command line/all platforms. WebKit-based. Full JavaScript support. Open source.
  • Awesomium - C++/.Net/all platforms. Chromium-based. Full JavaScript support. Commercial/free.
  • SimpleBrowser - .Net 4/C#. Custom browser engine. No JavaScript support. Open source.
  • ZombieJS - Node.js. Custom browser engine. JavaScript support/emulated DOM. Open source.
  • EnvJS - JavaScript via Java/Rhino. Custom browser engine. JavaScript support/emulated DOM. Open source.
  • Watir-webdriver with headless gem - Ruby via WebDriver. Full JS Support via Browsers (Firefox/Chrome/Safari/IE).
  • Spynner - Python only. PyQT and WebKit.
  • trifleJS - A headless Internet Explorer browser with a Javascript API. PhantomJS for the Trident engine.

Headless browsers that have JavaScript support via an emulated DOM generally have issues with some sites that use more advanced/obscure browser features, or have functionality that has visual dependencies (e.g. via CSS positions and so forth), so whilst the pure JavaScript support in these browsers is generally complete, the actual supported browser functionality should be considered as partial only.

(note: original version of this post only mentioned HtmlUnit, hence the comments. If you know of other headless browser implementations and have edit rights, feel free to edit this post and add them.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment