Python urllib2 > HTTP 代理 > HTTPS 请求

标签 python proxy https urllib2

这个工作正常:

import urllib2

opener = urllib2.build_opener(
                urllib2.HTTPHandler(),
                urllib2.HTTPSHandler(),
                urllib2.ProxyHandler({'http': 'http://user:pass@proxy:3128'}))
urllib2.install_opener(opener)
print urllib2.urlopen('http://www.google.com').read()

但是,如果 http 更改为 https:

...
print urllib2.urlopen('https://www.google.com').read()

有错误:

Traceback (most recent call last):
  File "D:\Temp\6\tmp.py", line 13, in <module>
    print urllib2.urlopen('https://www.google.com').read()
  File "C:\Python26\lib\urllib2.py", line 124, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python26\lib\urllib2.py", line 389, in open
    response = self._open(req, data)
  File "C:\Python26\lib\urllib2.py", line 407, in _open
    '_open', req)
  File "C:\Python26\lib\urllib2.py", line 367, in _call_chain
    result = func(*args)
  File "C:\Python26\lib\urllib2.py", line 1154, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "C:\Python26\lib\urllib2.py", line 1121, in do_open
    raise URLError(err)
URLError: <urlopen error [Errno 10060]

为什么以及如何解决这个问题?

最佳答案

改变这一行:

urllib2.ProxyHandler({'http': 'http://user:pass@proxy:3128'}))

为此:

urllib2.ProxyHandler({'https': 'http://user:pass@proxy:3128'}))

它对我来说很好。

关于Python urllib2 > HTTP 代理 > HTTPS 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927831/

相关文章:

java - 如何从 GAE servlet 发送 HTTPS 请求?

c# - ASP.NET - 检查开发机器或服务器

python3 非法指令(核心转储)

python - 连接 python 表

python - Pandas 数据框计数行值

apache - 如何设置 apache 来代理同一台服务器上的两个不同的 tomcat?

python - urllib2中同一个程序如何使用不同的ip代理?

python - 我在 3D 地形上有一个盒子的 8 个顶点,我需要将盒子分成几个较小的顶点

javascript - CRUD 通过 ajax 代理批量更新/插入

windows - Python py2exe "IOError...unknown url type: https"问题