Quiero enumerar sitios web destacados en mi sitio web y pensé que sería genial para honrar y usar su favicon. ¿Cómo lo obtengo del dominio para una URL arbitraria en JSP o XSLT? Puedo disparar PHP o Javascript, pero XSLT es la metodología preferida.¿Cómo puedo recuperar el favicon de un sitio web?
Respuesta
Para obtener el favicon de una página web, es necesario cargar el código HTML índice de cada sitio web que aparece y comprobar si alguno de los siguientes:
HTML:
<link rel="icon" type="image/vnd.microsoft.icon" href="http://example.com/image.ico">
<link rel="icon" type="image/png" href="http://example.com/image.png">
<link rel="icon" type="image/gif" href="http://example.com/image.gif">
XHTML:
<link rel="icon" type="image/vnd.microsoft.icon" href="/somepath/image.ico" />
<link rel="icon" type="image/png" href="/somepath/image.png" />
<link rel="icon" type="image/gif" href="/somepath/image.gif" />
Internet Explorer puede usar un formato ligeramente diferente:
<link rel="SHORTCUT ICON" href="http://www.example.com/myicon.ico" />
También tenga en cuenta que como la mayoría de los navegadores web no requieren el enlace HTML para recuperar un favicon, también debe verificar favicon.ico
en la raíz del documento del sitio web, si no se encuentra ninguna de las referencias de enlace anteriores.
Con PHP, es fácil de obtener el contenido HTML de una página web mediante el uso file_get_contents($url)
:
$url = 'http://www.exmaple.com';
$output = file_get_contents($url);
excelente! Gracias por el detalle Daniel. Revisaré el tutorial de PHP y le contaré cómo funciona. – mobibob
también se puede simplemente hacer esto
http://s2.googleusercontent.com/s2/favicons?domain_url=http://domain.com
Aquí está mi intento de eso. Utiliza diversas estrategias para evitar los muchos casos posibles:
<?
/*
nws-favicon : Get site's favicon using various strategies
This script is part of NWS
https://github.com/xaccrocheur/nws/
*/
function CheckImageExists($imgUrl) {
if (@GetImageSize($imgUrl)) {
return true;
} else {
return false;
};
};
function getFavicon ($url) {
$fallback_favicon = "/var/www/favicon.ico";
// $fallback_favicon = "http://stackoverflow.com/favicon.ico";
$dom = new DOMDocument();
@$dom->loadHTML($url);
$links = $dom->getElementsByTagName('link');
$l = $links->length;
$favicon = "/favicon.ico";
for($i=0; $i<$l; $i++) {
$item = $links->item($i);
if(strcasecmp($item->getAttribute("rel"),"shortcut icon") === 0) {
$favicon = $item->getAttribute("href");
break;
}
}
$u = parse_url($url);
$subs = explode('.', $u['host']);
$domain = $subs[count($subs) -2].'.'.$subs[count($subs) -1];
$file = "http://".$domain."/favicon.ico";
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found' || $file_headers[0] == 'HTTP/1.1 404 NOT FOUND' || $file_headers[0] == 'HTTP/1.1 301 Moved Permanently') {
$fileContent = @file_get_contents("http://".$domain);
$dom = @DOMDocument::loadHTML($fileContent);
$xpath = new DOMXpath($dom);
$elements = $xpath->query("head/link//@href");
$hrefs = array();
foreach ($elements as $link) {
$hrefs[] = $link->value;
}
$found_favicon = array();
foreach ($hrefs as $key => $value) {
if(substr_count($value, 'favicon.ico') > 0) {
$found_favicon[] = $value;
$icon_key = $key;
}
}
$found_http = array();
foreach ($found_favicon as $key => $value) {
if(substr_count($value, 'http') > 0) {
$found_http[] = $value;
$favicon = $hrefs[$icon_key];
$method = "xpath";
} else {
$favicon = $domain.$hrefs[$icon_key];
if (substr($favicon, 0, 4) != 'http') {
$favicon = 'http://' . $favicon;
$method = "xpath+http";
}
}
}
if (isset($favicon)) {
if (!CheckImageExists($favicon)) {
$favicon = $fallback_favicon;
$method = "fallback";
}
} else {
$favicon = $fallback_favicon;
$method = "fallback";
}
} else {
$favicon = $file;
$method = "classic";
if (!CheckImageExists($file)) {
$favicon = $fallback_favicon;
$method = "fallback";
}
}
return $favicon;
}
?>
Para Firefox se puede utilizar https://addons.mozilla.org/en-US/firefox/addon/httpfox/. Cargue un sitio web y luego presione F10> ...> "abra HttpFox en su propia ventana" y luego busque "image/x-icon"; en la columna a la derecha está la URL.
Abra el código fuente de la página (haga clic derecho en Ver el origen de la página) encuentre la línea a continuación, haga clic en el enlace images/favicon.png.
<link rel="icon" href="images/favicon.png" type="image/png" sizes="16x16">
- 1. ¿Cómo puedo recuperar un ícono de sitio web?
- 2. ¿Cómo puedo obtener el favicón de un sitio web?
- 3. Obtener el favicon del sitio web con JS
- 4. Favicon para todas las páginas de mi sitio web
- 5. ¿Puedo cambiar un favicon diariamente?
- 6. ¿Usar favicon desde otro sitio?
- 7. ¿Cómo puedo usar HTML Agility Pack para recuperar todas las imágenes de un sitio web?
- 8. Cómo animar un favicon?
- 9. ¿Cómo puedo reproducir un archivo PLS desde un sitio web?
- 10. ¿Cómo crear un favicon en javascript?
- 11. ¿Puedo ejecutar el código de MATLAB en un sitio web?
- 12. ¿Cómo puedo superponer imágenes (png) dentro de un sitio web?
- 13. ¿Cómo puedo insertar un sitio web en mi aplicación?
- 14. ¿Cómo puedo iniciar sesión en un sitio web usando Python?
- 15. ¿Cómo puedo iniciar sesión en un sitio web con Python?
- 16. ¿Cómo puedo implementar OCR en un sitio web usando PHP?
- 17. Mostrar el favicon de Android WebView
- 18. ¿Cómo alojar un sitio web JSP en un servidor web?
- 19. ¿Cómo recupero una URL de un sitio web usando Java?
- 20. Cómo ejecutar MSDeploy un paquete de sitio web creado en un sitio web de IIS virgen
- 21. cómo realizar el perfil de un sitio web?
- 22. ¿Cómo puedo probar el diseño de un sitio web en un dispositivo móvil?
- 23. ¿Cómo deletreas revisas un sitio web?
- 24. Cómo crear API de sitio web
- 25. ¿Puedo alojar un sitio web ASP.NET fuera de IIS?
- 26. ¿Cómo crear un favicon de solo texto?
- 27. ¿Cómo verificar un certificado de sitio web en Cocoa Touch?
- 28. PHP - conseguir el favicon de un sitio y su conversión a PNG si es necesario
- 29. ¿Cómo obtengo el texto de un sitio web usando PHP?
- 30. cómo hacer un motor de búsqueda para el sitio web?
para obtener un favicon uno puede usar esto: http://www.google.com/s2/favicons?domain=domain_name –