2014-01-21 20 views
1

是否有人能夠解釋如何使Ghost.py與代理工作?我檢查了代碼,但它不在那裏。Ghost.py和代理

+0

你有什麼更新'set_proxy'?它仍然很不清楚在我身邊。如果你想指定一個,我做'ghost = Ghost(wait_timeout = 20)'然後'ghost.set_proxy(type _ ='http',host =「http://myproxy.net」,port = 7676)''但'page,res = ghost.open()'給出了一個'page = None'結果 –

+0

@ColonelBeauvel你確定代理和它的端口,知道它們在工作嗎? – iChux

+0

完全確定,因爲他們在使用'urllib2'來代理一些靜態數據時正在工作。所以代理和端口是正確的,我想我做錯了'鬼',但不知道什麼... –

回答

2

如果在Ghost.py基於Qt api製作tcp連接的方式,那麼你可以使用Qt/PySide API,參見QNetworkProxy :: setApplicationProxy()。否則,如果Ghost.py不使用Qt Api,但是例如curl libe,那麼你嘗試設置環境變量「http_proxy」

2

文檔中說,QNetworkProxy.DefaultProxy: 代理是基於使用setApplicationProxy() 因此如果代理被QNetworkProxy :: setApplicationProxy(設置的應用程序代理設置)來確定,然後調用set_proxy(「默認」)將使使用它 (它會將代理傳遞給self.manager,我猜是QNetworkAccessManager對象)。

+1

那麼,這是否意味着如果我設置https代理而未指定QNetworkAccessManager將理解其https? – iChux

1

您可以使用下面的代碼。它爲我,

from ghost import Ghost, Session 
ghost = Ghost() 
with ghost.start(): 
    session = Session(ghost) 
    session.wait_timeout = 999 
    session.set_proxy('http', str(ip), int(port), str(username), str(password)) 
    page, resource = session.open(url) 
    print session.content # Prints html content 
    print page.headers, page.url, page.http_status 

鬼對象只有一個方法,即啓動()。其餘的被定義爲Session類的方法。

+0

你提到的代理的形式是什麼? ''「http://myproxy.net」'例如或者簡單''myproxy.net「'? –

+0

我使用的代理是一個像192.168.1.1和它的端口的IP地址。我不確定myproxy.net是否有效。 – theBuzzyCoder