Existe-t-il un moyen dans jsoup d’extraire une URL absolue d’image, tout comme on peut obtenir l’URL absolue d’un lien?
Considérons l'élément d'image suivant trouvé dans http://www.example.com/
<img src="images/chicken.jpg" width="60px" height="80px">
Je voudrais obtenir http://www.example.com/images/chicken.jpg
. Que devrais-je faire?
Une fois que vous avez l'élément image, par exemple:
Element image = document.select("img").first();
String url = image.absUrl("src");
// url = http://www.example.com/images/chicken.jpg
Alternativement:
String url = image.attr("abs:src");
Jsoup a une méthode absUrl () intégrée sur tous les nœuds pour résoudre un attribut en URL absolue, en utilisant l'URL de base du nœud (qui peut être différente de l'URL à partir de laquelle le document a été extrait).
Voir aussi le Travailler avec des URL jsoup - Documentation.
Document doc = Jsoup.connect("www.abc.com").get();
Elements img = doc.getElementsByTag("img");
for (Element el : img) {
String src = el.absUrl("src");
System.out.println("Image Found!");
System.out.println("src attribute is : "+src);
getImages(src);
}
Supposons que vous analysez http://www.example.com/index.html
.
Utilisez jsoup pour extraire le fichier img src qui vous donne: images/chicken.jpg
Vous pouvez ensuite utiliser la classe URI pour le résoudre en un chemin absolu:
URL url = new URL("http://www.example.com/index.html");
URI uri = url.toURI();
System.out.println(uri.resolve("images/chicken.jpg").toString());
empreintes
http://www.example.com/images/chicken.jpg
Cela pourrait être à l'intérieur d'une classe div donc le code serait comme ceci (à titre d'exemple seulement)
System.out.println(doc.select("div.ClassName image").attr(src));