Pregunta

Me gustaría saber si es posible obtener el favicon de una página web por una dirección URL con JavaScript.

Por ejemplo, tengo una http://www.bbc.co.uk/ URL y me gustaría obtener la ruta a FavIcon se describe en la etiqueta meta <link rel="icon" .../> -. http://www.bbc.co.uk/favicon.ico

Tengo muchas URL de manera que no se debe cargar cada página y la búsqueda por la etiqueta link creo.

¿Alguna idea?

¿Fue útil?

Solución

Se puede usar YQL para ese

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://bbc.co.uk/"and%20xpath%3D"/html/head/link[@rel%3D'icon']%20|%20/html/head/link[@rel%3D'ICON']%20|%20/html/head/link[@rel%3D'shortcut%20icon']%20|%20/html/head/link[@rel%3D'SHORTCUT%20ICON']"&format=json&callback=grab

Esta consulta utilizado por Display RSS Favicons Greasemonkey script de .

Puede escribir consultas en la consola YQL, pero requiere para iniciar la sesión (por cierto, el uso de consultas no):

http://developer.yahoo.com/yql/console/#h=select%20*%20from%20html%20where%20url%3D%22http%3A//bbc.co.uk/%22and%20xpath%3D%22/html/head/link%5B@rel%3D%27icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27ICON%27%5D%20%7C%20/html/head/link%5B@rel%3D%27shortcut%20icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27SHORTCUT%20ICON%27%5D%22

Es mejor que http://www.google.com/s2/favicons?domain=www.domain.com , en caso favicon existe, pero no se encuentra en domain.com/favicon.ico

Otros consejos

Aquí hay 2 opciones de trabajo, he probado más de 100 URL y obtuve resultados diferentes, que cada opción. Tenga en cuenta que esta solución no se JS, pero JS puede no ser necesario.

<!-- Free --> 
<img height="16" width="16" src='http://www.google.com/s2/favicons?domain=www.edocuments.co.uk' />
<!-- Paid -->
<img height="16" width="16" src='http://grabicon.com/edocuments.co.uk' />

De repente me encontré con algo que se llama Google Shared Stuff que devuelve la imagen con el favicon del sitio web mediante el nombre de host:

http://www.google.com/s2/favicons?domain=www.domain.com

Pero fot sitio de la BBC vuelve favicon un poco pequeña. Compare:

http://www.google.com/s2/ faviconos? domain = www.bbc.co.uk
http://www.bbc.co.uk/favicon.ico

Después de 30.000 a 40.000 pruebas me di cuenta de que realmente encuentra con un montón de diferentes situaciones que tienen que ser trabajado en contra.

El punto de partida es por supuesto un lugar donde solo se ve en la etiqueta rel allí a buscar esto, pero en el camino se encuentra cada vez más situaciones que tendrá que cubrir.

En caso de que alguien va a mirar este hilo y trata de acercarse al 100% la perfección he subido mi código (PHP) aquí: https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php . Esto es parte de un (GPL) Plugin de WordPress que recupera Favicons, más o menos bajo petición en ese entonces, fuera de las limitaciones del estándar uno de Google (como se mencionó anteriormente). El código se encuentra una cantidad sustancialmente más iconos que el código de Google. Pero también incluye Google y otros proveedores de imágenes como el atajo más iteraciones en tratar de recuperar el icono.

Cuando se lee a través del código es probable que vea algunas situaciones que se encontrará, por ejemplo, datos de base 64 URI, páginas redirigir a 404 páginas o redirigir un millón de veces, la recuperación de los códigos de estado raro HTTP y tener que comprobar cada posible código de retorno HTTP para validness, los iconos mismos que tienen un tipo de MIME mal, etiquetas de refresco lado del cliente, iconos de la carpeta raíz y ninguno en el código html, etc ... etc ... etc ...

Si se sube un directorio encontrará otras clases que luego son ment para almacenar los iconos reales en contra de su dirección URL (y por supuesto a continuación, tendrá que averiguar qué "ramas" utilizan el mismo favicon y que no, y encontrar si pertenecen a la misma "dueño" o son realmente diferentes partes, pero bajo el mismo dominio.

exención de responsabilidad: he construido este servicio a mí mismo, pero se puede tratar http://grabicon.com . Es una API muy simple para que faviconos controladores de tamaño y cambio de formato sobre la marcha. Se utiliza una gran cantidad de almacenamiento en caché automático de velocidad, también. Al igual que la mayoría de los otros servicios de este tipo, se puede insertar directamente en el código HTML y funciona muy bien. No tengo documentación en línea todavía, pero aquí hay algunos ejemplos que utilizan destino web favorito de todos:

Obtener el icono en formato PNG:

http://grabicon.com/icon?domain=microsoft.com

Cambiar el tamaño de 64 píxeles cuadrados:

http://grabicon.com/icon?domain=microsoft.com&size=64

Esto persigue el icono utilizando los diversos métodos de la gente puede ponerlos en práctica, y utiliza la versión más alta resolución disponible, ya que los archivos Favicon.ico en realidad contienen un colección de iconos. Utiliza esa versión para cambiar el tamaño de su preferencia, a menos que una pareja perfecta ya está disponible.

Quiero saber lo que ustedes piensan, y qué otras características que te pueden gustar!

ACTUALIZACIÓN:

Grabicon está ahora de nuevo en funcionamiento, y no va a ninguna parte. Fue construido originalmente para un cliente que más tarde decidió no apoyarlo. Pero ahora es bajo mi cuidado directo, con mucha mayor velocidad y capacidad de cambio de tamaño.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top