from bs4 import BeautifulSoup
import re
html_content = """<div class='ui very padded vertical segment'>
<div class='ui basic clearing segment' style='margin: 0; padding: 1em 0'>
<h4 class='ui header'>
Description
</h4>
<p>Please bring the failure blade to cabin.</p>
</div>
<div class='column'>
<h4 class='ui header'>
Owner Information
</h4>
<div class='ui list'>
<div class='item'>
<i class='grey user icon'></i>
<div class='content'>No Owner Specified</div>
</div>
</div>
</div>"""

work_order_soup = BeautifulSoup(html_content,"html.parser")
find_description = work_order_soup.find(re.compile("^h[1-6]$"), text=re.compile("Description", re.IGNORECASE))

parent_div_description = find_description.find_parent("div")
print(parent_div_description.text)

在没有找到p标记的情况下,我需要从父div获取文本.实际上,我需要go 掉文本中的描述.我已经使用Find_Description找到了描述. 所需解决方案:请将故障Blade 带到机舱内.

推荐答案

从父项中删除<h*>标记,并获得文本:

import re

from bs4 import BeautifulSoup

html_content = """<div class='ui very padded vertical segment'>
<div class='ui basic clearing segment' style='margin: 0; padding: 1em 0'>
<h4 class='ui header'>
Description
</h4>
<p>Please bring the failure blade to cabin.</p>
</div>
<div class='column'>
<h4 class='ui header'>
Owner Information
</h4>
<div class='ui list'>
<div class='item'>
<i class='grey user icon'></i>
<div class='content'>No Owner Specified</div>
</div>
</div>
</div>"""

work_order_soup = BeautifulSoup(html_content, "html.parser")
find_description = work_order_soup.find(
    re.compile("^h[1-6]$"), string=re.compile("Description", re.IGNORECASE)
)

parent = find_description.parent
find_description.extract()

print(parent.get_text(strip=True))

打印:

Please bring the failure blade to cabin.

Python-3.x相关问答推荐

字符串块数组:如何根据一个数组中的元素对另一个数组中的元素进行分组

Pandas :从元组字典创建数据帧

使用数据库将文件从Sharepoint下载到文件系统

基于另一个数据帧计算总和

向前/向后移动导致移动行的数据不可见

使用 Fetch 提交表单到 Django 视图

tkinter treeview 如何在获取所选项目时将设置的对象作为对象返回

PyQt5 中耦合滑块和拨号小部件.解决结果不一致的问题

你能骗PIP 让它相信包已经安装了吗

提取图像中的背景并保存

如何统计一个值连续出现的次数?

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

如何在python 3.10中将列表项(字符串类型)转换为模块函数

Semaphore信号量 Python 的工作原理

通过 requests 库调用 API 获取访问令牌

无法在 macOS 上的 Anaconda3 python3.6 上安装 OpenCV3

在不关心项目的情况下运行生成器功能的更简单方法

向 Python 函数添加属性的最佳方法

有没有办法在多个线程中使用 asyncio.Queue ?

@staticmethod 或类外的函数?