BeautifulSoup:如何删除空表,同时保留部分空或不空的表
我有一个最初在 MS Frontpage 中创建的旧网站,我正在尝试对其进行 defrontpagify。我已经编写了一个 BeautifulSoup 脚本来完成大部分工作。剩下的唯一一件事就是删除空表,例如在任何td
标记中没有文本内容或数据的表。
我遇到的问题是,到目前为止,如果至少一个表的 td 标签不包含数据,即使其他标签包含数据,我到目前为止所尝试的操作也会删除该表。这将删除整个文档中的所有表格,包括包含我想要保留的数据的表格。
tags = soup.findAll('table',text=None,recursive=True)
[tag.extract() for tag in tags]
有什么建议如何仅删除其中没有 td 标记包含任何数据的表吗? (我不在乎它们是否包含 img
或空锚标记,只要没有文本即可)。
I have an old website originally created in MS Frontpage that I'm trying to defrontpagify. I've written a BeautifulSoup script that does most of it. Only thing left is to remove empty tables, eg tables with no text content or data in any of their td
tags.
The problem I'm stuck on is that what I've tried so far removes the table if at least one its td
tags contains no data, even if others do. That removes all the tables in the entire document, including ones with data I want to preserve.
tags = soup.findAll('table',text=None,recursive=True)
[tag.extract() for tag in tags]
Any suggestions how to only remove tables in which none of the td tags contain any data? (I don't care if they contain img
or empty anchor tags, as long as there's no text).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
.text
属性。它检索该元素内的所有文本内容(递归)。示例:
输出:
Use the
.text
property. It retrieves all text content (recursive) within that element.Example:
Outputs: