我想从RSS提要中捕获图像

时间:2014-12-12 21:08:36

标签: python django rss feedparser

我正在执行这些行:

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获取图像?我稍后会将它保存在我的数据库中并进行类似后复制的操作。

1 个答案:

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