【问题标题】:SSL verification problem in crawling data through websocket通过websocket爬取数据的SSL验证问题
【发布时间】: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 是没用的

【问题讨论】:

    标签: python ssl websocket


    【解决方案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 层几乎相同。试试上面...
    • 是的,我会尝试更多。谢谢你的链接,我想我可以学到很多东西
    猜你喜欢
    • 2021-11-26
    • 2010-11-05
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2020-10-06
    • 2015-03-23
    • 2014-08-25
    • 2020-06-14
    相关资源
    最近更新 更多