Estoy intentando configurar el encabezado “User-Agent” en mi pequeño navegador webkit, pero no lo conseguí.
Esa pieza de código:
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)
En este ejemplo, “Aceptar idioma” está configurado correctamente, pero el “Agente de usuario” es siempre el valor predeterminado. Dime por favor por que ¿Cómo configuro el “User-Agent”?
Gracias por la ayuda.
QWebView anula el campo QNetworkRequest y establece el encabezado User-Agent adecuado para la versión de WebKit que está utilizando. Para cambiar este comportamiento predeterminado, debe heredar de QWebPage , volver a implementar QWebPage.userAgentForUrl y configurar la página para sus instancias de QWebView en una instancia de su nuevo tipo de QWebPage usando QWebView.setPage .
Ok, me imagino ahora:
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"
(es un ejemplo)
Gracias a http://www.riverbankcomputing.com/pipermail/pyqt/2011-May/029826.html y http://pastebin.com/m1b350244