Any way to grab a logo icon from website URL, programmatically?
Use this website:
https://besticon-demo.herokuapp.com/allicons.json?url=www.stackoverflow.com
It will find all logos for a website in multiple sizes and return a nice json string with meta data including the url to the icon. You simply replace www.stackoverflow.com
with your domain.
The site also has a gui for entering in websites manually if you prefer:
https://besticon-demo.herokuapp.com/
Here is a sample string returned from querying for the stack overflow website:
{
"url":"www.stackoverflow.com",
"icons":[
{
"url":"http://stackoverflow.com/apple-touch-icon.png",
"width":158,
"height":158,
"format":"png",
"bytes":3445,
"error":null,
"sha1sum":"c78bd457575a3221c6b3d0d17ffb00ffc63d7cd0"
},
{
"url":"http://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
},
{
"url":"http://stackoverflow.com/favicon.ico",
"width":32,
"height":32,
"format":"ico",
"bytes":5430,
"error":null,
"sha1sum":"4f32ecc8f43d0986b9c6ce9f37999e86c0b829ef"
}
]
}
It's called a favicon, and all you have to do is:
- If there's an icon at
/favicon.ico
, use that. - Otherwise, get the content of the page, and extract the location from
<link rel="shortcut icon" href="URL goes here" />
. You’ll need to use an HTML parser and find the<link>
with arel
of eithericon
orshortcut icon
.
I know I am late but this API will help others
Android doesn't support favicon files. You can fetch favicon but can't show/use it.
But Google provides free API to get favicon in image format.
https://www.google.com/s2/favicons?sz=64&domain_url=microsoft.com
Use Picasso to show icon in imageview.
Use this logo.clearbit.com/stackoverflow.com
You can even customize to get particular size and grascaled version
logo.clearbit.com/stackoverflow.com?size=80&greyscale=true