我正在使用PyQt(作爲Python初學者)。 我需要能夠在無頭系統上截取網站截圖。 我之前在另一個項目中使用PhantomJS,但他們在1.5版本中刪除了Flash支持,我不想依賴於我的新項目的已棄用1.4版本。等待延遲,然後用PyQt捕獲網站圖像
所以我使用PyQt做我自己的東西。 我可以使用給定的網址截圖網站,沒問題。
,但我一直有在閃光佔位符「藍色骰子」 flash插件圖標(是的,JavaScript和插件被激活)
self.settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled,True)
self.settings.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled,True)
我正在做一個YouTube視頻頁面上的一些測試,這裏是一個例如我的問題:
的第二部分,即可能與第一種: 我怎麼能告訴PyQt的服用截圖之前需要等待幾秒鐘? 正如您在示例中看到的那樣,右側的圖像仍然被卸載,因爲它們是使用javascript和data屬性加載的,並且在我的腳本中,我截取了loadFinished信號(onLoad()javascript等同))。
我的第一個猜測是簡單地
time.sleep(2)
叫我的捕捉方法之前,但它不工作。我假設在這個睡眠時間內,Webkit的加載也是睡着了,這樣可以防止頁面上加載任何東西。
我試圖創建一個自定義信號,但是我仍然不知道如何在沒有睡覺的情況下觸發它。
我最後的猜測是我需要線程我的應用程序。我對嗎?
如果您有任何提示/腳本來幫助我顯示Flash內容和/或添加一個setTimeout類似的信號,我會非常感激!
在此先感謝您的幫助。
編輯: 只是一個快速編輯添加我的解決方案:
timeoutTimer = QTimer()
timeoutTimer.setInterval(3000) # wait for 3secs
timeoutTimer.setSingleShot(True)
timeoutTimer.timeout.connect(theMethodToCallOnTimeout)
關於閃光燈的事情:它看起來像Flash播放器在OSX(可能與一個32/64位問題破)。
我愛硒,但這實際上回答了被問到的問題 –
謝謝隊友。這並不能解決我在Youtube上的奇怪問題,但這正是我一直在尋找的。乾杯。 –