【问题标题】:How to use different ip proxy on the same program in urllib2 ?urllib2中如何在同一个程序上使用不同的ip代理?
【发布时间】:2016-09-13 03:59:09
【问题描述】:
以下代码可以使用代理作为官方文档
proxy_handler = urllib2.ProxyHandler({protocol : protocol + '://' + ip_proxies})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
但我想在不同的方法上使用不同的代理
使用urllib2.install_opener()会在urllib2中设置全局opener,这样我就不能在程序中使用两个不同的Proxy设置了。
如何不使用install_opener更改全局设置,而只使用opener直接调用open方法而不是全局urlopen方法?
【问题讨论】:
标签:
python
proxy
urllib2
urllib
【解决方案1】:
我已经解决了这个问题。关键是用requests而不是urllib2,我的错。
import requests
s = requests.Session()
proxies = {
'http': 'http://127.0.0.1:8087',
'https': 'http://127.0.0.1:8087',
}
login_data = {
'email': 'youxiassssssssssssssssssssssss@163.com',
'pass': 'mima',
}
r = s.get('https://www.facebook.com/login.php?login_attempt=1', proxies=proxies, verify=False)
requests 支持的功能
- 国际域名和网址
- 保持活动和连接池
- 具有 Cookie 持久性的会话
- 浏览器式 SSL 验证
- 基本/摘要式身份验证
- 优雅的键/值 Cookie
- 自动解压
- 自动内容解码
- Unicode 响应正文
- 分段文件上传
- HTTP(S) 代理支持
- 连接超时
- 流式下载
- .netrc 支持
- 分块请求
- 线程安全