我应该如何在 Django 中显示 BeautifulSoup 解析的结果?

How should I show results of BeautifulSoup parsing in Django?

我正在尝试使用 BeautifulSoup 和 Django 抓取网页。这是我执行此任务的 views.py:

def detail(request, article_id):
    article = get_object_or_404(Article, pk=article_id)
    html = urllib2.urlopen("...url...")
    soup = BeautifulSoup(html)
    title = soup.title

    return render(request, 'detail.html', {'article': article, 'title':title})

但是当我在 Django 模板文件中使用 {{ title }} 时,它没有显示任何内容。我已经对其进行了测试,它可以在 shell 中运行。我在这个函数中添加了一行:

print soup.title

它会在我每次重新加载页面时打印它,但它不会显示在模板中。

对于其他一些命令,如:find_all("a")或美化方法,内容也显示得很奇怪。谁能告诉我如何在 Django 模板中正确打印 beautifulsoup 的结果?

你打印出来的结果是什么?

你试过用这个吗?

soup.title.string

如果您必须将 html 发送到模板,请尝试:

{% autoescape off %}{{ title }}{% endautoescape %}

更改以下-

title = soup.title

至 -

title = soup.title.text