python的urllib2模块,用代理连接网络

今天要下载一些图片,这些图片全被墙了。就想着用python去下载,当然得用代理。

搜索一下发现urllib及urllib2模块都是支持代理的,但是要http代理。而我用Tunnelier建的是sock5代理,随即再搜索python使用sock5代理,发现也是有相关第三方模块的,叫SocksiPy。

下载后按说明使用,但一直不成功,汗,可能悟性太低了吧。

看来只有找个http代理了,要不用nginx搞个http代理?折腾了下,貌似也不成功。

又想到本博客另一作者写过一个sock5代理转http代理的帖子,立马找到其中提到的软件:Privoxy

下载后安装,最后版本是

Privoxy 3.0.17

我就下载的这个。安装后打开,在Options–Eidt Main Configuration

这时会用记事本打开配置文件,在这个文件的最下面加上:

forward-socks5 / 127.0.0.1:7070 .

注意最后面有一个点,最好复制。

我的Tunnelier在7070端口开的sock5代理,具体视个人情况修改。

保存后重启Privoxy。

然后在 127.0.0.1:8118 就有http代理了,8118是privoxy默认的端口。

urllib2使用代理:

import urllib2

proxy = ’127.0.0.1:8118′
opener = urllib2.build_opener( urllib2.ProxyHandler({‘http’:proxy}) )
urllib2.install_opener( opener )
sContent = urllib2.urlopen(url).read()
file1=open(filepath,’wb’)
file1.write(sContent)
file1.close()

你可能感兴趣的:(nginx,python)