#website #logo #favicon #scraper #command-line #wasm #cli

bin+lib site_icons

网站图标抓取器,支持获取尺寸(WASM 支持)

47 个版本 (5 个破坏性更新)

0.6.4 2023年1月7日
0.5.0 2022年12月28日
0.3.8 2022年10月16日
0.1.13 2022年7月24日
0.1.6 2021年2月3日

图像 中排名 282

Download history 103/week @ 2024-03-08 503/week @ 2024-03-15 46/week @ 2024-03-29 10/week @ 2024-04-05 5/week @ 2024-04-12

每月下载次数 238
9 个 crate 中使用 (6 个直接使用)

GPL-3.0 许可证

48KB
1.5K SLoC

site_icons

Crates.io Documentation GitHub Sponsors

一个高效的 Rust 或命令行使用的网站图标抓取器。

功能

  • 超级快速!
  • 部分下载图像以查找尺寸
  • 可以使用权衡系统提取网站标志 <img>
  • 支持内联数据 URI(并自动将其转换为 <svg>
  • 支持 WASM(和 Cloudflare Workers)

Rust 使用方法

use site_icons::SiteIcons;

let mut icons = SiteIcons::new();
// scrape the icons from a url
let entries = icons.load_website("https://github.com", false).await?;

// entries are sorted from highest to lowest resolution
for icon in entries {
  println!("{:?}", icon)
}

命令行使用方法

首先安装二进制文件

cargo install site_icons

然后运行以下命令之一

用于文本输出

命令

site-icons https://github.com

输出

https://github.githubassets.com/favicons/favicon.svg site_favicon svg
https://github.githubassets.com/app-icon-512.png app_icon png 512x512
https://github.githubassets.com/apple-touch-icon-180x180.png app_icon png 180x180
用于 JSON 输出

命令

site-icons https://reactjs.ac.cn --json

输出

[
  {
    "url": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiIHJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K",
    "headers": {},
    "kind": "site_logo",
    "type": "svg",
    "size": null
  },
  {
    "url": "https://reactjs.ac.cn/icons/icon-512x512.png?v=f4d46f030265b4c48a05c999b8d93791",
    "headers": {},
    "kind": "app_icon",
    "type": "png",
    "size": "512x512"
  },
  {
    "url": "https://reactjs.ac.cn/favicon.ico",
    "headers": {},
    "kind": "site_favicon",
    "type": "ico",
    "sizes": ["64x64", "32x32", "24x24", "16x16"]
  },
  {
    "url": "https://reactjs.ac.cn/favicon-32x32.png?v=f4d46f030265b4c48a05c999b8d93791",
    "headers": {},
    "kind": "site_favicon",
    "type": "png",
    "size": "32x32"
  }
]

源代码

  • HTML favicon 标签(或查找默认的 /favicon.svg / /favicon.ico
  • Web 应用程序清单 icons 字段
  • 页面上的 <img> 标签,直接在标题内部或包含文本 "logo" 的 src|alt|class

本地运行

git clone https://github.com/samdenty/site_icons
cd site_icons
cargo run https://github.com

依赖项

~14–28MB
~503K SLoC