2017-05-25 74 views
-1

使用请求网站我使用Python和我想凑这个网站: https://online.ratb.ro/info/browsers.aspx无法加载在Python

但我发现了这个错误:

Traceback (most recent call last):
File "C:\Users\pinguluk\Desktop\Proiecte GIT\RATB Scraper\test2.py", line 3, in
test = requests.get(' https://online.ratb.ro/info/browsers.aspx ')
File "C:\Python27\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "C:\Python27\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 518, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 639, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\lib\site-packages\requests\adapters.py", line 512, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)

安装模块:

['appdirs==1.4.3', 'asn1crypto==0.22.0', 'attrs==16.3.0', 'automat==0.5.0', 'beautifulsoup4==4.5.3', 'cairocffi==0.8.0', 'certifi==2017.4.17', 'cffi==1.10.0', 'colorama==0.3.9', 'constantly==15.1.0', 'cryptography==1.8.1', 'cssselect==1.0.1', 'cycler==0.10.0', 'distributedlock==1.2', 'django-annoying==0.10.3', 'django-oauth-tokens==0.6.3', 'django-taggit==0.22.1', 'django==1.11.1', 'enum34==1.1.6', 'facepy==1.0.8', 'functools32==3.2.3.post2', 'futures==3.1.1', 'gevent==1.2.1', 'greenlet==0.4.12', 'grequests==0.3.0', 'html5lib==0.999999999', 'htmlparser==0.0.2', 'httplib2==0.10.3', 'idna==2.5', 'incremental==16.10.1', 'ipaddress==1.0.18', 'lazyme==0.0.10', 'lxml==3.7.3', 'matplotlib==2.0.2', 'mechanize==0.3.3', 'ndg-httpsclient==0.4.2', 'numpy==1.12.1', 'oauthlib==2.0.2', 'olefile==0.44', 'opencv-python==3.2.0.7', 'packaging==16.8', 'parsel==1.1.0', 'pillow==4.0.0', 'pip==9.0.1', 'py2exe==0.6.9', 'pyandoc==0.0.1', 'pyasn1-modules==0.0.8', 'pyasn1==0.2.3', 'pycairo-gtk==1.10.0', 'pycparser==2.17', 'pygtk==2.22.0', 'pyhook==1.5.1', 'pynput==1.3.2', 'pyopenssl==17.0.0', 'pyparsing==2.2.0', 'pypiwin32==219', 'pyquery==1.2.17', 'python-dateutil==2.6.0', 'python-memcached==1.58', 'pytz==2017.2', 'pywin32==221', 'queuelib==1.4.2', 'requests-futures==0.9.7', 'requests-oauthlib==0.8.0', 'requests-toolbelt==0.8.0', 'requests==2.14.2', 'restclient==0.11.0', 'robobrowser==0.5.3', 'selenium==3.4.1', 'service-identity==16.0.0', 'setuptools==35.0.2', 'simplejson==3.10.0', 'six==1.10.0', 'twitter==1.17.0', 'twitterfollowbot==2.0.2', 'urllib3==1.21.1', 'w3lib==1.17.0', 'webencodings==0.5.1', 'werkzeug==0.12.1', 'wheel==0.29.0', 'zope.interface==4.3.3']

谢谢。

+0

这是一个类似的问题[请求未能连接到TLS服务器(https://stackoverflow.com/questions/44141655/requests-failing-to-connect-to-a-tls-server/44142250# 44142250),并且明确将密码设置为3DES的相同解决方案应该可以工作。 –

+0

@SteffenUllrich太感谢你了!现在它可以工作(在Python 3上)。只是一个问题,我怎样才能配置它的Python 2版本? – Pinguluk

+0

这对我来说也适用于Python 2。但可能是因为您使用的openssl版本不支持3DES,如openssl 1.1.0。检查'ssl.OPENSSL_VERSION'。在这种情况下,您需要使用3DES支持来重建它。 –

回答

0

我认为你将很难解决这个问题,因为你试图“刮”的服务器被非常配置(ssllabs.com gave it a grade F),它可能是请求甚至不支持任何密码套件,因为它们都是不安全的。有可能是creating a custom HTTPAdapter一种选择,所以你可能尝试了这一点。

+0

感谢关于sslabs的提示!我设法让它使用python 3(我使用2.7),我用这种方法,现在它的工作原理! https://stackoverflow.com/questions/44141655/requests-failing-to-connect-to-a-tls-server/44142250#44142250 – Pinguluk

+0

啊,这类似于我建议:)至于那边提到的,如果你想要做“正确”,你将最终编写自定义HTTPAdapter ... – errata

0

您可以尝试使用: requests.get(url, verify=False) 如果你不需要检查SSL证书的真实性。

+0

尝试过,但没有工作,我通过这种方法解决: https://stackoverflow.com/questions/44141655/requests-failing-to -connect到一个-TLS服务器/ 44142250#44142250 – Pinguluk