我正在执行这些行:
views.py
def pull_feed(feed_url, posts_to_show=5):
feed = feedparser.parse(feed_url)
posts = []
for i in range(posts_to_show):
pub_date = feed['entries'][i].updated_parsed
published = date(pub_date[0], pub_date[1], pub_date[2] )
posts.append({
'title': feed['entries'][i].title,
'summary': feed['entries'][i].summary,
'link': feed['entries'][i].link,
'content': feed['entries'][i].content,
'date': published,
})
return {'posts': posts}
my_template.html
{% for post in posts.posts %}
<h3>{{ post.title }}</h3>
{{ post.content }}
<hr/>
{% endfor %}
但是我希望能有类似 post.image 的东西,或者从post.content中获取(RSS博客的)图像,因为它给了我以下结果:
[{'base': u'http://websiteexample.com/feed/', 'type': u'text/html', 'value': u'<p><a href="http://websiteexample.com/wp-content/uploads/2014/12/imageexample.png">}]
如何从RSS获取图像?我稍后会将它保存在我的数据库中并进行类似后复制的操作。
答案 0 :(得分:2)
您可以使用python的re模块解析内容中的第一个网址&#39;值&#39;看起来像图像的字段(即具有像png / jpeg / jpg这样的扩展名)
import re
# inside your for i in range(posts_to_show) loop:
value = feed['entries'][i].content[0]['value']
image_url = re.search('(?P<url>http?://[^\s]+(png|jpeg|jpg))', value).group("url")
然后您可以将image_url附加到帖子中:
posts.append({
'title': feed['entries'][i].title,
'summary': feed['entries'][i].summary,
'link': feed['entries'][i].link,
'content': feed['entries'][i].content,
'date': published,
'image_url': image_url,
})