是的,您可以迭代您的子项
以下是屏幕截图中HTML的简化版本,显示了5个元素:
<li>
<span class="foo"><img src="bar" class="img"></span>
<span class="bar">Collins</span>
<i class="baz1"><img src="baz1" class="img"></i>
<i class="baz2"><img src="baz2" class="img"></i>
<i class="baz3"><img src="baz3" class="img"></i>
</li>
假设您已选择此特定<code>
String html = "<li><span class=\"foo\"><img src=\"bar\" class=\"img\"></span><span class=\"bar\">Collins</span><i class=\"baz1\"><img src=\"baz1\" class=\"img\"></i><i class=\"baz2\"><img src=\"baz2\" class=\"img\"></i><i class=\"baz3\"><img src=\"baz3\" class=\"img\"></i></li>";
Document document = Jsoup.parse(html);
Element element = document.selectFirst("li");
element.children().forEach(child -> {
// do your processing here - this is just an example:
if (child.hasText()) {
System.out.println(child.text());
} else {
System.out.println(child.html());
}
});
上面的代码打印以下输出:
<img src="bar" class="img">
Collins
<img src="baz1" class="img">
<img src="baz2" class="img">
<img src="baz3" class="img">
更新
如果起点是一个URL,那么您需要以此开始:
Document document = Jsoup.connect("https://www...").get();
然后练习是关于确定一种独特的方式来找到您的特定元素。因此,如果我们更新我之前的示例,让我们假设您的网页是这样的:
<html>
<head>...</head>
<body>
<div>
<ul class="vList_4">
<li>
<span class="foo"><img src="bar" class="img"></span>
<span class="bar">Collins</span>
<i class="baz1"><img src="baz1" class="img"></i>
<i class="baz2"><img src="baz2" class="img"></i>
<i class="baz3"><img src="baz3" class="img"></i>
</li>
</ul>
</div>
</body
</html>
这里我们有一个
中的类
现在,代替我之前的选择器:
Element element = document.selectFirst("li");
我们可以使用这个更具体的选择器:
Element element = document.selectFirst("ul.vList_4 li");
将像以前一样打印相同的结果。
因此,这完全取决于您查看页面结构并弄清楚如何跳转到页面的相关部分。
有关描述如何构造选择器的技术详细信息,请参阅此处。
我实际上正在用Java开发一个文本解析器,有人要求我通过用它解析HTML来增强它。解析器的目的是将被解析的文件分成另外三个文件,一个包含文件中包含的所有单词,一个包括所有句子,另一个包含所有问题。 *.txt部分工作得很好,但我在解析HTML时遇到了一个问题。 我创建了一个扩展名为*.txt的临时文件,并将其在我的文本解析器中传递,但是如果我传递一个带有HTML文件链接的URL,其格式如下所示:
问题内容: 我已经读到,使用正则表达式解析XML / HTML是一个坏主意。另一种建议是使用XML解析器。BigQuery标准SQL库中是否存在一个? 问题答案: 如Elliot所提到的,这是有关如何在BigQuery中使用Javascript UDF的文档。 https://cloud.google.com/bigquery/docs/reference/standard-sql/user-de
我试图从这些div标签中获取文本,但是它们都不返回任何内容: HTML: 我想得到div类“消息”和h4标记和跨越“日期时间”中的文本,我试图: 和: 但是他们没有成功。
Jsoups解析是否存在某种类型的限制。我一直在处理内存问题,这是我在这个网站上公开的另一个问题,但我开始意识到我甚至没有得到我需要的所有信息。 我正在使用jsoup来解析一个html页面,它是一个测试页面,里面只有数百万个由空白分隔的数字。当我用jsoup解析它时,我可以得到一些文本,但它不会得到全部。 例如,如果我有一个,它包含来自.parse()的html,那么它只有整个网页中数字的一半。如
我试图在这里使用JSOUP解析html标记。我对jsoup是新来的。基本上,我需要解析这些标记,获取这些标记中的文本,并应用class属性中提到的样式。 我正在创建一个SpannableStringBuilder,它可以创建子字符串,应用样式,并将它们附加到没有样式的文本中。 我不确定如何解析不在任何标记之间的字符串,例如“there are”和“worker from the”。 需要输出,例如
如何从下面的html中解析出46389333? 我使用的是JSoup,显然我可以解析文本、标签和其他值。但是我不知道如何解析这个值。即使我只能解析出/exampleTweet/status/46389333,至少我可以解析这个字符串,这要容易得多。问题是,数字变了,显然例子也变了。不过,地位还是存在的,所以也许我可以利用这一点?任何帮助都是巨大的。