Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2016 17:29:11

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Сейчас делаю вот так, но страница не загружается вообще

import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4 import QtNetwork
def progress(i):
    print('\r{}%'.format(i), end='')
    if i == 100:
        print()
def load_complete():
    print(web.url())
app = QtGui.QApplication(sys.argv)
proxy = QtNetwork.QNetworkProxy()
proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
proxy.setHostName('134.228.156.127')
proxy.setPort(19380)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
web = QtWebKit.QWebView()
web.load(QtCore.QUrl("http://2ip.ru"))
web.loadFinished.connect(load_complete)
web.loadProgress.connect(progress)
web.show()
sys.exit(app.exec_())

Отредактировано dima2881 (Янв. 15, 2016 17:29:23)

Офлайн

#2 Янв. 15, 2016 17:40:54

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Прокси подключается не ко всему приложению, а только к вебстранице. Т.е. должно быть как-то так:

class NetworkAccessManager(QtNetwork.QNetworkAccessManager):
    def __init__(self, *arg, **args):
        QtNetwork.QNetworkAccessManager.__init__(self, *arg, **args)
        proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.HttpProxy)
        ....
        self.setProxy(proxy)
.....
class WebPage(QtWebKit.QWebPage):
    def __init__(self, *arg, **args):
        QtWebKit.QWebPage.__init__(self, *arg, **args)
        netManager = NetworkAccessManager()
        self.setNetworkAccessManager(netManager)
        .....
......
class WebView(QtWebKit.QWebView):
    def __init__(self, *arg, **args):
        QtWebKit.QWebView.__init__(self, *arg, **args)
        Page = WebPage()
        self.setPage(Page)
        .....
web.show()
sys.exit(app.exec_())



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Янв. 15, 2016 17:53:13

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Rodegast
Похоже я что-то упустил, потому что сейчас страница грузится, но прокся не применяться.

import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4 import QtNetwork
class NetworkAccessManager(QtNetwork.QNetworkAccessManager):
    def __init__(self, *arg, **args):
        QtNetwork.QNetworkAccessManager.__init__(self, *arg, **args)
        proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.HttpProxy)
        proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
        proxy.setHostName('134.228.156.127')
        proxy.setPort(19380)
        self.setProxy(proxy)
class WebPage(QtWebKit.QWebPage):
    def __init__(self, *arg, **args):
        QtWebKit.QWebPage.__init__(self, *arg, **args)
        netManager = NetworkAccessManager()
        self.setNetworkAccessManager(netManager)
class WebView(QtWebKit.QWebView):
    def __init__(self, *arg, **args):
        QtWebKit.QWebView.__init__(self, *arg, **args)
        Page = WebPage()
        self.setPage(Page)
        
app = QtGui.QApplication(sys.argv)
web = QtWebKit.QWebView()
web.load(QtCore.QUrl('http://2ip.ru'))
web.show()
sys.exit(app.exec_())

Отредактировано dima2881 (Янв. 15, 2016 17:53:23)

Офлайн

#4 Янв. 15, 2016 18:11:59

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Да это я немного ошибся. Надо:

web = QtWebKit.QWebView()
web.setPage(WebPage())
Класс WebView можно удалить.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Янв. 15, 2016 18:20:32

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Сейчас страница опять вообще не грузится

import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4 import QtNetwork
class NetworkAccessManager(QtNetwork.QNetworkAccessManager):
    def __init__(self, *arg, **args):
        QtNetwork.QNetworkAccessManager.__init__(self, *arg, **args)
        proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.HttpProxy)
        proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
        proxy.setHostName('94.23.166.246')
        proxy.setPort(60088)
        self.setProxy(proxy)
class WebPage(QtWebKit.QWebPage):
    def __init__(self, *arg, **args):
        QtWebKit.QWebPage.__init__(self, *arg, **args)
        netManager = NetworkAccessManager()
        self.setNetworkAccessManager(netManager)
app = QtGui.QApplication(sys.argv)
web = QtWebKit.QWebView()
web.setPage(WebPage())
web.load(QtCore.QUrl('http://ya.ru'))
web.show()
sys.exit(app.exec_())

Офлайн

#6 Янв. 15, 2016 18:22:18

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Удали

proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
пользователь и пароль от прокси не нужен?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Янв. 15, 2016 18:26:09

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Rodegast
нет, это обычная прокся найденная на просторах сети, в обычном браузере проверял, она работает

Офлайн

#8 Янв. 15, 2016 18:27:10

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Rodegast
Удали
Удалил и все равно не работает.

Офлайн

#9 Янв. 15, 2016 18:35:09

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

> это обычная прокся найденная на просторах сети, в обычном браузере проверял, она работает

Не работает твоя прокся. Сейчас c конкэррора я через неё подключится не смог.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Янв. 15, 2016 18:37:45

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Установка прокси для QtWebKit.QWebView

Rodegast
Эмм, ну у меня она работает, а ты какой тип прокси выбирал? Она socks5

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version