当前位置: 首页 > 面试题库 >

如何使用Java从网站上获取favicon.ico?

夹谷浩博
2023-03-14
问题内容

因此,我正在开发一个应用程序来存储所有用户喜欢的应用程序的快捷方式,就像集线器一样。我可以支持实际文件,并且可以使用.lnk快捷方式解析器。我认为应用程序也支持Internet快捷键也将非常不错。这就是我在做什么:

假设我要获取Google的图标(http://www.google.com/favicon.ico)。

  1. 首先,我摆脱掉多余的页面(例如www.google.com/anotherpage将成为)www.google.com

  2. 然后,我ImageIO.read(java.net.URL)用来获取图像。

问题是,ImageIO当我调用此方法时,永远不会返回Image:

String trimmed = getBaseURL(page); //This removes the extra pages
Image icon = null;    
try {
    String fullURLString = trimmed + "/favicon.ico";
    URL faviconURL = new URL(fullURLString);
    icon = ImageIO.read(faviconURL);
} catch (IOException e) {
    e.printStackTrace();
}

return icon;

现在我有两个问题:

  1. Java是否支持ICO格式,即使它来自Microsoft?
  2. 为什么ImageIO无法从URL读取?

先感谢您!


问题答案:

试试Image4J。

正如此快速的Scala REPL会话所示(可粘贴为Java代码):

> net.sf.image4j.codec.ico.ICODecoder.read(new java.net.URL("http://www.google.com/favicon.ico").openStream())

res1: java.util.List[java.awt.image.BufferedImage] = [BufferedImage@65712a80: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 16 height = 16 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0]

更新

回答您的问题:Java是否支持ICO?看起来不像:

> javax.imageio.ImageIO.read(new java.net.URL("http://www.google.com/favicon.ico"))

java.lang.IllegalArgumentException: Empty region!

为什么ImageIO无法从URL读取?嗯,URL本身似乎对我有用,因此您可能遇到代理/防火墙问题,或者可能是上述问题。



 类似资料:
  • 所以我做了一个应用程序来存储所有用户喜欢的应用程序的快捷方式,有点像一个集线器。我可以支持实际的文件,我有一个<代码>。快捷方式的lnk解析器。我认为应用程序支持互联网快捷方式也是非常好的。这就是我正在做的: 假设我试图获取Google的图标(< code > http://www . Google . com/favicon . ico )。 > < li> 我首先去掉多余的页面(例如< cod

  • 问题内容: 我想使用Java来获取网站的源(安全),然后解析该网站以获取其中的链接。我已经找到了如何连接到该URL的方法,但是然后我如何才能轻松地仅获取源代码,更喜欢作为DOM Document oso来获取我想要的信息。 还是有更好的方法连接到https站点,获取源代码(我很容易做到以获取数据表…非常简单),然后这些链接就是我要下载的文件。 我希望它是FTP,但是这些是存储在我的Tivo中的文件

  • 尝试使用Jsoup而不是网站API从网站上练习和获取信息。我的代码没有错误,但文本字段没有更改。它只是给我一个空白。我如何从网站上获取信息?我正试图获取主要新闻,以便在我的网站上发布。 我的代码:

  • 问题内容: 我想使用HTTP GET和POST命令从网站检索URL并解析HTML。我该怎么做呢? 问题答案: 您可以将HttpURLConnection与URL结合使用。

  • 我使用jSoup解析所有的超文本标记语言从这个网站:新闻 我可以获取所有的倾斜,描述与选择一些我需要的元素。但找不到要选择的视频URL元素。我怎么能得到视频链接与jSoup或另一种库。谢谢!

  • 问题内容: 这里, 这里有张桌子。我的目标是提取表并将其保存到csv文件。我写了一个代码: 我从这里迷路了。有人可以帮忙吗?谢谢! 问题答案: 因此,本质上您想解析出文件以获取文件中的元素。您可以将BeautifulSoup或lxml用于此任务。 您已经有使用的解决方案。我将使用发布解决方案: