java - 使用 URL 获取标题、元描述内容

标签 java url jsoup

我正在尝试从 URL 中提取标题和元标记的描述内容,这就是我所拥有的:

fin[] //urls in a string array

for (int f = 0; f < fin.length; f++)
{
Document finaldoc = Jsoup.connect(fin[f]).get(); //fin[f] contains url at each instance
Elements finallink1 = finaldoc.select("title");
out.println(finallink1);
Elements finallink2 = finaldoc.select("meta");
out.println(finallink2.attr("name"));
out.println(fin[f]); //printing url at last
}

但它不打印标题,只是将描述打印为“描述”并打印 url。

结果:

描述 plus.google.com 发电机 en.wikipedia.org/wiki/google 描述 earth.google.com

最佳答案

你可以使用这个:

String getMetaTag(Document document, String attr) {
    Elements elements = document.select("meta[name=" + attr + "]");
    for (Element element : elements) {
        final String s = element.attr("content");
        if (s != null) return s;
    }
    elements = document.select("meta[property=" + attr + "]");
    for (Element element : elements) {
        final String s = element.attr("content");
        if (s != null) return s;
    }
    return null;
}

然后:

 String title = document.title();
 String description = getMetaTag(document, "description");
 if (description == null) {
    description = getMetaTag(document, "og:description");
 }
 // and others you need to
 String ogImage = getMetaTag(document, "og:image") 

....

关于java - 使用 URL 获取标题、元描述内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958425/

相关文章:

java - 无法使用http请求获取页面

java - 在 Dropwizard/JPA/Hibernate 中自动重试事务/请求

java - 有展开网址吗?

java - java中如何解析这个URL

url - 动态 URL - 带或不带尾部斜线?

java - Jsoup HTTPS 连接

java - 如何在 JSOUP 中禁用转义模式?

java - 遍历继承列表

Java 相当于 Delphi NOT

java - 制作一个打印给定数字倍数的数组