2016-05-03 17 views
1

Ich bin neu bei Python und entwickle eine GUI in PyQt, die einen Web Browser hat. Ich mag, dass der User-Agent geht mit der URL zeigen, aber kein way.my Code Gründungs ​​wird -Was ist der Standard User-Agent von PyQt Web kit Qwebview und wie man es bekommt

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]) 

Gegenwärtig der obige Code wird nur die URL, Status und Inhaltstyp zeigt, aber mit dieser i auch will user agent.do anzeigen jemand hat eine idee?

+1

http://stackoverflow.com/questions/3906964/qt-qwebview-class-custom-user-agent http://stackoverflow.com/questions/13544413/need-help-override-a-function-qwebpage-useragentforurl – warvariuc

Antwort

1

Ein User-Agent ist etwas, das an den Server gesendet wird. Diese Information wird nicht vom Server gesendet.

Um einen Benutzeragenten stellen Sie folgendes Zubehör mit Ihrem Manager Klasse zum Beispiel tun können:

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) 

und ändern Sie Ihre def _finished(self, reply): Methode, um die Anforderung mit der User-Agent zu bekommen:

def _finished(self, reply): 
    print reply.request().rawHeader("User-Agent") 
+0

Wenn Sie das tun n Wenn Sie einen 'User-Agent' angeben, wird nichts gesendet und es wird eine leere Zeichenfolge (oder PyQt4.QtCore.QByteArray) angezeigt, wenn Sie versuchen, es mit' reply.request(). rawHeader ("User-Agent") 'zu lesen – salomonderossi