Web抓取:如何测试root标签是否具有特定的CSS类?

时间:2018-12-11 00:47:05

标签: python web-scraping beautifulsoup

我有一个包含以下内容的汤对象:

<tr class="x--player-is-starter">
<td class="pos" style="display: none; height: 62px;">10</td>
<td class="name" style="display: none; height: 62px;">
<a class="player-profile-link" href="/eurocupwomen/18-19/player/Maria-Conde" target="_blank"> Maria Conde</a>
</td>
<td class="min" style="height: 62px;">29:37</td>
<td class="pts" style="height: 62px;">13</td>
<td class="field-goals" style="height: 62px;">
<span class="made-all">4/8</span>
<span class="percent">50%</span>
</td>
<td class="field-goals-2p" style="height: 62px;">
<span class="made-all">1/2</span>
<span class="percent">50%</span>
</td>
<td class="field-goals-3p" style="height: 62px;">
<span class="made-all">3/6</span>
<span class="percent">50%</span>
</td>
<td class="free-throw" style="height: 62px;">
<span class="made-all">2/4</span>
<span class="percent">50%</span>
</td>
<td class="reb-offence" style="height: 62px;">2</td>
<td class="reb-defence" style="height: 62px;">0</td>
<td class="reb-total" style="height: 62px;">2</td>
<td class="assists" style="height: 62px;">3</td>
<td class="personal-fouls" style="height: 62px;">0</td>
<td class="turnovers" style="height: 62px;">1</td>
<td class="steals" style="height: 62px;">3</td>
<td class="block-shots" style="height: 62px;">0</td>
<td class="plus-minus" style="height: 62px;">2</td>
<td class="efficiency" style="height: 62px;">14</td>
</tr>

我想知道如何知道标签“ tr”是否具有CSS class = "x--player-is-starter"

例如,如果包含以上tr的对象被称为row,我曾尝试使用row.find("tr", class_="x--player-is-starter"),但结果总是“ None”。

那么,如何知道"tr"标签是否具有我要查找的CSS类?我在做错什么吗?

编辑我:

我没有问题可以获取“ tr”标签中的内容,但是我想知道该标签“ tr”是否具有CSS class = "x--player-is-starter"

如果可能,我想获得一个TrueFalse,例如:

<tr class = "x--player-is-starter">返回True,而<tr class = "">返回False

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我会更笼统地使用css标签选择器,然后测试每个类

soup = BeautifulSoup(html, 'lxml')
results = [(i.get('class'), True) if i.get('class')[0] == "x--player-is-starter" else (i.get('class'), False) for i in soup.select('tr')]
print(results)