Jsoup - Obtenez favicon de la page html
Le favicon peut être reconnu de plusieurs façons par le navigateur Web:
Exemple 1
Exemple 2
Exemple 3 - bizarre, mais Google l'utilise.
1. Exemple Jsoup
Extraits de code pour passer au dessus du favicon avec Jsoup.
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"));
2. Test de l'unité
Exemple de test unitaire.
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(""); html.append(""); html.append(""); html.append(""); html.append(""); html.append(""); html.append("something"); html.append(""); html.append(""); return html.toString(); } private String PageProvider2() { StringBuffer html = new StringBuffer(); html.append(""); html.append(""); html.append(""); html.append(""); html.append(""); html.append(""); html.append("something"); html.append(""); html.append(""); 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"); } }
Sortie
[TestNG] Running: C:\Users\example2002\AppData\Local\Temp\testng-eclipse--1846902117\testng-customsuite.xml PASSED: test_FavIcon1 PASSED: test_FavIcon2