Отображение заголовков в браузере QWebview Pyqt Python
Привет, я создаю настольное приложение на PyQt Python и загрузил веб-браузер, теперь я хочу добавить функции http fox(плагин Firefox) для просмотра загруженных URL-адресов с переданным запросом и других заголовков, связанных с каждым URL-адресом, так же как в полнолуние
Я написал код для отображения загруженных URL-адресов, но не нашел способа показывать другие заголовки при нажатии каждого URL-адреса. Я слышал о Cookie Jar в Qwebview, но не знаю, как показать с каждым загруженным 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")
url = reply.url().toString()
status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
status, ok = status.toInt()
self.table.update([url, str(status), content_type])
я хочу что-то подобное
[![here on the upper part we have loaded URLs and below that we can see the header, i have written the code for loaded URLs but how to show the headers][1]][1]
1 ответ
Решение
Это то, что вы ищите?
import logging
import sys
from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest
from PyQt4.QtCore import QUrl, QEventLoop
log = logging.getLogger(__name__)
class Manager(QNetworkAccessManager):
def __init__(self, table=list()):
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")
url = reply.url().toString()
status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
status, ok = status.toInt()
self.table.append([str(url), str(status), content_type])
log.info(self.table)
request = reply.request()
log.info(request.rawHeader("User-Agent"))
method = reply.operation()
if method == QNetworkAccessManager.GetOperation:
log.info("get")
request.url().queryItems()
if method == QNetworkAccessManager.PostOperation:
log.info("post")
def test():
manager = Manager()
log.info("Sending request")
manager.get(QNetworkRequest(QUrl("http://www.google.com/")))
# just for testing purpose to wait for the request to finish
l = QEventLoop()
manager.finished.connect(l.quit)
l.exec_()
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG)
app = QApplication(sys.argv)
test()