2013-08-07 58 views
0

我試圖使用的urllib2通過代理報廢的網頁是不能直接使用(這是遠程服務器的本地網絡中運行,而不是在外部無障礙)。我寧願代理是一個SSH SOCKS代理(比如你如果運行ssh -D 9090 server),一方面是因爲我有機會到這一點,因爲它是相當安全的。Python版本

我已經與paramiko捅了一圈,但是我發現所有的東西都指向運行SOCKS上的SSH連接,這與我實際嘗試在這裏完成的事情相反。

我已經看到了交通運輸類,但這不僅會愚蠢轉發並沒有提供一個很好的OpenSSH-SOCKS代理接口,我能含住與SocksiPy(等人)。

Net::SSH::Socks for Ruby正是我要找的語言錯誤。 Python中有沒有提供SSH代理的東西?

回答

0

我有刮工作的解決方法。而不是試圖用SSH連接,我使用的是遠程shell拉出數據:

from bs4 import BeautifulSoup 
import paramiko 

ssh = paramiko.SSHClient() 
ssh.load_system_host_keys() 
ssh.connect('example.com', username='Oli', look_for_keys=True, timeout=5) 

stdin, stdout, stderr = ssh.exec_command('/usr/bin/wget -qO- "%s"' % url) 
soup = BeautifulSoup(stdout) 

ssh.close() 

這不是我一直在尋找,開始與(和我還是很喜歡看看是否有通過SSH連接SOCKS套接字的方法),但其簡單性有一些優雅。

+0

你有沒有發現任何其他方式?我需要與ssh -D選項相同的功能。 – BigSack