确定TD标签内的类别

问题描述 投票:3回答:1

使用python beautifulsoup我试图找到HTML页面的所有<tr>标签。但是我想过滤掉任何一个<tr>标签中有某个类的<td>标签。

我尝试使用以下代码过滤<td>标记中具有“Warning”类的行。

soup = BeautifulSoup(data, 'html.parser')
print(soup.find_all('tr', class_=lambda c: 'Warning' not in c))

我知道它不是过滤掉“警告类”,因为我在<tr>函数中使用find_all但是如果我尝试使用td它给了我一个TypeError: argument of type 'NoneType' is not iterable

任何想法都表示赞赏。

from bs4 import BeautifulSoup

data = '''
<tr role="row" class="odd red" data-id="32">
   <td role="gridcell" class="Warning">33</td>
   <td role="gridcell">Ralph</td>
   <td role="gridcell">List 2</td>
   <td role="gridcell">FE</td>
   <td role="gridcell">07/12/1996</td>
</tr>
<tr role="row" class="even red" data-id="33">
   <td role="gridcell">34</td>
   <td role="gridcell">Mary</td>
   <td role="gridcell">List 2</td>
   <td role="gridcell">SOTLTM</td>
   <td role="gridcell">08/12/1996</td>
</tr>
<tr role="row" class="odd red" data-id="34">
   <td role="gridcell">35</td>
   <td role="gridcell">Tom</td>
   <td role="gridcell">List 2</td>
   <td role="gridcell">SOTLTM</td>
   <td role="gridcell">09/12/1996</td>
</tr>
'''

soup = BeautifulSoup(data, 'html.parser')
print(soup.find_all('td', class_=lambda c: 'Warning' not in c))
python python-3.x beautifulsoup
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.