我正在尝试使用BeautifulSoup从html表中删除标题单元格。我有类似的东西;
<tr> <th> head1 </th> <th> head2 </th> </tr>
我使用以下代码删除所有标题单元格;
soup = BeautifulSoup(url)
for headless in soup.find_all('th'):
headless.decompose()
这很有效,除了我留下一个空行,后来会让事情变得混乱;
<tr> </tr>
我尝试了下面的代码,但是我得到了一个AttributeError:'NoneType'对象没有属性'decompose'
for headless in soup.find_all('th'):
headless.parent.decompose()
如何删除包含标题单元格的行或稍后删除空白行?谢谢。
答案 0 :(得分:1)
那是因为你在第一次迭代时删除了外部<tr>
(当headless=<th>head2</th>
时),所以当迭代到达<th>head2</th>
时,它的父亲是None
。
相反,您可以迭代<tr>
生成孩子<td>
,如下所示:
for headless in (tr for tr in soup.find_all('tr') if tr.find('th')):
headless.decompose()