上一篇文章讨论了一下获取网站图标方法,是通过从根目录直接获取和html解析结合的方式来获取的,并给出了相应的代码示例。这一篇来讨论一个更现成的方法,这个方法是从360导航的页面发现的,在导航页面中点击添加网址,会弹出一个添加网址的对话框,点击126邮箱,可以看到126邮箱和图标就跑到上面去了。查看一下网络监控,可以看到Request URL是http://cdn.website.h.qhimg.com/index.php?domain=www.126.com,Request Method是GET,很显然直接请求网址应该就可以获得图标了。
拿博客园的网站试验一下,在浏览器输入http://cdn.website.h.qhimg.com/index.php?domain=www.cnblogs.com,果然博客园的图标就出现了,试了很多常用的网址,都可以拿到图标,效果应该是可以的。
下边再试一下获取拉勾网的图标,http://cdn.website.h.qhimg.com/index.php?domain=www.lagou.com,很遗憾,图标没有出现。这种方法并不能保证100%成功,有些网站还是没有的,默认返回了一个星号。再比如www.sina.com也是拿不到的,www.sina.com.cn就可以拿到。
如果在网站后边跟一个路径也是拿不到的,比如说:http://cdn.website.h.qhimg.com/index.php?domain=www.cnblogs.com/luguo3000/。可以结合上篇文章讲的方法,两种方法一起使用互补一下。成功率会更高一点。
其实hao123的网址导航,也可以拿到图标,但是方法要复杂一些,不像360导航这么直白。所以在做东西之前了解一下他们的获取方式还是很有用的,像这些大公司的很多东西都是可以直接拿来用的。