【问题标题】:bozo_exception in Django / feedparserDjango / feedparser 中的 bozo_exception
【发布时间】:2013-09-28 20:58:13
【问题描述】:

我对 Django 和 Python 还很陌生。我正在尝试使用 feedparser 构建小型 RSS 阅读器。我收到了这个错误,我似乎在任何地方都找不到任何解决方案

{'feed': {}, 'bozo': 1, 'bozo_exception': TypeError("'Feed' 没有缓冲区接口",), 'entries': []}

这里是涉及的文件(简化版本以说明问题)

## models
class Feed(models.Model):
    name = models.CharField(max_length=100)
    url = models.CharField(max_length=100)
    category = models.ForeignKey(Category)
    user = models.ManyToManyField(User)

    def __unicode__(self):
        return self.url

## views
def feed5(request):
    source = Feed.objects.get(id=1)
    rss = feedparser.parse(source)
    context = {
    'rss': rss,
    }
    return render(request, 'feedreader/feed5.html', context)


## feed5.html
{% block content %}

{{ rss }}

<p><a href ="{{ rss.feed.link }}">{{ rss.feed.title }}</a></p>

<ul>
{% for r in rss.entries|slice:":10" %}
<li> <a class="title" href="{{ r.link }}">{{ r.title }}</a> <br />{{ r.description }}</li>
{% endfor %}
</ul>

{% endblock %}

当我尝试在此处手动输入 rss 提要时

## views
def feed5(request):
    source = Feed.objects.get(id=1)
    **rss = feedparser.parse('http://rss.gazeta.pl/pub/rss/wiadomosci.htm')**
    context = {
    'rss': rss,
    }
    return render(request, 'feedreader/feed5.html', context)

它工作正常,但是当我从数据库中提取它时,它不起作用。

我看过这个 http://pythonhosted.org/feedparser/character-encoding.html 还有这个 feedparser fails during script run, but can't reproduce in interactive python console

但我想不通。有人能帮忙吗?

谢谢 西科尔

【问题讨论】:

    标签: django feedparser


    【解决方案1】:

    您应该向 feedparser 提供 source.url 而不是 source

    【讨论】:

    • 啊哈!那行得通,尽管我对此还太陌生,无法完全理解为什么:)
    • 非常感谢这个提示。你介意帮助我进行下一步吗?现在我想遍历来自模型/数据库的许多提要,并将它们中的每一个都显示在 html 模板中。虽然我知道我需要在 html 模板中迭代思想 x.feed.entries,但我认为通过每个 rss 源的迭代需要在视图函数中进行,对吗?
    • 实际上我已经在stackoverflow.com/questions/19078710/…stackoverflow.com/questions/19078710/… 中为这个后续问题添加了代码示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多