2011-03-15 5 views
6

Próbuję ustawić nagłówek "User-Agent" w mojej małej przeglądarce internetowej, ale nie dostałem.Jak ustawić User-Agent dla QNetworkRequest w PyQtWebkit?

To kawałek kodu:

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) 

W tym przykładzie, "Accept-Language" jest ustawiony prawidłowo, ale "User-Agent" jest zawsze wartością domyślną. Powiedz mi, proszę, dlaczego? Jak ustawić "User-Agent"?

Dzięki za pomoc.

+10

użyłbym lepszy tytuł. –

+1

Nienawidzę być sportem zepsucia, ponieważ ten tytuł ("Jakie jest twoje pytanie programistyczne, bądź konkretny.") * Był * całkiem niezły –

+0

Co to jest 'self.web'? Nie sądzę, że QNetworkAccessManager ma metodę ładowania. Czy nie powinno to być 'self.web.get (self.request)'? –

Odpowiedz

6

QWebView zastępuje pole QNetworkRequest i ustawia nagłówek User-Agent odpowiedni dla używanej wersji WebKit. Aby zmienić to domyślne zachowanie, musisz dziedziczyć po QWebPage, ponownie wdrożyć QWebPage.userAgentForUrl i ustawić stronę dla instancji QWebView na instancję nowego typu QWebPage przy użyciu QWebView.setPage.

Powiązane problemy