Skip to content

Instantly share code, notes, and snippets.

@MBAustin
Created November 18, 2016 00:39
Show Gist options
  • Select an option

  • Save MBAustin/4286dd6e2677662a37b19bfa92569738 to your computer and use it in GitHub Desktop.

Select an option

Save MBAustin/4286dd6e2677662a37b19bfa92569738 to your computer and use it in GitHub Desktop.
Example
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
class WebPage(QtWebKit.QWebPage):
def __init__(self):
super(WebPage, self).__init__()
self.mainFrame().loadFinished.connect(self.handleLoadFinished)
def start(self, urls):
print('starting')
self._urls = urls
self.fetchNext()
def fetchNext(self):
if len(self._urls) > 0:
url = self.mainFrame().load(QtCore.QUrl(self._urls.pop()))
return True
return False
def processCurrentPage(self):
url = self.mainFrame().url().toString()
html = self.mainFrame().toHtml()
# do stuff with html...
print('loaded: [%d bytes] %s' % (self.bytesReceived(), url))
def handleLoadFinished(self):
self.processCurrentPage()
if not self.fetchNext():
QtGui.qApp.quit()
if __name__ == '__main__':
# generate some test urls
urls = []
url = 'http://pyqt.sourceforge.net/Docs/PyQt4/%s.html'
for name in dir(QtWebKit):
if name.startswith('Q'):
urls.append(url % name.lower())
app = QtGui.QApplication(sys.argv)
webpage = WebPage()
webpage.start(urls)
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment