Это поздний ответ, но для полноты: довольно сложно даже приблизиться к 90% выборки всех значков.
Некоторое время назад я написал плагин для WordPress: http://wordpress.org/extend/plugins/wp-favicons/, который пытается приблизиться.
а. он начинается с просмотра репозиториев favicon, таких как favicons google, getfavicons и т. д. *
б. если ни один из них не возвращает значок (я проверяю это по значку, который они возвращают по умолчанию)
я начинаю с попытки получить значок сам
с. это включает в себя обход страниц, а также проверку перенаправлений без автоматической перенаправления, а также обход 404-х, потому что также на 404-й иконке может присутствовать значок. В конце концов, это означает, что вам придется анализировать и перенаправления в заголовке html, и перенаправления javascript, чтобы приблизиться к 100%
д. после этого я делаю некоторые проверки физического файла образа, потому что иногда на некоторых серверах (я проверял более 300 000) файлы возвращаются с неверным типом mime и т. д.
Код все еще не совершенен, потому что в деталях он сходит с ума, вы найдете много странных ситуаций: люди имеют неправильно закодированные пути (img / favicon.ico, где img НЕ находится в корне), дублирующие заголовки в выводе html, разные ответы сервера от головы и тела и т.д ...
ядро извлекаемой части находится здесь: http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php, так что вы можете выполнить обратный инжиниринг, но помните, что проверка ответа действительно должна быть выполнена (проверка типа файла изображения, MIME и т. Д.)