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

从不带子元素的元素内部获取文本

逄边浩
2023-03-14

我正在浏览一个包含几个p元素的网页,我想在不包含其子元素的情况下获取其中的文本。

页面结构如下:

<p class="default">
    <div>I don't want this text</div>
    I want this text
</p>

当我使用parent.find_all(“p”,{“class”:“default”).get_text()时,得到的结果是:

I don't want this text
I want this text

我正在使用BeautifulSoup4和Python3

共有1个答案

陆甫
2023-03-14

可以将.find_next_sibling()text=true参数一起使用:

from bs4 import BeautifulSoup

html_doc = """
<p class="default">
    <div>I don't want this text</div>
    I want this text
</p>
"""

soup = BeautifulSoup(html_doc, "html.parser")

print(soup.select_one(".default > div").find_next_sibling(text=True))

打印:

I want this text

或使用.contents:

print(soup.find("p", class_="default").contents[-1])
 类似资料:
  • 我有以下的html代码,我需要console.log只有航运。尝试了一些方法,但似乎无法奏效。我试着先选择它的孩子,然后打印出它的父母的文本内容-不行...我可以删除它的孩子,打印出剩下的东西,但我做不到。 有什么建议吗? 谢谢你的帮助 我试过这个: 我想得到发货,但我仍然得到图例元素的所有文本内容

  • 问题内容: 有没有一种方法来获取LinearLayout的子元素?我的代码返回一个视图(linearlayout),但是我需要访问布局内部的特定元素。 有什么建议? (是的,我知道我可以使用findViewById,但是我正在用Java创建布局/子级-而不是XML。) 问题答案: 您可以随时执行以下操作:

  • 问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它

  • 问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它

  • 问题内容: 我只想从汤中最上面的元素中提取文本;但是汤.text也会给出所有子元素的文本: 我有 输出为。我只想“是”。 实现此目标的最佳方法是什么? 编辑 :我也想在解析’ ‘时输出。 问题答案: 那又如何呢? 编辑: 我想我已经了解了你现在想要的。尝试这个: