提取电子邮件会将链接添加到其他页面

Jsoup 可用于从网页中提取链接和电子邮件地址,因此“Web 电子邮件地址收集器 bot”首先,此代码使用正则表达式提取电子邮件地址,然后使用 Jsoup 提供的方法提取链接的 URL 这页纸。

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);

    }

}

此代码也可以轻松扩展,以递归方式访问这些 URL 并从链接页面中提取数据。它也可以很容易地与不同的正则表达式一起使用来提取其他数据。

(请不要成为垃圾邮件发送者!)