从Feed内容中获取favicon

时间:2012-04-11 05:51:31

标签: python django

我正在解析Feed网址并获取内容。我想知道,如何获取给定Feed的favicon并在django模板中渲染。

我是django和python的新手。我不知道该怎么做。

我正在使用feedparser来解析Feed网址。

我正在使用以下代码从文章内容中获取网址列表。不,我应该如何获得favicon网址,因为某些内容中的favicon呈现为.png格式,并且有几个.png链接。如何区分哪一个是图标?

import feedparser
import lxml.html as lh
import urllib2

#Import Feed for Parsing
d = feedparser.parse("http://www.popgadget.net/atom.xml")

# Print feed name
print d['feed']['title']

# Determine number of posts and set range maximum
posts = len(d['entries'])

# Collect Post URLs
for post in d['entries']:
    link=post['link']
    print('Parsing {0}'.format(link))
    doc=lh.parse(urllib2.urlopen(link))
    imgs=doc.xpath('//img[@class="bpImage"]')
    for img in imgs:
        print(img.attrib['src'])

2 个答案:

答案 0 :(得分:1)

您应该转到网站的索引页面,阅读并解析HTML,然后使用link rel查看"shortcut icon"标记。如果做不到这一点,请查看服务器上的/favicon.ico

答案 1 :(得分:1)

您可以从HTML文档中获取favicon,或在服务器上查找/favicon.ico。这是代码:

import lxml.html as lh
import urllib2

link = 'http://www.popgadget.net/'
doc = lh.parse(urllib2.urlopen(link))
favicons = doc.xpath('//link[@rel="shortcut icon"]/@href')
if len(favicons) > 0:
    favicon = favicons[0]
else:
    favicon = "%sfavicon.ico" % link
try:
    urllib2.urlopen(favicon)
except urllib2.HTTPError:
    favicon = None