Pregunta bastante simple: he creado una pequeña aplicación que es básicamente una de las favoritas que se encuentra en la bandeja del sistema para poder abrir sitios / carpetas / archivos de uso frecuente desde el mismo lugar. Obtener los iconos predeterminados de mi sistema para tipos de archivos conocidos no es muy complicado, pero no sé cómo obtener el favicon de un sitio web. (SO tiene el icono de pila gris-> naranja en la barra de direcciones, por ejemplo)
¿Alguien sabe cómo podría hacerlo?
Respuestas:
Querrá abordar esto de varias maneras:
Busque
favicon.ico
en la raíz del dominiowww.domain.com/favicon.ico
Busque una
<link>
etiqueta con elrel="shortcut icon"
atributo<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" />
Busque una
<link>
etiqueta con elrel="icon"
atributo<link rel="icon" href="https://stackoverflow.com/favicon.png" />
Los dos últimos suelen producir una imagen de mayor calidad.
Solo para cubrir todas las bases, existen archivos de íconos específicos del dispositivo que pueden producir imágenes de mayor calidad, ya que estos dispositivos generalmente tienen íconos más grandes en el dispositivo de lo que necesitaría un navegador:
<link rel="apple-touch-icon" href="images/touch.png" />
<link rel="apple-touch-icon-precomposed" href="images/touch.png" />
Y para descargar el ícono sin importarle cuál es el ícono, puede usar una utilidad como http://www.google.com/s2/favicons que hará todo el trabajo pesado:
fuente
google.com/s2/favicons
es un ícono con 16x16 es un ícono terrible ¿sabes dónde llevar el ícono más grande?Actualizado 2020
Aquí hay tres servicios que puede utilizar a partir de 2020
fuente
Puede utilizar Google S2 Converter.
http://www.google.com/s2/favicons?domain=google.com
Fuente: http://www.labnol.org/internet/get-favicon-image-of-websites-with-google/4404/
fuente
Lo primero que debe buscar es /favicon.ico en la raíz del sitio; algo como WebClient.DownloadFile () debería funcionar bien. Sin embargo, también puede configurar el icono en los metadatos; para SO, esto es:
y tenga en cuenta que pueden estar disponibles iconos alternativos; el "táctil" tiende a ser más grande y de mayor resolución, por ejemplo:
por lo que lo analizaría en HTML Agility Pack o XmlDocument (si es xhtml) y usaría WebClient.DownloadFile ()
Aquí hay un código que he usado para obtener esto a través del paquete de agilidad:
Tenga en cuenta que el icono es de ellos, no suyo.
fuente
Es una buena práctica minimizar la cantidad de solicitudes que necesita cada página. Entonces, si necesita varios íconos, Yandex puede hacer un sprite de favicons en una consulta. Aquí hay un ejemplo http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/
fuente
Puede obtener la URL del favicon del HTML del sitio web.
Aquí está la etiqueta de favicon:
Debería utilizar una expresión regular aquí. Si no encuentra ninguna etiqueta, busque "favicon.ico" en el directorio raíz del sitio. Si no se encuentra nada, el sitio no tiene favicon.
fuente
Puedes hacerlo sin programar . Simplemente abra el sitio web, haga clic derecho y seleccione "ver fuente" para abrir el código HTML de ese sitio. Luego, en el editor de texto, busque "favicon" ; lo dirigirá a algo parecido
tome la cadena
href
y añádala a la URL base del sitio web (supongamos que lo es"http://WEBSITE/"
), por lo que pareceque es el camino absoluto al favicon. Si no lo encontró de esta manera, también puede estar en la raíz, en cuyo caso la URL es
http://WEBSITE/favicon.ico
.Tome la URL que determinó e insértela en el siguiente código:
Guarde este código HTML localmente (por ejemplo, en su escritorio) como
GetFavicon.html
y luego haga doble clic en él para abrirlo. Mostrará solo un enlace llamado Favicon . Haz clic derecho en este enlace y selecciona "Guardar destino como ..." para guardar el Favicon en tu PC local, ¡y listo!fuente
fuente
Esta es una respuesta tardía, pero para completar: es bastante difícil acercarse al 90% de la búsqueda de todos los favicons.
Hace un tiempo escribí un complemento de WordPress: http://wordpress.org/extend/plugins/wp-favicons/ que intenta acercarse.
a. Comienza mirando repositorios de favicon como google favicons, getfavicons, etc.
si. si ninguno de ellos devuelve un ícono (verifico esto haciendo coincidir con el ícono predeterminado que devuelven), comienzo intentando obtener el ícono yo mismo
C. esto implica atravesar las páginas, pero también verificar las redirecciones sin redireccionamiento automático, así como atravesar 404 porque también en 404 podría estar presente un icono. Al final, significa que tendrá que analizar también las redirecciones en el encabezado html, así como las redirecciones de JavaScript para acercarse al 100%.
re. después de eso, hago algunas inspecciones en el archivo de imagen física, porque también a veces en algunos servidores (probé más de 300.000) los archivos se devuelven con el tipo de mime incorrecto, etc.
El código aún no es perfecto porque en los detalles se vuelve loco, encontrarás muchas situaciones extrañas: personas tienen rutas codificadas incorrectamente (img / favicon.ico donde img NO está en la raíz), encabezados duplicados en la salida html, diferentes respuestas del servidor de una cabeza y un cuerpo, etc ...
el núcleo de la parte de búsqueda está aquí: http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php para que pueda realizar ingeniería inversa, pero tenga en cuenta que la validación de la respuesta debe realmente hecho (verificando el tipo de archivo de imagen, mímica, etc.)
fuente
Descubrí que 'SHGetFileInfo' (Verifique 'www.pinvoke.net' para la firma) le permite recuperar un ícono pequeño o grande, como si estuviera tratando con un archivo / carpeta / elemento de Shell.
Jens;)
fuente
http://realfavicongenerator.net/favicon_checker?site=http://stackoverflow.com le ofrece un análisis de favicon que indica qué favicons están presentes en qué tamaño. Puede procesar la información de la página para ver cuál es el favicon de mejor calidad y agregar su nombre de archivo a la URL para obtenerlo.
fuente
Puede utilizar Getfv.co :
Ejemplo de esta página: http://g.etfv.co//programming/5119041/how-can-i-get-a-web-sites-favicon
Descarga contenido y ¡vamos!
Editar:
Getfv.co y fvicon.com parecen muertos. Si quieres, encontré una alternativa no gratuita: grabicon.com .
fuente
Usando jquery
fuente
En 2020, utilizando el servicio de duckduckgo.com de la CLI
Ejemplo
fuente