web-scraping - 使用 JSoup 抓取电子邮件和链接

标签 web-scraping set jsoup

我想使用 JSoup 提取网站的所有电子邮件地址和 URL,并将其存储在哈希集中(这样就不会重复)。我正在尝试这样做,但我不确定我到底需要将什么放入 select 中,或者我是否做对了。这是代码:

Document doc = Jsoup.connect(link).get();

Elements URLS = doc.select("");
Elements emails = doc.select("");
emailSet.add(emails.toString());
linksToVisit.add(URLS.toString());

最佳答案

这样做:


获取html文件:

Document doc = Jsoup.connect(link).get();

将电子邮件提取到 HashSet 中,使用正则表达式提取页面上的所有电子邮件地址:

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

完整且有效的代码在这里:https://gist.github.com/JonasCz/a3b81def26ecc047ceb5

现在不要成为垃圾邮件发送者!

关于web-scraping - 使用 JSoup 抓取电子邮件和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495697/

相关文章:

c++ - 通过在另一组上调用 erase(iterator) 从一组中删除元素。这是正常行为吗?

java - 使用 JSoup 获取 JavaScript 内容

python - 在集合列表中查找属于子集的集合并选择它们

performance - 确定两个表是否具有相同的键集

javascript - 选择具有相同类名的多个标签?

python mechanize.Browser 返回

android - 如何使用 Jsoup 向 html 内容添加填充?

java - JSoup 检索 URL 不起作用

python - 无法使用线程以正确的方式执行我的脚本

c# - 抓取 JavaScript 动态生成的数据