【接口】获取网站 favicon 图标接口(显图 + 返链)

瞎扯

前段时间站长在开发完善本来快弃坑的 QzSharer 时,想过一个问题:

也就是原本使用的那个自动获取网页标题的按钮是否可以完成其它的动作如获取 description获取 icon 图标链接

前者对我来说很容易,简单的一个小爬虫获取头部的 meta 标签就行了;但是后者...我去研究了不少网站,发现关于网站图标的放置方法各种网站有各种想法。在企图自己完成未遂的情况下,我把目光投到了万能的 GitHub 上——心里暗念:『我能行!』

正文

后来经过多方查找,才发现这个功能实现方式(取决于各网站相关标签的呈现位置、方式)太多,统一的太少,所以相关文献也少。说明很多人遇到了和我一样的问题。

一开始,我看中了这个项目:owen0o0/getFavicon,用我的美国虚拟主机搭建刚好,使用上就出了问题:手动输入在浏览器里可用,在 QzSharer 里点击分享后 QZone 却识别不到。

考虑到这是动态网站文件带参数的模式,我给出了以下猜测:这需要调用的动态脚本文件获取到图标后再显示而不是文件,所以不能被识别。

直到今日,我翻看其公开的源代码,从其模块文件中看到如下代码才印证我的猜测:

这里的 data 是二进制数据:

但是不是文件直链。

好在的是,经我测试和翻看文档,我还是发现了这个接口的用途:

获取网站的Favicon图标并显示在你的网页上. ——项目 GitHub 仓库

这对于那些搭建导航网站的站长来说简直就是福利!

接口一 - 获取对应网站图标并显示

如果你是个人站长,愁于获取收录网站的图标,告诉你!:即刻起,你将无需手动获取-保存-再调用,你只需要在相对应的 <img> 标签的 src 属性里填入以下值:

https://api.gkcoll.xyz/api/getFavicon/pic/?url=【你要获取图标的网站网址,最好带上协议头】

接口在有心维护期内将长期有效(现在站长是高中生),相信以后也能坚持下来。

目前接口搭建在美国虚拟主机上,配置和连接速度其实都不是很好,等机器快到期将考虑整站转移至其它提供商的香港主机上。

接口二 - 获取对应网站图标链接并打印

这个参考这个开源仓库: perspecdev/getfavicon。此仓库已十一年未更新。

开发者写的自述文件只有一句话:

Just a quick PHP snippet to get the favicon of any website.

使用后有感:确实够 QUICK 的。。

这个就很简答,代码里充斥了不少正则表达式,只为获取并返回那条含有图标的标签的 href

使用方法很简单,上面那条中的 pic 换成 link 就是了

https://api.gkcoll.xyz/api/getFavicon/link/?url=【你要获取的网站网址,最好带上协议头】

接口返回的格式是 txt ,只有一行文字内容为图标链接,若你看得懂 Python 代码,可用以下代码进行调用(请先用 pip install requests 命令安装 requests 库):

import reuqests

while True:
    api = "https://api.gkcoll.xyz/api/getFavicon/link/?url="
    target_url = input("Press the link of target website..")
    resp = requests.get(api + target_url)
    print(resp.text)

END

希望对你有所帮助!

版权声明:
作者:灰尘疾客
链接:https://www.gkcoll.xyz/444.html
来源:极客藏源
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>