Помогите разобраться Нужно сменить user-agent передаваемый приложением Код | #!/usr/bin/python # -*- coding: utf-8 -*- #------------------------------------------------------------------------------ import sys from PyQt4.QtCore import * from PyQt4.QtNetwork import * from PyQt4.QtGui import * from PyQt4.QtWebKit import *
class BaseBrowser(QWidget): def __init__(self): QMainWindow.__init__(self) self.setWindowTitle("TEST") # Установить титл self.showMaximized() # Распахнуть окно self.widget = QWidget() self.webView = QWebView() # Создание QWebView
self.request = QNetworkRequest() self.request.setUrl(QUrl("http://localhost/i.php")) self.request.setRawHeader("User-Agent", "Mozilla 1.0") self.manager = QNetworkAccessManager() self.reply = self.manager.get(self.request) self.manager.get(self.request) self.webView.page().setNetworkAccessManager(self.manager) #self.webView.page().userAgentForUrl = QUrl("http://localhost/i.php") #self.webView.load(self.request) #self.webView.load(QUrl("http://localhost/i.php")) self.webView.load(QUrl("http://ispm.zet/i.php"))
self.layout = QGridLayout(self) # Создание QGridLayout self.layout.setMargin(0) # Удаление бардюров self.layout.addWidget(self.webView, 0, 0) self.setLayout(self.layout)
#------------------------------------------------------------------------------
if __name__ == '__main__': app = QApplication(sys.argv) prog = BaseBrowser() prog.show() sys.exit(app.exec_())
|
как то я не правильно видемо подключаю webView.page() QNetworkAccessManager QNetworkRequest Нашел пример кода, но это штука работает с классом QDownloader а не QWebView, она скачивает страничку с выводом infophp() и там user-agent сменен а вот перенести код на свою программу не могу. Код | #!/usr/bin/env python # -*- coding: utf-8 -*- import sys, os from PyQt4 import QtCore, QtGui from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtNetwork import *
class QDownloader(QProgressDialog): def __init__(self, parent=None): QProgressDialog.__init__(self, parent) self.parent = parent self.url = "http://localhost/i.php" self.downloadPath = "./tmpreadfile" self.manager = QNetworkAccessManager() self.jar = QNetworkCookieJar() self.manager.setCookieJar(self.jar) self.resize(self.size().width()*2, self.size().height()) self.manager.finished.connect(self.downloadFinished) self.canceled.connect(self.cancelDownload) self.show() self.download()
def download(self): self.url = QUrl(self.url) self.request = QNetworkRequest(self.url) self.request.setRawHeader("User-Agent", "Wget/1.12 (linux-gnu)") self.reply = self.manager.get(self.request) self.reply.downloadProgress.connect(self.updateDataReadProgress)
def updateDataReadProgress(self, done, total): self.setMaximum(total) self.setValue(done)
def downloadFinished(self, reply): self.redirect = reply.attribute(QNetworkRequest.RedirectionTargetAttribute).toUrl() if not self.redirect.isEmpty(): self.request = QNetworkRequest(self.redirect) self.request.setRawHeader("User-Agent", "Wget/1.12 (linux-gnu)") self.reply = self.manager.get(self.request) self.reply.downloadProgress.connect(self.updateDataReadProgress) else: self.updateFile = QFile(self.downloadPath) self.updateFile.open(QIODevice.WriteOnly) self.updateFile.write(self.reply.readAll()) self.updateFile.close() self.reply.deleteLater() self.manager.deleteLater() self.close() reply.deleteLater()
def cancelDownload(self): self.reply.abort()
app = QtGui.QApplication(sys.argv) window = QDownloader() sys.exit(app.exec_())
|
|