Question assez simple: j'ai créé une petite application qui est essentiellement juste un favori qui se trouve dans ma barre d'état système afin que je puisse ouvrir des sites / dossiers / fichiers souvent utilisés au même endroit. Obtenir les icônes par défaut de mon système pour les types de fichiers connus n'est pas très compliqué, mais je ne sais pas comment obtenir le favicon d'un site Web. (SO a l'icône de pile grise-> orange dans la barre d'adresse par exemple)
Quelqu'un sait-il comment je pourrais y arriver?
Réponses:
Vous voudrez vous attaquer à cela de plusieurs façons:
Recherchez le
favicon.ico
à la racine du domainewww.domain.com/favicon.ico
Recherchez une
<link>
balise avec l'rel="shortcut icon"
attribut<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" />
Recherchez une
<link>
balise avec l'rel="icon"
attribut<link rel="icon" href="https://stackoverflow.com/favicon.png" />
Les deux derniers produiront généralement une image de meilleure qualité.
Juste pour couvrir toutes les bases, il existe des fichiers d'icônes spécifiques à un appareil qui peuvent produire des images de meilleure qualité, car ces appareils ont généralement des icônes plus grandes sur l'appareil qu'un navigateur aurait besoin:
<link rel="apple-touch-icon" href="images/touch.png" />
<link rel="apple-touch-icon-precomposed" href="images/touch.png" />
Et pour télécharger l'icône sans vous soucier de ce qu'est l'icône, vous pouvez utiliser un utilitaire comme http://www.google.com/s2/favicons qui fera tout le travail:
la source
google.com/s2/favicons
c'est une icône avec 16x16 c'est une icône terrible savez-vous où prendre une icône plus grande?Mise à jour 2020
Voici trois services que vous pouvez utiliser à partir de 2020
la source
Vous pouvez utiliser Google S2 Converter.
http://www.google.com/s2/favicons?domain=google.com
Source: http://www.labnol.org/internet/get-favicon-image-of-websites-with-google/4404/
la source
La première chose à rechercher est /favicon.ico dans la racine du site; quelque chose comme WebClient.DownloadFile () devrait fonctionner correctement. Cependant, vous pouvez également définir l'icône dans les métadonnées - pour SO, c'est:
et notez que des icônes alternatives peuvent être disponibles; celui "tactile" a tendance à être plus gros et plus haute résolution, par exemple:
vous devez donc analyser cela dans le HTML Agility Pack ou XmlDocument (si xhtml) et utiliser WebClient.DownloadFile ()
Voici un code que j'ai utilisé pour obtenir cela via le pack d'agilité:
Notez que l'icône est la leur, pas la vôtre.
la source
Il est recommandé de minimiser le nombre de requêtes dont chaque page a besoin. Donc, si vous avez besoin de plusieurs icônes, yandex peut créer un sprite de favicons en une seule requête. Voici un exemple http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/
la source
Vous pouvez obtenir l'URL du favicon à partir du HTML du site Web.
Voici la balise favicon:
Vous devez utiliser une expression régulière ici. Si aucune balise trouvée, recherchez "favicon.ico" dans le répertoire racine du site. Si rien n'est trouvé, le site n'a pas de favicon.
la source
Vous pouvez le faire sans programmation . Ouvrez simplement le site Web, cliquez avec le bouton droit de la souris et sélectionnez "Afficher la source" pour ouvrir le code HTML de ce site. Ensuite, dans l'éditeur de texte, recherchez "favicon" - il vous dirigera vers quelque chose qui ressemble à
prenez la chaîne
href
et ajoutez-la à l'URL de base du site Web (supposons que ce soit le cas"http://WEBSITE/"
), donc cela ressemble àqui est le chemin absolu vers le favicon. Si vous ne l'avez pas trouvé de cette façon, il peut l'être également à la racine, auquel cas l'URL est
http://WEBSITE/favicon.ico
.Prenez l'URL que vous avez déterminée et insérez-la dans le code suivant:
Enregistrez ce code HTML localement (par exemple sur votre bureau) sous
GetFavicon.html
et double-cliquez dessus pour l'ouvrir. Il affichera uniquement un lien nommé Favicon . Faites un clic droit sur ce lien et sélectionnez "Enregistrer la cible sous ..." pour enregistrer le Favicon sur votre PC local - et vous avez terminé!la source
la source
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.)
la source
J'ai trouvé que le 'SHGetFileInfo' (Vérifiez 'www.pinvoke.net' pour la signature) vous permet de récupérer une petite ou une grande icône, comme si vous traitez avec un fichier / dossier / élément Shell.
Jens;)
la source
http://realfavicongenerator.net/favicon_checker?site=http://stackoverflow.com vous donne une analyse de favicon indiquant quelles favicons sont présentes dans quelle taille. Vous pouvez traiter les informations de la page pour voir quel est le favicon de la meilleure qualité et ajouter son nom de fichier à l'URL pour l'obtenir.
la source
Vous pouvez utiliser Getfv.co :
Exemple pour cette page: http://g.etfv.co//programming/5119041/how-can-i-get-a-web-sites-favicon
Téléchargez du contenu et c'est parti!
Éditer :
Getfv.co et fvicon.com semblent morts. Si vous voulez, j'ai trouvé une alternative non gratuite: grabicon.com .
la source
Utilisation de jquery
la source
En 2020, en utilisant le service duckduckgo.com de la CLI
Exemple
la source