什么是PyQt Web工具包Qwebview的默认用户代理以及如何获取它

时间:2016-05-03 03:39:42

标签: python pyqt qwebview

我是python的新手,并在PyQt中开发了一个具有Web浏览器的GUI。我想显示用户代理与Url一起使用但没有找到方法。我的代码是 -

class Manager(QNetworkAccessManager):
def __init__(self, table):
    QNetworkAccessManager.__init__(self)
    self.finished.connect(self._finished)
    self.table = table

def _finished(self, reply):
    headers = reply.rawHeaderPairs()
    headers = {str(k):str(v) for k,v in headers}
    content_type = headers.get("Content-Type")

    # some code like "print headers.get("User-Agent")"

    url = reply.url().toString()
    status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
    status, ok = status.toInt()
    self.table.update([url, str(status), content_type])

目前,上面的代码只显示了URL,状态和内容类型,但是我还希望显示用户代理。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

User-Agent是发送到服务器的东西。此信息不会从服务器发送。

要设置用户代理,您可以使用Manager类执行以下操作,例如:

from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest

manager = Manager()
request = QNetworkRequest(QUrl("http://www.google.com/"))
request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1")
manager.get(request)

并修改您的def _finished(self, reply):方法以使用User-Agent

获取请求
def _finished(self, reply):
    print reply.request().rawHeader("User-Agent")