使用PyQt QWebPage 抓取多個URL
PyQt 的QWebPage 提供了一種動態的網頁內容。但是,嘗試多次渲染可能會導致崩潰或意外行為。
問題識別
所提供程式碼中的問題源自於為每個應用程式建立多個 QApplication 和 QWebPage網址取得。相反,應該使用每個實例的單一實例,網頁則依靠其 loadFinished 訊號來觸發後續 URL 的內部處理。
解決方案
以下改進地址問題:
用法
演示如何使用改進的網頁的示例代碼:
def my_html_processor(html, url): print('loaded: [%d chars] %s' % (len(html), url)) import sys app = QApplication(sys.argv) webpage = WebPage(verbose=False) webpage.htmlReady.connect(my_html_processor) # example 1: process list of urls urls = ['https://en.wikipedia.org/wiki/Special:Random'] * 3 print('Processing list of urls...') webpage.process(urls) # example 2: process one url continuously import signal, itertools signal.signal(signal.SIGINT, signal.SIG_DFL) print('Processing url continuously...') print('Press Ctrl+C to quit') url = 'https://en.wikipedia.org/wiki/Special:Random' webpage.process(itertools.repeat(url)) sys.exit(app.exec_())
參考文獻
以上是如何使用 PyQt QWebPage 有效率地抓取多個 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!