jsoup不会仅提取电子邮件网站

时间:2015-08-23 22:48:48

标签: java android jsoup

我遇到了jsoup问题。它只是提取网站链接而不是电子邮件链接。这是我的代码:

try {
            Document doc = Jsoup.connect(url2).get();

            Elements links = doc.select("a[href]");

            for (Element web: links) {

                Log.i("websites/emails/etc.", web.attr("abs:href"));
            }

            Elements links2 = doc.select("link[href]");

            for (Element web: links2) {

                Log.i("websites/emails/etc.", web.attr("abs:href"));
            }

logcat仅显示网站链接。 这是检查页面: website inspected

1 个答案:

答案 0 :(得分:1)

编辑 -

我想念你使用的是Android。我在JVM上测试过,你的代码看起来不错,我在Android上重新测试并看到同样的事情。解决方案似乎是从abs:来电中移除attr限定符。

   Log.i("websites/emails/etc.", web.attr("href"));

原始答案,可能适用于其他提取mailto:的尝试。

这几乎可以肯定是网站创建者的预期行为。由于spambot电子邮件收集程序很容易抓取mailto:标记,因此当您提取原始HTML时,有许多技术可以使mailto:标记不明显。相反,它们巧妙地编码,或者由javascript动态生成。 See here for an example。 Safari正在向您展示元素,因为这些技术在浏览器中是正确的,即使只是HTML看起来很时髦。如果您使用curl下载文件并查看原始文本,则可能没有" mailto:"在那里标记。