通过websocket爬取数据的SSL验证问题
Posted
技术标签:
【中文标题】通过websocket爬取数据的SSL验证问题【英文标题】:SSL verification problem in crawling data through websocket 【发布时间】:2020-05-11 09:56:27 【问题描述】:我在通过 websocket 抓取数据时遇到问题。当我创建连接时,无论您选择不同版本的 SSL 还是关闭身份验证都不起作用
ws = websocket.create_connection(
url='wss://***',
timeout=60,
# header=header,
# subprotocols=["binary", "base64"],
sslopt=
"cert_reqs": ssl.CERT_NONE,
# "check_hostname": False,
"ssl_version": ssl.PROTOCOL_SSLv2
)
这是我给出的错误:
error message: The remote host forced an existing connection to be closed.
qhen ssl_version 为ssl.PROTOCOL_SSLv3
,错误为:
error message:[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:646).
关于我尝试的设置:
在我的情况下设置cert_reqs=ssl.CERT_NONE
是没用的
【问题讨论】:
【参考方案1】:不知道使用 websocket 抓取网站是什么意思,但您的密码学已经过时了......
SSL 2.0 在 2011 年被弃用:https://en.wikipedia.org/wiki/Transport_Layer_Security#SSL_1.0,_2.0,_and_3.0
任何现代站点都应配置为拒绝任何弱加密协议,这可能会导致您的错误。
【讨论】:
很抱歉我没有描述清楚。我想通过连接到目标网站的 WSS 来抓取数据。我没有 SSL 证书,想绕过身份验证。因为使用 selenium 太不稳定太麻烦 您可能会收到一些 json 格式的实时数据?这不应该有所不同 SSL 层几乎相同。试试上面... 是的,我会尝试更多。谢谢你的链接,我想我可以学到很多东西以上是关于通过websocket爬取数据的SSL验证问题的主要内容,如果未能解决你的问题,请参考以下文章