Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PyQt] QWebView User-Agent, заменить 
:(
    Опции темы
terrible_user
Дата 20.7.2011, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



Помогите разобраться
Нужно сменить 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_())



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Разработка GUI | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.