PyPhantomJS is a headless WebKit with JavaScript API, based on the PhantomJS project.
It has fast and native support for DOM handling, CSS selector, JSON, Canvas, SVG, and of course JavaScript.
PyPhantomJS scripts can be written in JavaScript or CoffeeScript.
See the quick start guide and more advanced examples which show various PhantomJS scripts, covering:
- running regression tests from command line
- getting driving direction
- showing weather forecast conditions
- finding pizza in New York
- looking up approximate location based on IP address
- pulling the list of seasonal food
- producing PDF version of a Wikipedia article
- rasterizing SVG to image
PyPhantomJS is written in PyQt4 and Python. It runs on Linux, Windows, and Mac OS X. Refer to the INSTALL file or Wiki links1 for more information.
Do not forget to consult the concise API Reference2
If you want to contribute, please read the Contribution Guides3
You can find a list of downloadable plugins here.
If you would like to know how to make plugins, check out this article.
1: http://code.google.com/p/phantomjs/w/list 1: http://dev.umaclan.com/projects/pyphantomjs/wiki 2: http://dev.umaclan.com/projects/pyphantomjs/wiki/Api_reference 2: http://code.google.com/p/phantomjs/wiki/Interface 3: http://code.google.com/p/phantomjs/wiki/ContributionGuide 3: http://dev.umaclan.com/projects/pyphantomjs/wiki/Giving_back
LICENSING
Copyright (C) 2011 James Roe <[email protected]> Copyright (C) 2011-2012 PyPhantomJS authors (see AUTHORS file)
PyPhantomJS is licensed with the GNU GPL v3. See the included file LICENSE for the licensing terms.
ADDITIONAL INFO
This program is a port of PhantomJS to Python/PyQt4 (thus, PyPhantomJS).
- We try to make PyPhantomJS to be as compatible with PhantomJS as possible, this means having the exact same features as they do. It happens to be fully compatible, with the exception of some very small things.
- PyPhantomJS however, has a few differences as well:
- Some of the features work a little differently than PhantomJS. In most of these cases, the features were only changed to improve their reliability and performance, so they work more often/better, and break less.
- There may also be additional features present that aren't in PhantomJS.
- For whatever reason, PyPhantomJS was deleted from the upstream PhantomJS library, so this separate repository was created. The old commit ids have been kept in tact to facilitate referencing back to the upstream versions.
PhantomJS was written by Ariya Hidayat, and I'd like to give him a BIG thanks for all his work on PhantomJS! :)