python 使用代理

2012-03-16 18:10:40 +08:00
 kojp
是这样的,以前有写过一个,下载CSS文件背景图片的小工具。

国内的网站都算是畅通无阻。

但是对于被墙的就不行了。

想在urllib.urlretrieve 之前加一个代理?要怎么操作。。。

而且加的代理是自己的SSH~~~是否能实现?
7020 次点击
所在节点    Python
7 条回复
kojp
2012-03-16 18:13:44 +08:00
proxies = {'http': '127.0.0.1:8282'}
urllib.urlretrieve(url(....), proxies=proxies)
gavingeng
2012-03-19 00:31:53 +08:00
如果是使用ssh的话,可以使用socks.py来做设置
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 7070)
socket.socket = socks.socksocket

你需要到SocksiPy.zip的包,然后cp到你的py lib下就可以
kojp
2012-03-20 12:40:14 +08:00
@gavingeng
现在试试。。。一会儿,反馈。呵呵。

谢谢~
kojp
2012-03-22 15:46:00 +08:00
@gavingeng

亲测,有用。。(大部分网站有用。及少部分表示超时,原因不明)

import urllib2,io,os,sys,socks,socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8282)
socket.socket = socks.socksocket
#req=urllib2.Request("http://www.twitter.com") #ok
req=urllib2.Request("https://www.facebook.com/") #not ok
f=urllib2.urlopen(req)
s=f.read()
print s
yanwen
2012-03-22 15:51:29 +08:00
php + curl 好像也可以实现这样的功能
gavingeng
2012-03-22 22:34:50 +08:00
@kojp 嘿嘿!
est
2012-03-22 23:01:43 +08:00
直接环境变量 export http_proxy=x.x.x.x:8000

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/29819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX