我想要将元素的文本与其子元素的文本组合在一起.我拥有的元素是这样的.

<td>
   <a> This </a> 
   " is placement "
   <span>
       <span> text </span> 
   </span>
   " to demonstrate " 
   <span> 
        <span> my point </span>
   </span>
</td>

我最初的 idea 是这样做

children = d.findChildren()
description = ''
for child in children:
   if child.text:
       description += child.text

这只返回文本‘This Text My point’,因为它忽略了主元素中的文本.我如何才能得到完整的句子‘这是用来证明我的观点的放置文本’?

推荐答案

你可以用.text.get_text().例如:

from bs4 import BeautifulSoup

html_text = '''\
<td>
   <a> This </a>
   " is placement "
   <span>
       <span> text </span>
   </span>
   " to demonstrate "
   <span>
        <span> my point </span>
   </span>
</td>'''

soup = BeautifulSoup(html_text, 'html.parser')

print(soup.td.get_text(strip=True, separator=' '))

打印:

This " is placement " text " to demonstrate " my point

Python相关问答推荐

将numpy数组存储在原始二进制文件中

Django管理面板显示字段最大长度而不是字段名称

点到面的Y距离

滚动和,句号来自Pandas列

C#使用程序从Python中执行Exec文件

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

如何使用它?

当独立的网络调用不应该互相阻塞时,'

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

如何在Python中使用另一个数据框更改列值(列表)

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

巨 Python :逆向猜谜游戏

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错

Pandas在rame中在组内洗牌行,保持相对组的顺序不变,

为罕见情况下的回退None值键入

利用SCIPY沿第一轴对数组进行内插

修改.pdb文件中的值并另存为新的

有没有一种方法可以在朗肯代理中集成向量嵌入

仅取消堆叠最后三列

无法使用请求模块从网页上抓取一些产品的名称