我正在解析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'])
答案 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