Python 无法获取HTTPS URL(请求包)
当我尝试遵循此处的指南时:我的脚本失败:Python 无法获取HTTPS URL(请求包),python,python-3.x,https,web-scraping,python-requests,Python,Python 3.x,Https,Web Scraping,Python Requests,当我尝试遵循此处的指南时:我的脚本失败: import requests res = requests.get('https://automatetheboringstuff.com/files/rj.txt') type(res) res.raise_for_status() 请求已安装 经过很长时间的等待后,我收到了以下错误消息,这些消息仅在使用HTTPS URL时出现;使用Python 3.6.3 64位和Python 3.6.4 64位的两台Windows 10 64位计算机上也会发
import requests
res = requests.get('https://automatetheboringstuff.com/files/rj.txt')
type(res)
res.raise_for_status()
请求已安装
经过很长时间的等待后,我收到了以下错误消息,这些消息仅在使用HTTPS URL时出现;使用Python 3.6.3 64位和Python 3.6.4 64位的两台Windows 10 64位计算机上也会发生同样的情况:
"C:\Program Files\Python36\python.exe" "C:/Users/user.name/Google Drive/Automation/RoHSWebScraper/main.py"
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\urllib3\contrib\pyopenssl.py", line 441, in wrap_socket
cnx.do_handshake()
File "C:\Program Files\Python36\lib\site-packages\OpenSSL\SSL.py", line 1716, in do_handshake
self._raise_ssl_error(self._ssl, result)
File "C:\Program Files\Python36\lib\site-packages\OpenSSL\SSL.py", line 1449, in _raise_ssl_error
raise SysCallError(-1, "Unexpected EOF")
OpenSSL.SSL.SysCallError: (-1, 'Unexpected EOF')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
chunked=chunked)
File "C:\Program Files\Python36\lib\site-packages\urllib3\connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "C:\Program Files\Python36\lib\site-packages\urllib3\connectionpool.py", line 850, in _validate_conn
conn.connect()
File "C:\Program Files\Python36\lib\site-packages\urllib3\connection.py", line 326, in connect
ssl_context=context)
File "C:\Program Files\Python36\lib\site-packages\urllib3\util\ssl_.py", line 329, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "C:\Program Files\Python36\lib\site-packages\urllib3\contrib\pyopenssl.py", line 448, in wrap_socket
raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\requests\adapters.py", line 440, in send
timeout=timeout
File "C:\Program Files\Python36\lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "C:\Program Files\Python36\lib\site-packages\urllib3\util\retry.py", line 388, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='automatetheboringstuff.com', port=443): Max retries exceeded with url: /files/rj.txt (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/user.name/Google Drive/Automation/RoHSWebScraper/main.py", line 3, in <module>
res = requests.get('https://automatetheboringstuff.com/files/rj.txt', verify=False)
File "C:\Program Files\Python36\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "C:\Program Files\Python36\lib\site-packages\requests\adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='automatetheboringstuff.com', port=443): Max retries exceeded with url: /files/rj.txt (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))
Process finished with exit code 1
“C:\Program Files\Python36\python.exe”“C:/Users/user.name/Google Drive/Automation/RoHSWebScraper/main.py”
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python36\lib\site packages\urllib3\contrib\pyopenssl.py”,第441行,在wrap\u套接字中
cnx.do_握手()
文件“C:\Program Files\Python36\lib\site packages\OpenSSL\SSL.py”,第1716行,在do_握手中
self.\u raise\u ssl\u错误(self.\u ssl,结果)
文件“C:\Program Files\Python36\lib\site packages\OpenSSL\SSL.py”,第1449行,出现错误
引发系统调用错误(-1,“意外EOF”)
OpenSSL.SSL.syscaller错误:(-1,“意外的EOF”)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python36\lib\site packages\urllib3\connectionpool.py”,第601行,在urlopen中
分块=分块)
文件“C:\Program Files\Python36\lib\site packages\urllib3\connectionpool.py”,第346行,在请求中
自我验证连接(连接)
文件“C:\Program Files\Python36\lib\site packages\urllib3\connectionpool.py”,第850行,在\u validate\u conn
连接
文件“C:\Program Files\Python36\lib\site packages\urllib3\connection.py”,第326行,在connect中
ssl(上下文=上下文)
文件“C:\Program Files\Python36\lib\site packages\urllib3\util\ssl\uuuu.py”,第329行,在ssl\u wrap\u套接字中
返回context.wrap\u套接字(sock,server\u hostname=server\u hostname)
文件“C:\Program Files\Python36\lib\site packages\urllib3\contrib\pyopenssl.py”,第448行,在wrap\u套接字中
raise ssl.SSLError('握手错误:%r“%e”)
ssl.SSLError:(“握手错误:SysCallError(-1,'意外EOF'),)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python36\lib\site packages\requests\adapters.py”,第440行,发送
超时=超时
文件“C:\Program Files\Python36\lib\site packages\urllib3\connectionpool.py”,第639行,在urlopen中
_stacktrace=sys.exc_info()[2])
文件“C:\Program Files\Python36\lib\site packages\urllib3\util\retry.py”,第388行,增量
引发MaxRetryError(_池、url、错误或响应错误(原因))
urllib3.exceptions.MaxRetryError:HTTPSConnectionPool(host='automatetheboringstuff.com',port=443):url:/files/rj.txt超过了最大重试次数(由SSLError(SSLError(“错误握手:SysCallError(-1,'意外EOF'),)引起)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:/Users/user.name/Google Drive/Automation/RoHSWebScraper/main.py”,第3行,在
res=requests.get('https://automatetheboringstuff.com/files/rj.txt,verify=False)
get中第72行的文件“C:\Program Files\Python36\lib\site packages\requests\api.py”
返回请求('get',url,params=params,**kwargs)
文件“C:\Program Files\Python36\lib\site packages\requests\api.py”,第58行,在请求中
return session.request(method=method,url=url,**kwargs)
文件“C:\Program Files\Python36\lib\site packages\requests\sessions.py”,第508行,在请求中
resp=自我发送(准备,**发送)
文件“C:\Program Files\Python36\lib\site packages\requests\sessions.py”,第618行,在send中
r=适配器.send(请求,**kwargs)
文件“C:\Program Files\Python36\lib\site packages\requests\adapters.py”,第506行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:HTTPSConnectionPool(host='automatetheboringstuff.com',port=443):url:/files/rj.txt超过最大重试次数(由SSLError引起(SSLError(“错误握手:SysCallError(-1,'意外EOF'),),)
进程已完成,退出代码为1
有谁能帮我解决这个恼人的问题吗 您可以尝试
urllib
:
蟒蛇2:
import urllib
data = urllib.urlopen('https://automatetheboringstuff.com/files/rj.txt').read()
蟒蛇3:
import urllib.requests
data = urllib.requests.urlopen('https://automatetheboringstuff.com/files/rj.txt').read()
因此,我公司网络上的计算机正在使用代理服务器,这阻止了我的HTTP和HTTPS请求正确连接 我按照Lelouchzqy的答案来确定我的HTTP和HTTPS代理服务器是什么 然后,我按照罗兰·史密斯的回答告诉
请求
使用哪些代理
希望这将有助于在未来的人,如果他们有相同的问题 从这里开始就可以了。您是否配置了可能会干扰连接的代理?您需要配置代理吗?你能用浏览器获取该URL吗?嗨,据我所知,我没有配置任何类型的代理,我不需要手动配置。我能够在FireFox和Chrome中成功获取URL。这可能很愚蠢,但您是否尝试从非google驱动器目录运行代码?Ahmed_Rahat提供了指向的链接,但他们的答案已被删除。抱歉,我不知道如何调试代理问题:(至少你知道问题出在哪里。另外,如果你想让别人在评论中看到你的回复,最好像这样ping他们@LarsaSolidorI,我刚刚尝试过这个。回复需要很长时间,然后会给我同样的错误。)-(