繁体   English   中英

如何在PyQtWebkit中为QNetworkRequest设置User-Agent?

[英]How do I set the User-Agent for a QNetworkRequest in PyQtWebkit?

我正在尝试在我的小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”始终是默认值。 请告诉我,为什么? 如何设置“用户代理”?

感谢帮助。

QWebView会覆盖QNetworkRequest字段,并设置适合您正在使用的WebKit版本的User-Agent标头。 要更改此默认行为,您必须从QWebPage继承,重新实现QWebPage.userAgentForUrl并使用QWebView.setPage将QWebView实例的页面设置为新QWebPage类型的实例。

好的,我现在想出来:

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/20​​11-May/029826.htmlhttp://pastebin.com/m1b350244

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM