我是Jsoup的新手,但这似乎是一个很棒的工具。我正在尝试提取机器人元数据。
我有以下代码:
Document doc = Jsoup.parse(htmlContent);
Elements metatags = doc.select("meta");
Element robots = metatags.attr("name", "robots"); // is getting the first element of the list
最后一行是错误的。
我想知道是否需要运行元素列表来查找与该属性匹配的元素,或者有一种方法可以从Elements列表中提取与该属性匹配的元素。
编辑1:我解决了这个问题,改为doc.select("meta[name=robots]")
。
编辑2:换句话说:我想知道如何使Elements list
中的所有元素与某些属性必需匹配。
编辑3:因为我还没有看到主要文档,所以我很难做到这个问题。遗憾。
答案 0 :(得分:2)
可以在select()
方法中设置要检索的属性和值,以便进行更好的过滤。
将选择更改为:doc.select("meta[name=robots]");
,它将获取具有元标记的所有元素,并且其名称属性等于机器人。
答案 1 :(得分:1)
您是否阅读过JSoup文档?这是来自您使用的方法:
attr
public Elements attr(String attributeKey,
String attributeValue)
Set an attribute on all matched elements.
Parameters:
attributeKey - attribute key
attributeValue - attribute value
Returns:
this
它返回此。这意味着它将返回Elements
个对象。这不能分配给Element
对象。
我还认为您要使用Document.getElementsByTag(String)
,而不是select
。