2012-11-14 13 views
10

कंसोल में HTML प्रारूप में वेबपृष्ठ कैसे प्रदर्शित करें।QWebView का उपयोग कर एचटीएमएल कैसे प्रदर्शित करें। अजगर?

import sys 
from PyQt4.QtGui import QApplication 
from PyQt4.QtCore import QUrl 
from PyQt4.QtWebKit import QWebView 

app = QApplication(sys.argv) 
view = QWebView() 
view.load(QUrl('http://example.com') 
# What's next? how to do something like: 
# print view.read() ??? 
# to display something similar to that: 
# <html><head></head><body></body></html> 

उत्तर

20

क्यूटी एक async पुस्तकालय है, तो आप शायद किसी भी परिणाम अगर आप तुरंत लोड बुला के बाद अपने वेब दृश्य के HTML डेटा को देखने के लिए प्रयास करते हैं, क्योंकि यह तुरंत वापस लौट नहीं होगा, और ट्रिगर किया जाएगा परिणाम मिलने पर भार समाप्त हो गया सिग्नल। आप लोड पर कॉल करने के तुरंत बाद _result_available विधि में किए गए HTML डेटा तक पहुंचने का प्रयास कर सकते हैं, लेकिन यह एक खाली पृष्ठ (यह डिफ़ॉल्ट व्यवहार है) वापस कर देगा।

import sys 
from PyQt4.QtGui import QApplication 
from PyQt4.QtCore import QUrl 
from PyQt4.QtWebKit import QWebView 


class Browser(QWebView): 

    def __init__(self): 
     QWebView.__init__(self) 
     self.loadFinished.connect(self._result_available) 

    def _result_available(self, ok): 
     frame = self.page().mainFrame() 
     print unicode(frame.toHtml()).encode('utf-8') 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    view = Browser() 
    view.load(QUrl('http://www.google.com')) 
    app.exec_() 
+1

आपको बहुत बहुत धन्यवाद! आपका उदाहरण बस महान है! – Vor

+1

आपका स्वागत है। – andrean

+0

धन्यवाद, लेकिन जब मैं इसे चलाता हूं _result_available() कभी भी कॉल नहीं किया जाता है हालांकि __init __ (स्वयं) करता है। – andyabel

संबंधित मुद्दे