[速记] Python 使用网络代理
在测试 Telegram 机器人的时候遇到了网络问题(由于众所周知的原因,Telegram 的服务器在国内大部分地区无法访问),于是需要使用代理。我本机上是有一个运行在 1080 端口的 socks5 代理,那么速记一下如何使用。
urllib2
python-telegram-bot 是直接使用的 urllib2,所以我直接让 urllib2 全局使用代理。需要安装 PySocks
。
|
|
使用:
|
|
requests
让 requests 使用代理就简单多了。requests 本身支持 HTTP_PROXY
和 HTTPS_PROXY
两个环境变量(通过 os.environ
获取)。按照官方说法,要使用全局代理的话也可以直接设置 ALL_PROXY
这个环境变量,不过我测试没有成功。
那么,要让 requests 全局使用代理的话,只要在调用前设置 os.environ['HTTP_PROXY']
和 os.environ['HTTPS_PROXY']
就可以了,格式是类似 protocol://user:passwd@address:port
。
更多代码实例可以参考 《Python:使用代理proxy爬虫》,但是注意一点:使用爬虫恶意抓取网站内容不仅是不道德行为,更有可能因违反站点的 ToS 而被封禁帐号/IP,甚至起诉。