import sys
from PyQt4 import QtCore, QtGui, QtWebKit

app = QtGui.QApplication([])

view = QtWebKit.QWebView()
view.setUrl(QtCore.QUrl('http://google.com'))

print view.page().history()
# <PyQt4.QtWebKit.QWebHistory object at 0x3565f58>

# Try a QDataStream
try:
    file = QtCore.QFile("/tmp/history-temp")
    file.open(QtCore.QIODevice.WriteOnly)
    out = QtCore.QDataStream(file)
    out << view.page().history()
except Exception, e:
    print "%s: %s" % (e.__class__.__name__, e)
    # TypeError: unsupported operand type(s) for <<: 'QDataStream' and 'QWebHistory'

# Try a file-like object
try:
    sys.stdout << view.page().history()
except Exception, e:
    print "%s: %s" % (e.__class__.__name__, e)
    # TypeError: unsupported operand type(s) for <<: 'file' and 'QWebHistory'

# Try a file-like object with .write()
try:
    sys.stdout.write(view.page().history())
except Exception, e:
    print "%s: %s" % (e.__class__.__name__, e)
    # TypeError: argument 1 must be string or read-only character buffer, not QWebHistory

