Python 如何使用BeautifulSoup删除父标记

Python 如何使用BeautifulSoup删除父标记,python,beautifulsoup,html-parsing,Python,Beautifulsoup,Html Parsing,我正在尝试使用BeautifulSoup从html表中删除标题单元格。我有点像 <tr> <th> head1 </th> <th> head2 </th> </tr> 这很管用,除了我留下一排空的座位,以后会把事情搞砸 <tr> </tr> 我怎样才能摆脱包含行首单元格的行,或者以后删除空白行?谢谢 这是因为您在第一次迭代时(当headless=head2时)删除了外部,因此当迭代到达head2

我正在尝试使用BeautifulSoup从html表中删除标题单元格。我有点像

<tr> <th> head1 </th> <th> head2 </th> </tr>
这很管用,除了我留下一排空的座位,以后会把事情搞砸

<tr> </tr>

<>我怎样才能摆脱包含行首单元格的行,或者以后删除空白行?谢谢

这是因为您在第一次迭代时(当
headless=head2
时)删除了外部
,因此当迭代到达
head2
时,它的父级是
None

相反,您可以在有子对象的
中进行迭代,如下所示:

for headless in (tr for tr in soup.find_all('tr') if tr.find('th')):
    headless.decompose()

非常感谢。它工作得很好。我还可以去掉一张空白表格,表格里有我删除的表格。事实上,这个页面比我想象的要混乱得多。对于某些数据,有一行(1)包含一个表,表内有两行,一个标题行(2)和一个数据行(3)。当我使用您的建议时,它删除了第一行(1),这也删除了我的数据行(3)。类似这样的内容:标题…数据。。。。如何在保留数据行的同时删除即时标题行?
for headless in soup.find_all('th'):
    headless.parent.decompose()
for headless in (tr for tr in soup.find_all('tr') if tr.find('th')):
    headless.decompose()