我试图使用feedparser在python中解析一个feed。但我得到的只是None
返回。我不知道我失踪了什么。这是我的代码:
import feedparser
def rss(self):
rss = 'https://news.google.com/news?q=fashion&output=rss'
feed = feedparser.parse(rss)
for key in feed.entries:
return key.title
如果您认为有更好的rss / xml Feed解析。请告诉我。 (我是python的新手)
print(key)
显示none
并且print(len(feed.entries))
也会显示none
print(feed)
{'feed': {}, 'entries': [], 'bozo': 1, 'bozo_exception': URLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),)}
print(feedparser)
<module 'feedparser' from '/Users/User_name/python-projects/my_env/lib/python3.6/site-packages/feedparser.py'>
答案 0 :(得分:0)
尝试以下基本代码,这对我来说很好,并在运行时在Feed中为我提供了10个项目。
import urllib2
import feedparser
url = "https://news.google.com/news?q=fashion&output=rss"
response = urllib2.urlopen(url).read()
print response
d = feedparser.parse(response)
print len(d.entries)
for item in d.entries:
print "------"
print item.title
if 'subtitle' in item:
print item.subtitle
print item.link
print item.description
print item.published
print item.id
print item.updated
if 'content' in item:
print item.content
或者,粘贴您正在运行的完整代码,我会看看。
答案 1 :(得分:0)
通过添加ssl._create_default_https_context = ssl._create_unverified_context
来解决问题实际上是SSL握手修复了它。
面对这个问题的任何其他人。完整代码是:
import feedparser
import ssl
if hasattr(ssl, '_create_unverified_context'):
ssl._create_default_https_context = ssl._create_unverified_context
rss = 'https://news.google.com/news?q=fashion&output=rss'
feed = feedparser.parse(rss)
print(feed)