我是新编程-尤其是关于SSL/TSL证书的网络垃圾问题,所以请不要屠宰我啊哈!在
对,所以。。。在
我写的脚本在我的Mac电脑(OS X El Capitan 10.11.15)上完美无瑕,它基本上是从一个登录的网站上到处抓取一些数字。当我试图在另外两台运行Windows7 64位和Windows10 32位的计算机上运行该程序时,问题就出现了。我对握手和SSL有基本的了解,但还不足以弄清楚这里发生了什么。在
我尝试访问的网站有一点证书问题(chrome不允许你访问它,但是Mozilla和Safari允许),但是我总是通过使用verify=False参数来解决这个问题请求。会话().得到(…..)。顺便说一下,在课程的最上面我有:
with requests.Session() as c:
以防第179行有点混乱。在
我在脚本的开头也有这样的内容(尽管hashtagging没有什么区别):
^{pr2}$以下是完整的回溯:
SSLError Traceback (most recent call last)
C:\Users\indy_\Desktop\bk_programs\var.py in <module>()
226 hh_saleslist, hh_settleinvlist = hh_scraper()
227 tillster_webvals = tillster_puller()
--> 228 sicom_report_esg, sicom_report_cor, sicom_report_nor, sicom_report_gry, sicom_report_bst = sicom_scraper()
229
230
C:\Users\indy_\Desktop\bk_programs\var.py in sicom_scraper()
177 for i in range(len(ips)):
178 # Retrieve the CSRF token first
--> 179 soup = BeautifulSoup(c.get(login_urllist[i], verify=False).content, 'html.parser')
180 csrftoken = soup.find('input', dict(name='XXX_login_token'))['value']
181
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in get(self, url, **kwargs)
485
486 kwargs.setdefault('allow_redirects', True)
--> 487 return self.request('GET', url, **kwargs)
488
489 def options(self, url, **kwargs):
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
473 }
474 send_kwargs.update(settings)
--> 475 resp = self.send(prep, **send_kwargs)
476
477 return resp
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in send(self, request, **kwargs)
583
584 # Send the request
--> 585 r = adapter.send(request, **kwargs)
586
587 # Total elapsed time of the request (approximately)
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\adapters.pyc in send(self, request, stream, timeout, verify, cert, proxies)
475 except (_SSLError, _HTTPError) as e:
476 if isinstance(e, _SSLError):
--> 477 raise SSLError(e, request=request)
478 elif isinstance(e, ReadTimeoutError):
479 raise ReadTimeout(e, request=request)
SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')],)",)
我知道有其他类似的职位,但我似乎不能得到任何工作。如果有人能指出我的错误或者给我一些有用的文件,我将非常感激。在
我运行的是python2.7.11。在
谢谢你
编辑-更多信息
有问题的URL是https://81.137.196.234/~sicom/mgrng/login.php
以及所有已安装模块的列表:
“注册表路径==1.0”,“appinst==2.1.1.5,,‘apptools==4.4.0,’,‘atom==0.3.3.10’,‘backports abc==0.4.4‘4.4.4.1’,,‘美化’‘美丽组==3.2.1’,‘CasualArius==1.1.1’,‘catalyst==1.0.2.2’,‘CertFi==2016.2.2.28’,‘cffi==1.7.0,‘‘7.7.0’,‘chaco==4.5.0’,‘chardet==2.3.0.0’,‘codetools==4.2.2.2.0.0’,.6','configparser==3.5.0','cryptography==1.5',‘cycler==0.10.0.0’,‘Orcorator==4.0.9’,‘distribute remove==1.0.0.0,’,‘docutils==0.12.12’,‘enable==4.5.1’,‘enaml==0.9.8.8’,‘Enclosur==0.4.4.3’,‘encore==0.6.0.0’,‘ensTatelle==4.8.12’,‘entrypoints==0.2.2.2’,‘Envisisage==4.5.1’,‘示例==7.3.3’,‘faulthandler==2.4.4’,‘雪花8’‘‘5.5.5.999','人性化==0.5.1','idle==2.7.3',‘idna==2.1.1’,‘ipaddress==1.0.16’,‘IPYNEL==4.3.1.1’,‘IPythonGenUtils==0.1.0 0’,‘ipython4==4.1.2 2’,‘ipython==4.0.0.0’,‘ipywidgets==5.1.5’,‘金JA2==2.8.8’,‘jsonschema==2.4.4.0’,‘JPYTER客户==4.2.2.2.2.2’,‘JPYTER控制台==4.1.1.1.1.1’,‘JPYter核心==4.1.1.1.0.0.0.0’magic==0.2.0','kiwisolver==0.1.3','libopenjpeg==2.1.0','libpng==1.6.12',‘Li钠钠==1.0.3.3’,‘lxml==3.6.0.0’,‘markupsafe==0.23’,‘matplotlib==1.5.1 1’,‘mccabe==0.3.1’,‘memory profiler==0.41.41’,‘mistune==0.7.1.1’,‘mkl服务==1.0’,‘mkl==11.1.1.4’,‘mpmath==0.19’,‘nbconvert==4.2.0.0’,‘nbformat==4.0.0.1’,‘ndg HTPSCClient==0.4.4.4.2.2.2.2’,‘‘‘‘‘.1','numpy==1.10.4','pandas==0.18.0','路径。py==8.1.1英尺,‘pep8==1.7.0‘pep8==1.7.0’,‘pexpect==2.4’,‘pickleshare==0.5’,‘pil remove==1.0.0.0’,‘枕头==3.2.0’,‘pip==8.1.2.2’,‘Pl绘==1.9.10’,‘ply==3.8’,‘psutil==3.3.0’,‘pyaudio==0.2.4’,‘pycparser==2.14’,‘pycrypto==2.6.1.1.1.1.1.0’,‘pyface==5.1.1.0’,‘‘pyflakes=gments==2.1.3','pyopenssl==16.1.0','pyparsing==2.0.3','pyeradline==2.1',‘python dateutil==2.5.2’、‘pytz==2016.3’、‘pytz==2016.3’、‘pywin32==220’、‘pyzmq==15.2.2.0’、‘QT控制台==4.2.1’、‘SCpypy==0.17.1.1’、‘setuptools==23.1.1.0.0’、‘Simplegengeneric==0.8.1.1.1.1.1‘1.8.1.1’、‘‘单利’‘3.4.0.0’上’、‘sympy==1.0.0’、‘龙卷风==4.3.3’、‘牵引’、‘牵引者’、‘QT控制台’‘4 1','traits==4.5.0','traitsui==5.1.0','urllib3==1.16','wxpython==3.0.2.0','xlwt==1.1.2'
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.2g 1 Mar 2016'
Steffen评论后的第二次编辑
import requests
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':RC4-SHA'
with requests.Session() as c:
url = "https://81.137.196.234/~sicom/mgrng/login.php"
page = c.get(url, verify=False)
print page.content
回溯是:
SSLError Traceback (most recent call last)
c:\users\indy_\appdata\local\temp\tmpkuleyd.py in <module>()
6
7 url = "https://81.137.196.234/~sicom/mgrng/login.php"
----> 8 page = c.get(url, verify=False)
9 print page.content
10
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in get(self, url, **kwargs)
485
486 kwargs.setdefault('allow_redirects', True)
--> 487 return self.request('GET', url, **kwargs)
488
489 def options(self, url, **kwargs):
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
473 }
474 send_kwargs.update(settings)
--> 475 resp = self.send(prep, **send_kwargs)
476
477 return resp
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\sessions.pyc in send(self, request, **kwargs)
583
584 # Send the request
--> 585 r = adapter.send(request, **kwargs)
586
587 # Total elapsed time of the request (approximately)
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\adapters.pyc in send(self, request, stream, timeout, verify, cert, proxies)
475 except (_SSLError, _HTTPError) as e:
476 if isinstance(e, _SSLError):
--> 477 raise SSLError(e, request=request)
478 elif isinstance(e, ReadTimeoutError):
479 raise ReadTimeout(e, request=request)
SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')],)",)
我不需要检查和实际验证证书-我知道它是安全的。实际上,我只想绕过认证检查,这是我认为verify=False参数在请求.get()但显然它被忽视了。在
已解决
完全卸载了Python和所有额外的模块。在
已重新安装Python2.7.11。现在它吐出很多
C:\Users\indy_\AppData\Local\Enthought\Canopy32\User\lib\site-packages\requests\packages\urllib3\connectionpool.py:821: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
不安全请求警告)
不过,谢天谢地,还是有办法的。在
目前没有回答
相关问题 更多 >
编程相关推荐