我正在寻找QWebView按顺序加载和抓取几个页面,但我想在此过程中显示这些网站。
QWebView.show()似乎为最后一个URL打开了一个空白窗口。
我认为我对QWebView有一些基本的误解 - 关于如何在这里完成我想要的任何建议?
示例代码:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *
import time
class Web(QApplication):
did_something = Signal()
def __init__(self):
super().__init__(sys.argv)
self.urls = ["http://www.yahoo.com", "http://www.google.com", "http://www.youtube.com"]
self.w = QWebView()
self.w.loadFinished.connect(self.loaded)
self.did_something.connect(self.loadNew)
self.loadNew()
def loadNew(self):
if len(self.urls):
url = self.urls.pop()
self.w.setUrl(QUrl(url))
else:
self.done()
def loaded(self):
print("Loaded URL: {}".format(self.w.url().toString()))
self.w.show()
self.doSomething()
def doSomething(self):
print("\tDoing something with site! Printing title: {}".format(self.w.title()))
time.sleep(2)
self.did_something.emit()
def done(self):
print("\n\nDone")
self.exit()
if __name__ == '__main__':
web = Web()
web.exec_()