2013-08-07 54 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