Це пізня відповідь, але для повноти: досить важко дістати навіть близько 90% добирання всіх фаворитів.
Нещодавно я написав плагін WordPress: http://wordpress.org/extend/plugins/wp-favicons/, який намагається наблизитися.
а. він починається з перегляду сховищ Favicon, таких як Google Favicons, getfavicons тощо ...
б. якщо жоден з них не повертає піктограму (я перевіряю це, збігаючись із значком за замовчуванням, який вони повертають), я починаю зі спроби отримати сам значок
c. це включає перехід сторінок, а також перевірку переадресацій NO без автоматичного перенаправлення, а також проходження 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, щоб ви могли змінити її інженером, але майте на увазі, що перевірка відповіді повинна дійсно робити (перевірка файлів зображень, міми тощо)