Извлечение favicon сайта

Когда есть список ссылок, то для визуального украшательства можно использовать фавиконы, рисуя их слева от ссылок. Так, например, делает яндекс в результатах поиска. Я тоже решил побаловаться с иконками на странице http://pydev.ru/links/ Для чего была срочно написана библиотека favicon. Забрать можно с битбакета по адресу http://bitbucket.org/lorien/favicon

Использовать очень просто:

from favicon import get_favicon_from_url
print get_favicon_from_url('http://google.com')

Что делает функция get_favicon_from_url? Она скачивает страницу по указанном урлу и рыщет в егоном HTML коде. Если удаётся найти нужный link тэг, то возвращается его href аттрибут, если нет, функция не сдаётся и пытается закачать картинку со стандартного адреса http://<hostname>/favicon.ico, если файл найден (200 http code) и его mimetype начинается с “image/”, то функция возвращает стандартный адрес картинки. Если ничего найти не удалось, возвращается None

Add post to:   Delicious Reddit Slashdot Digg Technorati Google
Make comment

Comments

Очень приятная тулза. Только не громоздко это, каждый раз для страницы линков кучу страниц качать на сервер?

Вовсе и не каждый :-)

#!.env/bin/python
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from favicon import find_favicon_from_url

from links.models import Link

for link in Link.objects.all():
    print link
    favicon_url = find_favicon_from_url(link.url)
    if favicon_url:
        link.favicon = favicon_url
        link.save()
    print favicon_url

Проще вот так вытаскивать, тем более сразу же png :) http://favicon.yandex.net/favicon/mail.google.com

Прикольный способ :)

Вот что ещё нашёл: http://www.google.com/s2/favicons?domain=ya.ru

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image