2011-03-15 3 views
6

작은 웹킷 브라우저에서 "User-Agent"헤더를 설정하려고하는데, 얻지 못했습니다.PyQtWebkit의 QNetworkRequest에 대한 User-Agent를 어떻게 설정합니까?

코드의 조각 :이 예에서

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) 

, "동의-언어"가 올바르게 설정하지만, "사용자 에이전트는"항상 기본 값입니다. 말해줘, 왜? "User-Agent"는 어떻게 설정합니까?

도움 주셔서 감사합니다.

+10

덕분에 내가 더 좋은 제목을 사용합니다. –

+1

제목이 ("프로그래밍 질문은 무엇입니까? 구체적으로 ...") * 꽤 좋았습니다. –

+0

'self.web '란 무엇입니까? 나는 QNetworkAccessManager에 load 메소드가 있다고 생각하지 않는다. 그것은'self.web.get (self.request)'가 아니어야합니까? –

답변

6

QWebView는 QNetworkRequest 필드를 무시하고 사용중인 WebKit 버전에 적합한 User-Agent 헤더를 설정합니다. 이 기본 동작을 변경하려면 QWebPage에서 상속해야하며 QWebPage.userAgentForUrl을 다시 구현하고 QWebView.setPage을 사용하여 QWebView 인스턴스의 페이지를 새 QWebPage 인스턴스의 인스턴스로 설정하십시오.

관련 문제