如何在PyQtWebkit中为QNetworkRequest设置User-Agent?
我正在尝试在我的小型webkit浏览器中设置“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)
在这个例子中,“Accept-Language”设置得很好,但“User-Agent”总是默认值。请告诉我,为什么会这样?我该怎么设置“User-Agent”?
谢谢你的帮助。
2 个回答
6
QWebView会自动设置一个用户代理(User-Agent),这个代理是根据你使用的WebKit版本来决定的。如果你想改变这个默认的设置,你需要从QWebPage这个类继承,重新实现QWebPage.userAgentForUrl这个方法。然后,你需要用QWebView.setPage把你的QWebView实例的页面设置为你新创建的QWebPage类型的实例。