python - Django rss feedparser 返回一个没有 "title"的提要

标签 python django feedparser

我正在用 Django 编写一个基本的 RSS 提要阅读器。我有一个用户提交 rss 提要的表单,我将其添加到他的提要列表中。但出于某种原因,我无法使用提要解析器提取有关提要的基本信息。

当我运行以下代码时:

def form_valid(self, form):
    user = self.request.user
    link = form.cleaned_data['link']
    feed = feedparser.parse(link).feed
    title = feed.title
    try:
        feed_obj = Feed.objects.get(link=link)
    except ObjectDoesNotExist:
        feed_obj = Feed(link=link, title=title)
        feed_obj.save()
    user.get_profile().feeds.add(feed_obj)
    return super(DashboardView, self).form_valid(form)

Django 在第 5 行向我抛出“对象没有属性‘title’”异常:

title = feed.title

完整的错误详细信息是:

Traceback:
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  25.                 return view_func(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  86.         return handler(request, *args, **kwargs)
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post
  165.             return self.form_valid(form)
File "/home/yaniv/nextfeed/profiles/views.py" in form_valid
  48.         title = feed.title
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/feedparser.py" in __getattr__
  416.             raise AttributeError, "object has no attribute '%s'" % key

Exception Type: AttributeError at /dashboard
Exception Value: object has no attribute 'title'

我做错了什么?

编辑:我用 pdb 跟踪程序。就在有问题的行之前,我得到了:

(Pdb) link
u'http://feedparser.org/docs/examples/rss20.xml'
(Pdb) feed
{'xhtml_script': {'type': u'text/javascript', 'language': u'javascript'}, 'summary': u''}

最佳答案

自从我使用 feedparser 以来已经有一段时间了,但是 IIRC,解析器返回一个字典,如下所示:

foo = feedparser.parse(link)
feed = foo['feed']
title = feed['title']

你似乎从 foo.feed 中得到了一个对象,但这不是你想要的。

关于python - Django rss feedparser 返回一个没有 "title"的提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231057/

相关文章:

django - tornado 只能升级到 websocket 错误

python - 使用feedparser获取流数据

python - 从 tar.gz 安装 python 包

python - 如何将数字添加到 pandas 数组的索引范围

Python:模拟我正在测试的模块正在使用的模块

python - 如何修复 SSL : CERTIFICATE_VERIFY_FAILED feedparser?

Python CouchDB 无法保存从 feedparser 条目创建的字典? (没有属性 'read' )

python - float 对象不可调用

javascript - Django 中的 Django 压缩器和模板标签

mysql - 我在 django 应用程序中将 CONN_MAX_AGE 设置为 60,但 60 秒后数据库链接仍然存在,为什么?