我想知道是否有可能通过与JavaScript一个URL来获得网站的图标。

例如我有一个URL http://www.bbc.co.uk/和我想获得路径在<link rel="icon" .../>元标记图标描述 - http://www.bbc.co.uk/favicon.ico

我有很多的网址,以便不应将其加载每个页面并搜索link标签,我认为。

任何想法?

有帮助吗?

解决方案

您可以使用YQL为

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://bbc.co.uk/"and%20xpath%3D"/html/head/link[@rel%3D'icon']%20|%20/html/head/link[@rel%3D'ICON']%20|%20/html/head/link[@rel%3D'shortcut%20icon']%20|%20/html/head/link[@rel%3D'SHORTCUT%20ICON']"&format=json&callback=grab

此查询由显示输送网站图示的Greasemonkey脚本使用。

您可以写在YQL控制台的查询,但它需要登录(顺便说一句,使用查询不):

http://developer.yahoo.com/yql/console/#h=select%20*%20from%20html%20where%20url%3D%22http%3A//bbc.co.uk/%22and%20xpath%3D%22/html/head/link%5B@rel%3D%27icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27ICON%27%5D%20%7C%20/html/head/link%5B@rel%3D%27shortcut%20icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27SHORTCUT%20ICON%27%5D%22

它比http://www.google.com/s2/favicons?domain=www.domain.com 更好,万一存在图标,但不位于domain.com/favicon.ico

其他提示

下面是2的工作选择,我测试100的URL,并得到不同的结果,其中每个选项。 请注意,这种解决方案并不JS,但JS可能不是必要的。

<!-- Free --> 
<img height="16" width="16" src='http://www.google.com/s2/favicons?domain=www.edocuments.co.uk' />
<!-- Paid -->
<img height="16" width="16" src='http://grabicon.com/edocuments.co.uk' />

突然,我发现了一种叫做Google Shared Stuff通过主机名与网站的图标返回图片:

http://www.google.com/s2/favicons?domain=www.domain.com

但FOT BBC网站返回图标有点小。比较:

http://www.google.com/s2/网站图标?域= www.bbc.co.uk 结果 http://www.bbc.co.uk/favicon.ico

在30.000 40.000测试,我发现你真的遇到很多具有对被加工不同的情况。

的出发点是ofcourse某处只能看相对标签在那里提货,但一路走来,你会发现,你将不得不支付更多的情况。

在情况下,任何人都看看这个线程,并试图更接近100%完美我在这里上传了我的(PHP)代码:的 https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php 。这是一个(GPL)WordPress插件的一部分检索网站图标,更多或更少的对请求回然后,超出标准谷歌一个的局限性的(如上所述)。的代码发现基本上等于多个图标,谷歌的代码。但也包括谷歌和其他如图像提供商快捷方式上尝试检索图标进一步迭代。

在通过代码读你可能会看到,你将例如遇到一些情况BASE64数据URI,页面重定向到404页或重定向一个极大倍,检索怪异的HTTP状态代码,并不必检查每一个可能的HTTP返回码区分有效性,有一个错误的MIME类型,客户端刷新标签,在图标图标本身根文件夹,并没有在HTML代码中,等...等...等...

如果你去了一个目录,你会发现其他类,然后是彪存储实际的图标,对他们的网址(和ofcourse然后你会需要找出哪些“分支”使用相同的图标,并且没有了,找他们是否属于相同的“所有者”或确实不同的部分,但相同的域下。

免责声明:我建这个服务自己,但你可以尝试 http://grabicon.com 。这对于那些把手调整和重新格式化的飞行favicon的一个非常简单的API。它使用了很多关于速度主动缓存,以及。像这样的大多数其他服务,您可以直接插入到这一点您的HTML和它的伟大工程。我没有在线文档只是还没有,但这里使用大家的喜爱的网络目的地的一些例子:

获取PNG格式的图标:

http://grabicon.com/icon?domain=microsoft.com

调整大小为64个像素的正方形:

http://grabicon.com/icon?domain=microsoft.com&size=64

这查获使用人可以实现他们的各种方法的图标,并使用可用的最高分辨率版本,因为favicon.ico的文件实际包含的收集图标的。它使用该版本来调整自己的喜好,除非一个完美的比赛已经是可用的。

让我知道你们的想法,你可能会喜欢什么其他功能!

<强>更新

Grabicon现在恢复运行,并且它不会去任何地方。它最初是专为客户谁后来决定不支持它。但是,现在这是在我的直接关怀下,以更好的速度和调整能力。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top