Urllib2 请求来自 HTTPS RSS 提要的数据 returns 垃圾字符

Urllib2 request for data from an HTTPS RSS feed returns garbage characters

我正在尝试阅读使用 HTTPS 协议和 Phyton 2.7 及其 urllib2 库的网站的 RSS 提要。我不能使用 feedparser。此代码片段取自 requests library github(我尝试使用它,但我不断收到这样的错误:requests.exceptions.SSLError: hostname 'kat.cr' doesn't match either of '*.kickass.so', 'kickass.so',谷歌搜索显示我不是唯一遇到 kickass 这个确切错误的人) .

import urllib2

gh_url = 'https://kat.cr/movies/?rss=1'

req = urllib2.Request(gh_url)

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, gh_url, 'user', 'pass')

auth_manager = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_manager)

urllib2.install_opener(opener)

handler = urllib2.urlopen(req)

print handler.read()

我的问题是 handler.read() 的输出只是一堆垃圾字符。该代码适用于其他 HTTPS 站点(我试过“https://en.wikipedia.org/wiki/Main_Page' for example) or other RSS feeds (I tried 'http://feeds.reuters.com/news/artsculture”)。

为什么它不能与这个完全相同的 RSS 提要一起使用?

好吧,我没有解决 urllib2 的问题,但我发现您可以在不指定授权的情况下使用请求,如下所示:

import requests
r = requests.get('https://api.github.com', verify = False)
print r.read

这消除了错误,因此您可以毫无问题地读取数据。