Найти - Пользователи
Полная версия: Эмуляция браузера PyQT4
Начало » GUI » Эмуляция браузера PyQT4
1 2 3
Seganapa
Делаю так:

#!/usr/bin/python
import spynner
import time
from PyQt4 import QtWebKit
settings = QtWebKit.QWebSettings.globalSettings()
settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
 
class ClickableBrowser(spynner.Browser):
    def __init__(self, *args, **kwargs):
        super(ClickableBrowser, self).__init__(*args, **kwargs)
        self.webpage.setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
        self.webpage.linkClicked.connect(self._link_is_clicked)
 
    def _link_is_clicked(self, url):
        self.load(url)
  
browser = ClickableBrowser(debug_level=spynner.INFO)
browser.create_webview()
browser.show()
browser.load("http://ru.grepolis.com")
browser.load_jquery(True)
browser.browse()

Потом ввожу руками логин и пароль, но Flash все равно не догружается…


Так и висит… Что не так?
Seganapa
Пробовал даже NPSWF32.dll копировать в директорию с программкой, толку нет… Так и не работает!

Help ME please!!!
reclosedev
Так флэш не работает или просто не логинится? Нужно проверить на youtube.com. У меня работало. Если не работает флэш вообще, нужно пробовать установить плагин в систему еще раз (разные варианты для сафари, хром). Если флэш работает, то смотреть по логам что не так.
На grepolis нет возможности проверить.
Seganapa
Он авторизуется нормально, в углу видно название города.
Может я что не так делаю…

А если я тестовый логин и пароль дам, можете проверить, очень нужно…
Логин: Sudorei
Пароль: 26102012
reclosedev
Попробовал, тоже дальше картинки с полоской не идет. Чтобы разобраться, советую поставить прокси (Fiddler например) и смотреть, что там не так.

Код, чтобы пустить Spynner через прокси:
from PyQt4 import QtNetwork
proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.HttpProxy, "127.0.0.1", 8080)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
Удачи.
Seganapa
C fiddler даже логин и пароль не дает ввести, окошко закрывается не догрузившись…
Ошибка spynner.browser.SpynnerTimeout: Timeout reached: 10 seconds
reclosedev
Порт может другой, не помню какой в Fiddler.
Seganapa
Да нет, он видит запросы, порт 8888
Но после загрузки страницы (в которой поля для ввода пароля и логина) окошко Pyqt закрывается и я ничего не могу сделать… Короче я в растерянности… Сам бот давно написал, застрял на создании интерфейса…
Seganapa
Ув. reclosedev - Я проверил с youtube. Все работает, ролики проигрывает, значит проблема не в Flash?
А в чем может быть? Куки?
Seganapa
В общем для проверки использовал такой код:
import sys
from PyQt4 import QtWebKit
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
from PyQt4.QtNetwork import *
settings = QtWebKit.QWebSettings.globalSettings()
settings.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled, True);
settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.HttpProxy, "127.0.0.1", 8888))
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://ru.grepolis.com"))
web.show()
sys.exit(app.exec_())

Fiddler показал что в моей программке на определенном этапе не отправляет GET запрос

Вот где останавливается браузер Python:


А вот как срабатывает Firefox:


В красной рамке тот запрос который не отправляет Python…

Как такое может быть? И есть ли способ решить эту проблему? Замучился уже… (((


This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB