gpt4 book ai didi

javascript - 从网页上可能嵌套的 中提取所有文本

转载 作者:行者123 更新时间:2023-11-28 21:07:48 24 4
gpt4 key购买 nike

我有一个包含各种文本片段的网页,这些片段包含在 <span class="x"></span> 中标签。我想为每个这样的片段生成一个有序列表。足够简单。

皱纹:经常出现额外的<span class="x">嵌套在外部标签中的标签,我不关心。本质上,我想要一个包含至少一个 <span class="x"> 内的每个字符串的列表。标签,但应忽略并丢弃任何其他嵌套的此类标签。

这是一些示例 HTML:

<p>
Outer text. <span class="x">Inside a single span.</span> Back to outer text once more. <span class="x"><span class="x">Inside two spans</span> or just one</span>. Perhaps a <span class="x">single span contains <span class="x">several</span>
<span class="x">nests</span> <span class="x">within <span class="x">it</span>
</span>!</span>
</p>
<span class="x">Maybe there's a span out here.</span><span class="x">(Or two.)</span>
<p>
<table>
<tr>
<td>
<span class="x">Or <span class="x">in</span><span class="x">here</span></span>.
</td>
</tr>
</table>
</p>
<p>
<span>No.</span> <span>Still no, but<span class="x">yes</span>.</span>
</p>

连同我想要的输出:

[ "Inside a single span.",
"Inside two spans or just one",
"single span contains several nests within it!",
"Maybe there's a span out here.",
"(Or two.)",
"Or inhere",
"yes" ]

我想提请注意这个例子的具体特点:

  • 最外层的跨度可以出现在较大的 HTML 文档中的任何深度。
  • 跨度可以嵌套任意深度。 (尽管在实践中到目前为止我还没有发现任何超过 3 或 4 层的实例)
  • 相邻的外部跨度之间可能有也可能没有空格;无论哪种方式,我都希望将它们的内容解析为单独的字符串。
  • 不需要没有类“x”的 Span 标签。
  • 相邻的内部标签之间可能有也可能没有空格;我想按原样保留它。
  • 我预计不会有任何 <span class="x">包含任何 HTML 标签的标签 除了 附加嵌套 <span class="x">标签。

如果 JavaScript + jQuery 解决方案,或者 Python3 + BeautifulSoup 解决方案,或者其他完全适合手头任务的解决方案,我会很高兴。

最佳答案

您可以通过简单的 jQuery 语句在 JavaScript 中获取完整的文本列表:

$("span.x").map(function(e) {return $(this).text() == "" ? null : $(this).text()})

如何使用由您决定。

关于javascript - 从网页上可能嵌套的 <span> 中提取所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com