如何使用feed解析器python解析xml feed?

时间:2017-07-09 12:32:26

标签: python xml rss feedparser

我试图使用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'>

2 个答案:

答案 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)