当前位置: 首页 > 知识库问答 >
问题:

尝试使用JSOUP在嵌套的DIV标记中检索SPAN标记

呼延才
2023-03-14

你好,我试图使用JSoup提取嵌套DIV标签中的span标签。下面的代码只是较大代码的一个片段。

<div class="formitem formgroup horizontal">
  <div class="formitem formgroup horizontal">
    <div class="formitem formgroup vertical" style="width:325px">
      <div class="formitem formgroup horizontal">
        <div class="formitem formgroup vertical" style="width:325px;">
          <div class="formitem formgroup horizontal">
            <span class="formitem formfield">
                            <span class="value" style="font-weight:bold">47 Lower River St</span>
            </span>
            <span class="formitem formfield">
                            <span class="value" style="font-weight:bold">531</span>
            </span>
          </div>
        </div>
      </div>
      <div class="formitem formgroup horizontal">
        <span class="formitem formfield">
                    <span class="value" style="font-weight:bold">Toronto</span>
        </span>
        <span class="formliteral formitem" />
        <span class="formitem formfield">
                    <span class="value">Ontario</span>
        </span>
        <span class="formliteral formitem" />
        <span class="formitem formfield">
                    <span class="value">M5A0G1</span>
        </span>
      </div>
    </div>
    <div class="formitem formgroup vertical" style="width:150px;">
      <div class="formitem formgroup horizontal">
        <span class="formitem formfield">
                    <label>List:</label>
                    <span class="value" style="font-weight:bold">$279,900</span>
        </span>
        <span class="formitem formfield">
                    <label>For:</label>
                    <span class="value" style="font-weight:bold">Sale</span>
        </span>
      </div>
    </div>
  </div>
  <span class="formitem formfield">
        <span class="value">Toronto C08</span>
  </span>
  <span class="formliteral formitem" />
  <span class="formitem formfield">
        <span class="value">Moss Park</span>
  </span>
  <span class="formliteral formitem" />
  <span class="formitem formfield">
        <span class="value">Toronto</span>
  </span>
  <span class="formitem formfield">
        <span class="value">120-21-S</span>
  </span>
</div>

我试图提取最后一个SPAN标签中的文本(多伦多C08,莫斯公园,多伦多和120-21-S)

<span class="formitem formfield">
    <span class="value">Toronto C08</span>
</span>
<span class="formliteral formitem" />
<span class="formitem formfield">
    <span class="value">Moss Park</span>
</span>
<span class="formliteral formitem" />
<span class="formitem formfield">
    <span class="value">Toronto</span>
</span>
<span class="formitem formfield">
    <span class="value">120-21-S</span>
</span>

我已经成功地解析了文档的其他部分,但是,我似乎无法隔离这些跨度。代码片段来自一个更大的页面(整页)。我可能使用了错误的方法,但下面是我为捕获父DIV之间的跨度所做的工作(结果在帖子顶部)。

Elements elements = doc.select("div[class=formitem legacyBorder formgroup vertical]");
        Element zoneElement = elements.select("div[class=formitem formgroup vertical")
                 .select("[style=width:500px]").select("div[class=formitem formgroup horizontal").first();

所以现在我有了第一个元素,但是我需要在所选代码块的末尾有最后6个span标记。谢啦

共有1个答案

高才
2023-03-14

打开浏览器的开发者工具(F12),选择“检查元素”工具,突出显示所需字段(例如多伦多C08),然后选择其css选择器。对于“多伦多C08”,它将是:

#C3627690 > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > span:nth-child(2) > span:nth-child(1)

对其他所有Elemen也一样。在获得所有选择器后,仔细检查它们——可能它们有一个共同的模式(例如,只有第三个值不同),因此您可以使用循环对它们进行迭代。

 类似资料:
  • 我试图从这些div标签中获取文本,但是它们都不返回任何内容: HTML: 我想得到div类“消息”和h4标记和跨越“日期时间”中的文本,我试图: 和: 但是他们没有成功。

  • 我想在段落内用span标记包装每个单词。当段落中没有HTML标记时,我成功地创建了它。但是当段落内有HTML标记时,它就会变得一团糟。 下面是段落中没有HTML标记时的示例: null null 但是当段落中有HTML标记时,它就会变得乱七八糟,如下所示: null null 谢谢DrunkenPoney的努力。他做的最多,但它已经打破了内部跨度的内容。 我希望结果是这样的,浏览器中出现的每个单词

  • 我想使用jsoup从网页中提取内容。这些值在内部标签中,如何提取这些值? 例如 我想提取锚点标签中的内容首页*将如何做到这一点?

  • 下面的HTML代码需要xpath 仅供参考:xpath将具有排除邮政编码的div text(),以便返回剩余的div和span文本。有时postalCode不在这个div标记中。因此,如果它存在,跳过它,如果不返回整个div标记文本。

  • 我已经成功地在一个分隔符中获取了如下所示的文本:

  • 我是网页刮刮的新手。我正在使用美丽的汤提取谷歌播放商店。但是,我坚持从div标记中检索文本。Div标记如下所示: 我想检索从“谢谢你的反馈”开始的文本。我使用以下代码检索文本: 但是,上面的命令也返回不需要的文本,即'education.com'和日期。我不确定如何从没有类名的div标记中检索文本,如上面的示例所示。等待你的指引。