Jsoup: comment obtenir l'url absolue d'une image?

Y a-t-il un moyen dans jsoup d'extraire une url absolue d'image, un peu comme on peut obtenir l'url absolue d'un lien?

Considérez 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?

33
demandé sur r0u1i 2011-02-02 16:35:02

4 réponses

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

Sinon:

String url = image.attr("abs:src");

Jsoup a une méthode intégrée absUrl () sur tous les nœuds pour résoudre un attribut à une 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é récupéré).

Voir aussi la documentation travailler avec les URLs Jsoup.

62
répondu Jonathan Hedley 2011-02-02 21:22:52
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);
}
8
répondu Gaurab Pradhan 2013-08-07 11:12:28

Supposons que vous analysez http://www.example.com/index.html.

Utilisez jsoup pour extraire le src img qui vous donne: images/chicken.jpg

Vous pouvez ensuite utiliser la classe URI pour résoudre ce problème 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());

Imprime

http://www.example.com/images/chicken.jpg
2
répondu dogbane 2011-02-02 13:42:11

Il pourrait être dans une classe div, donc le code serait comme ceci (à titre d'exemple seulement)

System.out.println(doc.select("div.ClassName image").attr(src));
0
répondu PHPFan 2017-11-06 07:47:15