以下代碼未能達到searchResults。我已經打印出documentElement.findFirst('input [name =「btnG」]'),並發現它是<input name="btnG" type="submit" value="Google Search" class="lsb">
,所以我們很好。請注意,我的目標不是要刮谷歌,但通過衆所周知的公開谷歌學習更簡單。使用PyQT提交Google QWebElement
#!/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_()