I had good (albeit slow) results using mechanize and BeautifulSoup. In fact, to save code space in the Google App Engine, I use the (old) version of BeautifulSoup included in mechanize.
I have a mechanism in a zip file mechanize.zip. The index of this zip file looks like this:
mechanize/
mechanize/__init__.py
mechanize/_auth.py
mechanize/_beautifulsoup.py
mechanize/_clientcookie.py
... etc
Python
import sys
sys.path.insert(0, 'mechanize.zip')
import mechanize
from mechanize._beautifulsoup import BeautifulSoup