Programmatic web browsing module with AJAX support for Python
Clone or download
Pull request Compare This branch is 6 commits behind kiorky:master.
kiorky Merge pull request kiorky#98 from Yu-Jack/master
Fix ascii decode problem when encounter latin letter
Latest commit f2c2a6d Mar 8, 2017



Spynner is a stateful programmatic web browser module for Python. It is based upon PyQT and WebKit. It supports Javascript, AJAX, and every other technology that !WebKit is able to handle (Flash, SVG, ...). Spynner takes advantage of JQuery. a powerful Javascript library that makes the interaction with pages and event simulation really easy.

Using Spynner you would able to simulate a web browser with no GUI (though a browsing window can be opened for debugging purposes), so it may be used to implement crawlers or acceptance testing tools.

See usage on: Or below if the section is preset







  • Python >=26
  • PyQt > 443
  • Libxml2 / Libxslt libraries and includes files for lxml
  • autopy which in turns need xtst lib & headers on linux (aka Xtest)


Open an Issue to report a bug or request a new feature. Other comments and suggestions can be directly emailed to the authors.


  • Throught regular easy_install / buildout:

    easy_install spynner

    (In Windows, you may have to install autopy through its installer at

  • The bleeding edge version is hosted on github:

    git clone
    cd spynner
    python install

Running Spynner without X11

  • Spynner needs a X11 server to run. If you are running it in a server without X11. You must install the virtual Xvfb server. Debian users can use the small wrapper (xvfb-run). If you are not using Debian, you can download it here:

    xvfb-run python
  • You can also use tightvnc, which is the solution of the actual maintainer [kiorky].