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