Obtenir le texte du texte des liens lors de la rampe d'un site Web à l'aide de crawler4j
-
09-12-2019 - |
Question
J'utilise Crawler4j pour crawler un site Web.Lorsque je visiterai une page, je voudrais obtenir le texte de lien de tous les liens, pas seulement les URL complètes.Est-ce possible?
Merci d'avance.
La solution
Dans la classe où vous dérivez de WebCrawler, obtenez le contenu de la page, puis appliquez une expression régulière.
Map<String, String> urlLinkText = new HashMap<String, String>();
String content = new String(page.getContentData(), page.getContentCharset());
Pattern pattern = Pattern.compile("<a[^>]*href=\"([^\"]*)\"[^>]*>([^<]*)</a[^>]*>", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
urlLinkText.put(matcher.group(1), matcher.group(2));
}
Alors sculptez UrllinkText quelque part que vous pouvez en arriver une fois que votre crawl est terminé.Par exemple, vous pouvez en faire un membre privé de votre classe de crawler et ajouter un getter.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow