Jsoup Estrazione di indirizzi email e collegamenti ad altre pagine


Esempio

Jsoup può essere utilizzato per estrarre i link e l'indirizzo email da una pagina Web, quindi "bot del collector degli indirizzi email Web". In primo luogo, questo codice utilizza un'espressione regolare per estrarre gli indirizzi email e quindi utilizza i metodi forniti da Jsoup per estrarre gli URL dei collegamenti su la pagina.

public class JSoupTest {

    public static void main(String[] args) throws IOException {
        Document doc = Jsoup.connect("http://stackoverflow.com/questions/15893655/").userAgent("Mozilla").get();

        Pattern p = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+");
        Matcher matcher = p.matcher(doc.text());
        Set<String> emails = new HashSet<String>();
        while (matcher.find()) {
            emails.add(matcher.group());
        }

        Set<String> links = new HashSet<String>();

        Elements elements = doc.select("a[href]");
        for (Element e : elements) {
            links.add(e.attr("href"));
        }
        
        System.out.println(emails);
        System.out.println(links);

    }

}

Questo codice potrebbe anche essere facilmente esteso per visitare anche ricorsivamente quegli URL ed estrarre i dati dalle pagine collegate. Potrebbe anche essere facilmente utilizzato con una regex diversa per estrarre altri dati.

(Per favore non diventare uno spammer!)