Python怎么使用s5代理?

  Python有一个库PySocks,这个库非常方便您使用s5代理协议,有些时候,你的Python程序需要发送一个HTTP请求到某台机器,但是网络不能直接连接,需要走跳板机,走代理,那么就可以使用这个库让你偷偷的走s5代理,业务完全无感知的,请求就发往了机器(但其实是走了代理)。

Python怎么使用s5代理?

  点子安装

  pip install PySocks

  使用场景

  官方例子

  官方使用示例:

  import socks

  # 建立一个操作句柄;

  s = socks.socksocket() # Same API as socket.socket in the standard lib

  # 指明代理服务器和端口

  s.set_proxy(socks.SOCKS5, “localhost”, 8888)

  # 走代理发 HTTP 请求

  s.connect((www.fanqieip.net, 80))

  s.sendall(“GET / HTTP/1.1 …")

  print s.recv(4096)

  上面的例子,还是不够优美,你仔细看看,业务的逻辑和代理直接转换在一起了。所以这种是侵入式的,适用场景有限。

  更通用的场景

  更多的场景是,我业务代理已经有了,配置什么的都是直接的target,这样直接通信。线上跑当然没问题,但是如果我是在本地电脑上调试,如果网络不能直接连通,只能通过跳板机,那Python程序在本地便跑不起来。

  这个时候,就可以用到Pysocks的Monkeypatching功能,就可以业务无感知的使用到代理,什么叫做业务无感知?就是业务完全不改代码,自己都不知道,就走了代理了。