Ottieni il testo del testo dei collegamenti quando striscia un sito Web usando Crawler4J
-
09-12-2019 - |
Domanda
Sto usando Crawler4J per strisciare un sito web.Quando visito una pagina, vorrei ottenere il testo di collegamento di tutti i collegamenti, non solo gli URL completi.È possibile?
Grazie in anticipo.
Soluzione
Nella classe in cui deriva da Webcrawler, ottenere il contenuto della pagina e quindi applicare un'espressione regolare.
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));
}
.
Allora Stick URLLinkText da qualche parte che puoi arrivarci una volta che il tuo gattletto è completo.Ad esempio, potresti renderlo un membro privato della tua classe crawler e aggiungere un getter.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow