favicons</em>collection1、width = 320、height = 240

faviconがWebブラウザによって認識される方法はたくさんあります。

例1

  <head>
    <link rel="icon" href="http://example.com/image.ico"/>
  </head>

例2

  <head>
    <link rel="icon" href="http://example.com/image.png"/>
  </head>

例3 – 奇妙だが、Googleがそれを使用する。

  <head>
    <meta content="/images/google__favicon__128.png" itemprop="image"/>
  </head>

1. Jsoupの例

Jsoupでfaviconよりも上になるコードスニペット。

    Element element = doc.head().select("link[href~=.** \\.(ico|png)]").first();
    System.out.println(element.attr("href"));

    Element element = doc.head().select("meta[itemprop=image]").first();
    System.out.println(element.attr("content"));

ユニットテスト

ユニットテストの例。

package com.webmitta.analysis;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class TestFavIcon {

  Document document;

  private String PageProvider1() {

    StringBuffer html = new StringBuffer();

    html.append("<!DOCTYPE html>");
    html.append("<html lang=\"en\">");
    html.append("<head>");
    html.append("<link rel=\"icon\" href=\"http://example.com/image.ico\"/>");
    html.append("</head>");
    html.append("<body>");
    html.append("something");
    html.append("</body>");
    html.append("</html>");

    return html.toString();

  }

  private String PageProvider2() {

    StringBuffer html = new StringBuffer();

    html.append("<!DOCTYPE html>");
    html.append("<html lang=\"en\">");
    html.append("<head>");
    html.append("<meta content=\"/images/google__favicon__128.png\" itemprop=\"image\">");
    html.append("</head>");
    html.append("<body>");
    html.append("something");
    html.append("</body>");
    html.append("</html>");

    return html.toString();
  }

  @Test
  void test__FavIcon1() {

    Document doc = Jsoup.parse(PageProvider1());

    Element element = doc.head().select("link[href~=.** \\.(ico|png)]").first();
    Assert.assertEquals(element.attr("href"),
        "http://example.com/image.ico");

  }

  @Test
  void test__FavIcon2() {

    Document doc = Jsoup.parse(PageProvider2());

    Element element = doc.head().select("meta[itemprop=image]").first();
    Assert.assertEquals(element.attr("content"),
        "/images/google__favicon__128.png");

  }

}

出力

…​.[TestNG]Running:
C:\Users\mkyong2002\AppData\Local\Temp\testng-eclipse—​1846902117\testng-customsuite.xml

PASSED: test

FavIcon1
PASSED: test

FavIcon2

=== 参考文献

.  http://en.wikipedia.org/wiki/Favicon[Wikipedia:ファビコン]

. リンク://java/jsoup-html-parser-hello-world-examples/[Jsoup HTMLパーサー

こんにちは世界の例]

link://tag/favicon/[favicon]リンク://tag/jsoup/[jsoup]