The following code does not reach searchResults. I have printed out documentElement.findFirst('input[name="btnG"]') and found it to be <input name="btnG" type="submit" value="Google Search" class="lsb">
so we are good up to that point. Note that my goal is not to scrape Google but it's simpler to learn via the well known and public Google.
#!/usr/bin/python from PyQt4.QtCore import QUrl, SIGNAL from PyQt4.QtGui import QApplication from PyQt4.QtWebKit import QWebPage, QWebView class Scrape(QApplication): def __init__(self): super(Scrape, self).__init__(None) self.webView = QWebView() self.webView.loadFinished.connect(self.searchForm) def load(self, url): self.webView.load(QUrl(url)) def searchForm(self): documentElement = self.webView.page().currentFrame().documentElement() inputSearch = documentElement.findFirst('input[title="Google Search"]') inputSearch.setAttribute('value', 'test') self.webView.loadFinished.disconnect(self.searchForm) self.webView.loadFinished.connect(self.searchResults) documentElement.findFirst('input[name="btnG"]').evaluateJavaScript('click()') def searchResults(self): for element in documentElement.find('li[class="g"]'): print unicode(element.toOuterXml()) self.exit() my_scrape = Scrape() my_scrape.load('http://google.com/ncr') my_scrape.exec_()