Error-urlopen Error[Errno 8]\u ssl.c:504:发生了违反p的EOF

2024-04-20 08:50:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是在输入google搜索词后从第一页的所有链接中提取html。我在一个代理后面工作,所以这是我的方法。

1.我首先使用mechanize在表单中输入搜索项,我正确设置了代理和机器人。

2.提取链接后,我使用了一个全局使用urllib2.ProxyHandler的opener来分别打开这些url。

但是这给了我这个错误。我想不通。

urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol

Tags: 方法url表单代理目标链接html错误
2条回答

这是一个已知的bug,在这个链接的注释中提到了它的一些解决方案。看看他们,可能对你有帮助,bug url

不必复制和编辑Python库模块,您可以通过重写ssl_version关键字参数来对ssl模块中的ssl.wrap_socket()进行monkey补丁。以下代码可以按原样使用。在提出任何请求之前,请将此放在程序的开头。

import ssl
from functools import wraps
def sslwrap(func):
    @wraps(func)
    def bar(*args, **kw):
        kw['ssl_version'] = ssl.PROTOCOL_TLSv1
        return func(*args, **kw)
    return bar

ssl.wrap_socket = sslwrap(ssl.wrap_socket)

相关问题 更多 >