PyQt: как использовать QWebPage с анонимным прокси - PullRequest
5 голосов
/ 24 марта 2011

Это сводит меня с ума.

Я хочу показать в QWebPage URL-адрес, но я хочу сделать это, передавая анонимный прокси.

Код

#setting up the proxy

proxy = QNetworkProxy()
proxy.setHostName("189.75.98.199") #just examples
proxy.setPort(1111)
proxy.setType = QNetworkProxy.HttpProxy

#setting the manager

manager = QNetworkAccessManager()
manager.setProxy(proxy) #setting the proxy on the manager

#setting the proxy as application proxy

QNetworkProxy.setApplicationProxy(proxy) #seems to do nothing..

#web page

webpage = QWebPage()
webpage.setNetworkAccessManager(manager) #maybe.. but it doesn't work

webpage.mainFrame().load(QUrl("http://www.foo.bar") )

Я вызываю тестовую страницу, которая сообщает мне заголовки (на php-сервере, поэтому я смотрю на $ _SERVER), а remote_addr всегда мой ip, а не ip прокси.

Что не так?

Можете ли вы помочь мне?Я использую PyQt 4.8.3.

1 Ответ

4 голосов
/ 06 апреля 2011

получил его на работу

таким образом это работает, используя setApplicationProxy. Я до сих пор не понимаю, почему установка параметров прокси после создания экземпляра не работает (как в первоначальном примере)

def set_proxy(self,  proxy):

    proxy_url = QUrl(proxy)

    if unicode(proxy_url.scheme()).startswith('http'):
        protocol = QNetworkProxy.HttpProxy
    else:
        protocol = QNetworkProxy.Socks5Proxy
    QNetworkProxy.setApplicationProxy(
        QNetworkProxy(
            protocol,
            proxy_url.host(),
            proxy_url.port(),
            proxy_url.userName(),
            proxy_url.password()))
...