2011-03-15 58 views
6

我想在我的小webkit瀏覽器中設置標題「用戶代理」,但我沒有得到。如何在PyQtWebkit中設置QNetworkRequest的用戶代理?

這一段代碼:

self.web = QtWebKit.QWebView(self) 
... 
self.request = QNetworkRequest() 
self.request.setUrl(url) 
self.request.setRawHeader("User-Agent", QtCore.QByteArray ("TestUserAgent")) 
self.request.setRawHeader("Accept-Language", QtCore.QByteArray ("en ,*")) 
self.web.load(self.request) 

在這個例子中,「接受語言」設置正確,但「用戶代理」始終是默認值。請告訴我,爲什麼?如何設置「用戶代理」?

感謝您的幫助。

+10

我會用更好的標題。 –

+1

討厭被糟蹋,運動,因爲標題(「什麼是你的編程問題?是具體的。」)* *是相當不錯的 –

+0

什麼是'self.web'?我不認爲QNetworkAccessManager有一個加載方法。它不應該是'self.web.get(self.request)'? –

回答

6

QWebView會覆蓋QNetworkRequest字段並設置適合您正在使用的WebKit版本的User-Agent標頭。要更改此默認行爲,您必須從QWebPage繼承,重新實現QWebPage.userAgentForUrl並使用QWebView.setPage將QWebView實例的頁面設置爲新QWebPage類型的實例。

相關問題