编程语言
首页 > 编程语言> > python – 错误 – urlopen错误[Errno 8] _ssl.c:504:EOF发生违反协议

python – 错误 – urlopen错误[Errno 8] _ssl.c:504:EOF发生违反协议

作者:互联网

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

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

2.提取链接后,我使用了全局使用urllib2.ProxyHandler的开启工具,单独打开网址.

但是这给了我这个错误.无法搞清楚.

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

解决方法:

您可以通过覆盖ssl_version关键字参数来修补ssl模块中的ssl.wrap_socket(),而不是复制和编辑Python库模块.以下代码可以按原样使用.在提出任何请求之前,请将其放在程序的开头.

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)

标签:python,proxy,urllib2,mechanize
来源: https://codeday.me/bug/20191007/1866315.html