从HTML内容中提取平铺图像

时间:2018-06-12 03:32:59

标签: javascript

我想在用户输入任何网址时显示网页的徽标,为此我可以使用node.js的请求库获取网页的HTML内容,但任何人都可以指导我找到我们的图像当我们打开该网站时,请在浏览器标签中查看。 Image I want to fetch

1 个答案:

答案 0 :(得分:0)

嗯,这实际上取决于网站如何配置他们的图标。

如果您要求HTML,则需要能够使用宽容的东西对其进行解析,因为您无法控制这些页面的质量。像HTMLParser2这样的东西可行。

在您创建的方法中,您需要查找几个标记,并在找到第一个匹配项时停止:

以下是您要查找的内容的示例,此列表并非详尽无遗:

<!-- Favicon -->
<meta name="msapplication-TileImage" content="images/favicons/tile.png"> <!-- Windows 8 -->
<meta name="msapplication-TileColor" content="#00CCFF"/> <!-- Windows 8 color -->
<!--[if IE]><link rel="shortcut icon" href="images/favicons/favicon.ico"><![endif]-->
<link rel="icon" type="image/png" href="images/favicons/favicon.png">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="images/favicons/apple-touch-icon-precomposed-144x144.png"><!-- iPad Retina-->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="images/favicons/apple-touch-icon-precomposed-114x114.png"><!--iPhone Retina -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="images/favicons/apple-touch-icon-precomposed-72x72.png"><!-- iPad 1 e 2 -->
<link rel="apple-touch-icon-precomposed" href="images/favicons/apple-touch-icon-precomposed-57x57.png"><!-- iPhone, iPod e Android 2.2+ -->

正如您所看到的,有很多选择。但是,您可以通过在解析HTML之前检查域的根目录中是否存在favicon.png或favicon.ico来简化代码。

示例http://www.cnn.com/favicon.ico