Соскоб в Интернете: как проверить, есть ли у корневого тега определенный класс CSS? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть объект-суп с этим содержимым:

<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, который я пытаюсь найти?Я что-то не так делаю?

Редактировать I:

У меня нет проблем с получением содержимого, которое находится внутри тега "tr", но я хочу знать, еслиэтот тег "tr" имеет CSS class = "x--player-is-starter".

. Я хотел бы получить True или False, если это возможно, например:

<tr class = "x--player-is-starter"> возвращает True и <tr class = ""> возвращает False.

Как я могу это сделать?

1 Ответ

0 голосов
/ 11 декабря 2018

Я бы придерживался более общего подхода и использовал бы селектор тегов 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...