Comment extraire l'URL absolue des liens HTML relatifs en utilisant Jsoup?
Je suis en utilisant Jsoup pour extraire l'URL d'une page web. Le href
attribut de ces URL sont de la famille, comme:
<a href="/text">example</a>
Voici ma tentative:
Document document = Jsoup.connect(url).get();
Elements results = document.select("div.results");
Elements dls = results.select("dl");
for (Element dl : dls) {
String url = dl.select("a").attr("href");
}
Cela fonctionne bien, mais si j'utilise
String url = dl.select("a").attr("abs:href");
pour obtenir l'URL absolue comme http://example.com/text
il n'est pas de travail. Comment puis-je obtenir l'URL absolue?
source d'informationauteur sundhar
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin Élément
#absUrl()
.Vous pouvez par la façon de raccourcir la sélectionner:
String url = dl.select("a").absUrl("href");
N'est pas correcte car
dl.select("a")
ne sera pas de retour d'un seul élément, mais une collection.Vous avez besoin d'obtenir des éléments par index
par exemple :
Si vous êtes sûr qu'un seul élément sera le résultat de la sélectionner ci-dessus, ou que l'élément que vous voulez être le premier, vous pouvez:
Qui est aussi le même que
Il n'a pas à être le premier élément de toute façon, vous pouvez toujours remplacer le 0 dans
String url = dl.select("a").get(0).absUrl("href");
avec l'index de votre élément.Ou utiliser une sélection qui est plus spécifique que l'on ne fera qu'un seul élément.