gpt4 book ai didi

python - BeautifulSoup:如何删除空表,同时保留部分空表或非空表

转载 作者:太空狗 更新时间:2023-10-30 03:06:13 33 4
gpt4 key购买 nike

我有一个最初在 MS Frontpage 中创建的旧网站,我正在尝试 defrontpagify。我写了一个 BeautifulSoup 脚本来完成大部分工作。唯一剩下的就是删除空表,例如在 anytd 标签中没有文本内容或数据的表。

我遇到的问题是,如果至少有一个 td 标签不包含数据,我到目前为止所尝试的方法会删除该表,即使其他标签包含数据也是如此。这会删除整个文档中的所有表格,包括包含我要保留的数据的表格。

tags = soup.findAll('table',text=None,recursive=True) 
[tag.extract() for tag in tags]

关于如何只删除 没有 的 td 标签包含任何数据的表,有什么建议吗? (我不在乎它们是否包含 img 或空 anchor 标记,只要没有文本即可)。

最佳答案

使用 .text 属性。它检索该元素内的所有文本内容(递归)。

例子:

from BeautifulSoup import BeautifulSoup as BS

html = """
<table id="empty">
<tr><td></td></tr>
</table>

<table id="with_text">
<tr><td>hey!</td></tr>
</table>

<table id="with_text_in_one_row">
<tr><td></td></tr>
<tr><td>hey!</td></tr>
</table>

<table id="no_text_but_img">
<tr><td><img></td></tr>
</table>

<table id="no_text_but_a">
<tr><td><a></a></td></tr>
</table>

<table id="text_in_a">
<tr><td><a>hey!</a></td></tr>
</table>

"""

soup = BS(html)
for table in soup.findAll("table" ,text=None,recursive=True):
if table.text:
print table["id"]

输出:

with_text
with_text_in_one_row
text_in_a

关于python - BeautifulSoup:如何删除空表,同时保留部分空表或非空表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088203/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com