有什么方法可以以编程方式从网站URL中获取徽标图标吗?

2022-09-04 23:46:31

我正在创建一个活动,其中将显示访问过的网站列表及其徽标和用户选择的别名。

例如:

  • 最近访问的网站

    徽标1 网站1/别名

    徽标2 网站2/别名

    .

    .所以没有

问题是,(参考附图)如何让网站徽标显示在 http:// 左侧?

Like below I want to just grab the icon and save it locally


答案 1

使用本网站:

https://besticon-demo.herokuapp.com/allicons.json?url=www.stackoverflow.com

它将找到多个大小的网站的所有徽标,并返回一个漂亮的json字符串,其中包含元数据,包括图标的URL。您只需用您的域名替换即可。www.stackoverflow.com

如果您愿意,该网站还具有用于手动输入网站的GUI:

https://besticon-demo.herokuapp.com/

下面是从查询堆栈溢出网站返回的示例字符串:

{
   "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"
      }
   ]
}

答案 2

它被称为网站图标,您所要做的就是:

  1. 如果 处有图标,请使用该图标。/favicon.ico
  2. 否则,请获取页面的内容,并从 中提取位置。您需要使用 HTML 解析器,并找到 带有 或 的 a。<link rel="shortcut icon" href="URL goes here" /><link>reliconshortcut icon