I've already used Ghost.py , it's a phantom fork of when they decided not to support python and how the name suggests and a lib to whoever is using python.
Internally it uses the qt webkit module, it may not be the fastest thing in the world but it runs js, opens iframes, downloads images and behaves like a browser (or at least tries), other than solutions such as mechanize or requests + beautifulsoup
It depends on PyQt or PySide, I had headache to install pyside but eventually it works fine.
I just stumbled upon a bug that is actually the qt webkit module, which from time to time was a problem in my entire process, I turned it over using the python multiprocessing module, if I finished the process by for whatever reason did not stop my entire program.
Homepage: link
Source code: link