【发布时间】:2016-02-01 02:09:56
【问题描述】:
我无法使用 urllib 打开具有 HTTPS 协议的链接。 我正在使用家庭网络(无代理)在 Ubuntu 中运行 python 2.7.1。
它总是返回和错误,如果我更改为 HTTP,它会工作,我在这里缺少什么?
代码示例:
from BeautifulSoup import *
import urllib
url = "https://path/file.html"
html = urllib.urlopen(url).read()
返回错误:
Traceback (most recent call last):
File "/home/.../links.py", line 4, in <module> html = urllib.urlopen(url).read()
html = urllib.urlopen(url).read()
File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
return opener.open(url)
File "/usr/lib/python2.7/urllib.py", line 213, in open
return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py", line 443, in open_https
h.endheaders(data)
File "/usr/lib/python2.7/httplib.py", line 1048, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 892, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 854, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 1273, in connect
server_hostname=server_hostname)
File "/usr/lib/python2.7/ssl.py", line 352, in wrap_socket
_context=self)
File "/usr/lib/python2.7/ssl.py", line 579, in __init__
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 808, in do_handshake
self._sslobj.do_handshake()
IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
【问题讨论】:
-
是完整的错误信息吗?可以有更多有用的信息。
-
我用完整的错误信息更新了它。谢谢
标签: python ubuntu https beautifulsoup urllib