3

我正在解析提要 url 并获取内容。我想知道,如何获取给定提要的 favicon 并在 django 模板中呈现。

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

我正在使用 feedparser 来解析 feed url。

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

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'])
4

2 回答 2

2

您可以从 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
于 2012-04-11T07:05:05.650 回答
2

你应该去网站的索引页面,读取并解析 HTML,然后查看link带有relof的标签"shortcut icon"。如果做不到这一点,请在/favicon.ico服务器上查看。

于 2012-04-11T05:54:56.313 回答