如何使用 CSS 选择器 divide div 元素的内容?

How can I divide a div element's content with CSS selector?

假设我有类似的东西:

<div class="c1">
    BlahBlahBlah Some text that I want to fetch.
    <br/>
    <div class="c2">something does not important.</div>
    <a href="blabla.html">a link text</a>
</div>

我只想获取 "BlahBlahBlah Some text that I want to fetch." 文本。当我使用 "div.c1" css 选择器时,它给出 "BlahBlahBlah Some text that I want to fetch. something does not important. a link text."

如何获取我想要的文本? (注意:HTML代码没有错误,请勿修改,肯定是我写的。我要抓取文本的站点不属于我,所以我无法更改代码。 )

简单的回答。你不能。 CSS select或目标节点,而不是某些文本中的特定字母。当您考虑伪 select 时会有一些小的例外,但是您无法单独使用 CSS 来完成您想要的。

我最好的建议是修改 HTML 并将您想要定位的内容包装在 <span> 元素中并给它一个 CSS class你真的可以瞄准。

编辑:(自从发现你无法修改页面后,你正在使用 Jsoup 获取它。)

由于您正在使用 Jsoup 获取页面并以您的节点为目标,因此您只需再执行一个步骤即可获取您的文本。基本上,在您 select 您的节点并获取内部文本之后,只需 运行 一个正则表达式并在第一个句点之前获取所有内容。

您的正则表达式在 Java 中应如下所示:"(.*\.)"

您可以 "fetch" 您想要的文本,假设您的意思是 "select" 它是为了应用 CSS 规则,通过为 top-level 元素编写规则,然后为 children:

覆盖它
.c1   { color: rebeccapurple; }
.c1 * ( color: initial; }