2010-09-12 43 views
0

以下代碼未能達到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_() 

回答