SSLError:EOF发生了违反协议的请求python

时间:2016-12-20 17:06:09

标签: python python-requests

我正在大学做一个小项目 - 从大学网站上提取课程并制定理想的时间表。

在尝试使用请求访问网站时,我一直收到错误:

requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:645)

此问题仅在尝试访问我需要的网站时发生。在任何其他网站上没有问题。

iv尝试过以前的解决方案,没有运气:

  • 使用ssl version = TLSv1
  • 创建自己的HTTPadapter
  • 覆盖ssl.py中的ssl版本(context = SSLContext(PROTOCOL_SSLv23))
  • 安装(这给了我另一个错误)/删除pyOpenSSL

目前我正在试图弄清楚要做什么。我可以"扔"这个方法离开并尝试用硒提取数据,但这将是非常慢的操作。

任何想法?

1 个答案:

答案 0 :(得分:0)

您所面临的错误是版本特定的我认为它是3.5尝试安装其他版本。或者尝试这不是解决您的问题,而是解决方法。 而不是使用pyssl或任何类型的ssl。 像这样使用。

cj = CookieJar()
opener  = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        opener.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17')]
sou = opener.open(url).read()

这里的url是目标。 Sou将保存页面的源代码。然后使用Beautifulsoup或re来获取预期的数据。 希望它有所帮助