我正在尝试在我的小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”始终为默认值。请告诉我,为什么?如何设置“用户代理”?
感谢您的帮助。
答案 0 :(得分:6)
QWebView会覆盖QNetworkRequest字段,并设置适合您正在使用的WebKit版本的User-Agent标头。要更改此默认行为,您必须从QWebPage继承,重新实现QWebPage.userAgentForUrl并使用QWebView.setPage将QWebView实例的页面设置为新QWebPage类型的实例。
答案 1 :(得分:4)
好的,我现在想出来了:
class Browser(QtWebKit.QWebPage):
def __init__(self):
super(QtWebKit.QWebPage, self).__init__()
def userAgentForUrl(self, url):
return "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
(这是一个例子)
感谢http://www.riverbankcomputing.com/pipermail/pyqt/2011-May/029826.html和http://pastebin.com/m1b350244