Arv*_*ind 3 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;
}
Run Code Online (Sandbox Code Playgroud)
问题是对于包含元生成器标记的页面,没有显示任何值(当我输出变量'metarequired'的值时.对于没有元生成器标记的页面,正确显示值'NOT_FOUND'我在这做错了什么?
从你的代码,
metalinks.first().select("content").toString();
Run Code Online (Sandbox Code Playgroud)
这是不正确的.这只是选择
<meta ...>
<content ... /> <!-- This one, which of course doesn't exist. -->
</meta>
Run Code Online (Sandbox Code Playgroud)
而你实际上想要获得属性
<meta ... content="..." />
Run Code Online (Sandbox Code Playgroud)
你需要使用attr("content")而不是select("content").
metatagcontent = metalinks.first().attr("content");
Run Code Online (Sandbox Code Playgroud)
与具体问题无关,您不需要对块boolean内部进行测试if.该isEmpty() 已返回boolean:
if (!metalinks.isEmpty())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2149 次 |
| 最近记录: |