2017-10-20 62 views
-2

您好我是新來的蟒蛇,我使用的版本3.6.2urllib.request.urlopen錯誤

我似乎無法偶數碼最基本線,如下圖所示。我很想知道我做錯了什麼。

>>> import urllib.request 
>>> x = urllib.request.urlopen('https://www.google.com') 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1318, in do_open 
    encode_chunked=req.has_header('Transfer-encoding')) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request 
    self._send_request(method, url, body, headers, encode_chunked) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request 
    self.endheaders(body, encode_chunked=encode_chunked) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders 
    self._send_output(message_body, encode_chunked=encode_chunked) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output 
    self.send(msg) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send 
    self.connect() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1400, in connect 
    server_hostname=server_hostname) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 407, in wrap_socket 
    _context=self, _session=session) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 814, in __init__ 
    self.do_handshake() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1068, in do_handshake 
    self._sslobj.do_handshake() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 689, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777) 
During handling of the above exception, another exception occurred: 
Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    x = urllib.request.urlopen('https://www.google.com') 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen 
    return opener.open(url, data, timeout) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 526, in open 
    response = self._open(req, data) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 544, in _open 
    '_open', req) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain 
    result = func(*args) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1361, in https_open 
    context=self._context, check_hostname=self._check_hostname) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1320, in do_open 
    raise URLError(err) 
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)> 

回答

2

這似乎是一個SSL證書錯誤。當你提出要求時,設置參數verify=False

示例代碼:

import requests as rq 

response = rq.get("https://google.com", verify=False) 
+0

感謝您的幫助,但我還是用你的方法出現錯誤。 >>>導入請求爲RQ 回溯(最近通話最後一個): 文件 「」,1號線,在 導入請求爲RQ ModuleNotFoundError:無模塊名爲 '請求' >>>響應= rq.get( 「https://google.com」,veryify = FALSE) 回溯(最近通話最後一個): 文件 「」,1號線,在 響應= rq.get(「HTTPS ://google.com「,veryify = False) NameError:名稱'rq'未定義 –

+0

這是這通常是一個非常糟糕的主意,它會消除HTTPS針對主動攻擊者提供的所有保護,因此,與您在同一網絡上的任何人都可以攔截所有流量並查看內容,而到達遠程端點時該連接可以被信任。 – jrtapsell

+0

那麼有沒有辦法解決這個錯誤,或者我無法使用python訪問web?我很新,這是第一次嘗試它。 –