我遇到了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"));
}
答案 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:"在那里标记。