如何在urllib2中的同一程序上使用不同的ip proxy?

时间:2016-05-17 07:18:19

标签: python proxy urllib2 urllib

以下代码可以使用代理作为官方文档

proxy_handler = urllib2.ProxyHandler({protocol : protocol + '://' + ip_proxies})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)

但我想在不同的方法上使用不同的代理

使用urllib2.install_opener()会在urllib2中设置全局opener,这样我就无法在程序中使用两种不同的代理设置。

如何才能使用install_opener更改全局设置,但只有opener直接调用open方法而不是全局urlopen方法?

1 个答案:

答案 0 :(得分: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支持的功能

  • 国际域名和网址
  • Keep-Alive&连接池
  • Cookie持久性会话
  • 浏览器式SSL验证
  • 基本/摘要式身份验证
  • 优雅的钥匙/价值饼干
  • 自动解压缩
  • 自动内容解码
  • Unicode响应机构
  • 分段文件上传
  • HTTP(S)代理支持
  • 连接超时
  • 流媒体下载
  • .netrc支持
  • Chunked Requests
  • 线程安全性