22

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

1.我第一次用mechanize在表单中输入搜索词,我正确设置了代理和机器人。

2.提取链接后,我使用了一个全局使用 urllib2.ProxyHandler 的打开器,分别打开网址。

然而,这给了我这个错误。无法弄清楚。

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

2 回答 2

21

您可以通过覆盖 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)
于 2014-06-12T03:06:48.637 回答
4

它是一个已知的错误,但在此链接的评论中提到了一些解决方案。看到他们,可能对你有帮助,bug url

于 2012-08-02T07:43:23.707 回答