java - 如何提取meta name=generator标签的content属性?

标签 java html-parsing jsoup

我正在使用以下代码使用 Jsoup 从网页中提取元“生成器”标记内容:

Elements metalinks = doc.select("meta[name=generator]");
boolean metafound=false;

if(metalinks.isEmpty()==false)
{ 
    metatagcontent = metalinks.first().select("content").toString();
    metarequired=metatagcontent;
    metafound=true;
}
else 
{
    metarequired="NOT_FOUND";
    metafound=false;
}

问题是对于包含元生成器标签的页面,没有显示任何值(当我输出变量“metarequired”的值时。对于没有元生成器标签的页面,值“NOT_FOUND”显示正确。我在这里做错了什么?

最佳答案

从您的代码,

metalinks.first().select("content").toString();

这是不正确的。这只是选择

<meta ...>
    <content ... /> <!-- This one, which of course doesn't exist. -->
</meta>

当您实际上想要获取属性时

<meta ... content="..." />

您需要使用 attr("content")而不是 select("content") .

metatagcontent = metalinks.first().attr("content");

另见:


与具体问题无关,您不需要针对 if block 内的 boolean 进行测试。 isEmpty() 已经 返回一个 boolean 值:

if (!metalinks.isEmpty())

关于java - 如何提取meta name=generator标签的content属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296520/

相关文章:

javascript - Infogram 嵌入代码未在 React 中呈现

c# - 如何像 c# 中的 html 解析器一样解析 asp.net mvc razor view (cshtml)

java - 将网页加载到 Android 应用程序中

java - 发生 EOFException 时返回是否安全

java - Java获取CPU线程使用率

java - JSoup 提取类标题

java - 如何使用 Java 从网站中提取 HTML 表格数据?

java - 如何按正常顺序打印然后反转?

html - Android - 从网站提取数据的选项? (HTML)

java - 使用 JSoup 进行屏幕抓取