2016-05-03 11 views
1

私はPythonには新しく、Webブラウザーを持つPyQtでGUIを開発しています。私はまた、現在、上記のコードはURLのみ、ステータスとコンテンツタイプを示しているPyQt WebキットのデフォルトユーザーエージェントQwebviewとその入手方法

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と一緒に行くが、way.myコードをさ創立ない見せたいですユーザーエージェントを表示したいと思います。誰かが何か考えていますか?

+1

のhttp:/を

は、あなたが例えばあなたのManagerクラスに次の操作を行うことができ、ユーザーエージェントを設定するには/stackoverflow.com/questions/3906964/qt-qwebview-class-custom-user-agent http://stackoverflow.com/questions/13544413/need-help-override-a-function-qwebpage-useragentforurl – warvariuc

答えて

1

User-Agentは、サーバーに送信されるものです。この情報はサーバーから送信されません。

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) 

そしてUser-Agentとリクエスト得るためにあなたのdef _finished(self, reply):方法を変更します:

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

nあなたが 'reply.request()。rawHeader(" User-Agent ")'でそれを読もうとすると、 'User-Agent'が何も送信されていないことを指定し、空文字列(またはPyQt4.QtCore.QByteArray) – salomonderossi

関連する問題