首页IT科技python socks5代理(在python的urllib2中使用socks代理 | 潘魏增)

python socks5代理(在python的urllib2中使用socks代理 | 潘魏增)

时间2025-08-03 01:28:06分类IT科技浏览8637
导读:在python的urllib2中使用socks代理...

在python的urllib2中使用socks代理

python2.5中的urllib2支持http代理                 ,不支持socks代理                 。假如代码库或者编码时使用了urllib2                           ,同时又要使用socks         ,就需要第三方的库来实现                           。幸运的是                 ,已经有人造好了轮子         。

SocksiPy是一个socks module                 。它提供了一个类socket的接口                          ,支持socks4                  、socks5和http proxy                          。下载后在代码中引用socks.py即可         ,也可以写个setup.py文件安装到python的site-packages目录中         。

使用时         ,将下面的代码放在调用urllib2的代码之前即可:

1
2
3
4
5
6
import socks
import socket
socks.setdefaultproxy(socks.<span class="hilite">PROXY</span>_TYPE_SOCKS5, "127.0.0.1", 8080)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen(<span class="hilite">http</span>://panweizeng.com).read()

如果是自己写的程序                          ,也可以尝试使用pycurl这个库         。ubuntu使用sudo apt-get install python-pycurl python-pycurl-dbg安装                          。

示例代码

1
2
3
4
5
6
7
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, <span class="hilite">http</span>://panweizeng.com)
c.setopt(pycurl.PROXY, 127.0.0.1)
c.setopt(pycurl.PROXYPORT, 8080)
c.setopt(pycurl.PROXYTYPE, pycurl.<span class="hilite">PROXY</span>TYPE_SOCKS5)
c.perform()

如果在程序外部使用socks                  ,推荐使用tsocks                  。ubuntu中直接使用sudo apt-get install tsocks安装         。安装完毕以后需要修改/etc/tsocks.conf                          。

配置样例如下

1
2
3
4
5
6
# 默认代理服务器
server = 127.0.0.1
# 代理服务器类型
server_type = 5
# 代理服务器端口
server_port = 8080

使用时         ,在命令行输入tsocks 程序名即可                  。例如ubuntu下的epiphany浏览器没有代理设置                          ,如果想使用socks代理                  ,输入tsocks epiphany-browser即可(注意先关闭其他的epiphany实例)。

声明:本站所有文章,如无特殊说明或标注                          ,均为本站原创发布                          。任何个人或组织                           ,在未征得本站同意时,禁止复制                          、盗用         、采集         、发布本站内容到任何网站                          、书籍等各类媒体平台                           。如若本站内容侵犯了原著者的合法权益                 ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
lua和c相互调用(Lua 语言和C/C++集成调研小结) vps v(探究和65 VPS解析的技巧与实用经验)