C'est une réponse tardive, mais par souci d'exhaustivité: il est assez difficile d'obtenir même près de 90% de la récupération de toutes les favicons.
Il y a quelque temps, j'ai écrit un plugin WordPress: http://wordpress.org/extend/plugins/wp-favicons/ qui tente de se rapprocher.
une. il commence par regarder les référentiels favicon tels que google favicons, getfavicons etc ...
b. si aucun d'eux ne renvoie d'icône (je vérifie cela en faisant correspondre l'icône par défaut qu'ils renvoient) je commence par essayer d'obtenir l'icône moi-même
c. cela implique de parcourir les pages mais aussi de vérifier les redirections avec NO autoredirect ainsi que de traverser les 404 car également sur les 404 une icône pourrait être présente. Au final, cela signifie que vous devrez analyser également les redirections dans l'en-tête html ainsi que les redirections javascript pour vous rapprocher de 100%
ré. après cela, je fais quelques inspections sur le fichier image physique, car aussi parfois sur certains serveurs (j'ai testé plus de 300 000), les fichiers sont retournés avec le type mime incorrect, etc.
Le code n'est toujours pas parfait car dans les détails ça devient fou, vous trouverez beaucoup de situations bizarres: les gens ont des chemins mal codés (img / favicon.ico où img n'est PAS à la racine), des en-têtes en double dans la sortie html, différentes réponses du serveur d'une tête et d'un corps etc ...
le noyau de la partie de récupération est ici: http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php afin que vous puissiez faire de l'ingénierie inverse, mais sachez que la validation de la réponse doit vraiment être fait (vérification du type de fichier d'image, mime etc.)