не находится тег по id

Не находится тег по id

Код:

import requests
from bs4 import BeautifulSoup 
url_card = 'https://clashroyale.fandom.com/wiki/Minions' 
r = requests.get(url_card)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')


with open('test.html', 'w', encoding='utf-8') as f:
        f.write(r.text)


tag = soup.table
if tag['id']=="unit-attributes-table":
    unit_stat = tag 
    print(unit_stat)

Результат:

<table class="wikitable" id="unit-attributes-table" style="width:100%; text-align:center;">
<tbody><tr>
<th scope="col">Cost<br/><img alt="Elixir" class="lazyload" data-image-key="Elixir.png" data-image-name="Elixir.png" data-src="https://static.wikia.nocookie.net/clashroyale/images/4/43/Elixir.png/revision/latest/scale-to-width-down/26?cb=20160530182631" decoding="async" height="26" src="data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D" title="Elixir" width="26"/>
</th>
<th scope="col">Hit Speed<br/><img alt="Damage Speed" class="lazyload" data-image-key="Icons_stats_dmg_speed.png" data-image-name="Icons stats dmg speed.png" data-src="https://static.wikia.nocookie.net/clashroyale/images/7/7c/Icons_stats_dmg_speed.png/revision/latest/scale-to-width-down/26?cb=20160115223334" decoding="async" height="26" src="data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D" title="Damage Speed" width="26"/>
</th>

Проблема:
При смене тега на "unit-statistics-table" ничего не находит .
Хотя в html документе он есть.

Заранее спасибо


Ответы (2 шт):

Автор решения: kopcap44

по стандарту в bs4 на выход идёт html код, если хотите получить текст следует использовать функцию .getText()

→ Ссылка
Автор решения: Павел Осипенко

soup.table находит только первый тег <body> и останавливает поиск. тег unit-statistics-table находится во втором теге

Вам надо искать методом find_all() и уже в результатах через цикл находить теги с нужными id.

А вообще, если вы знаете id то быстрее находить сразу по id:

uat = soup.find(id='unit-attributes-table')
ust = soup.find(id='unit-statistics-table')

https://www.crummy.com/software/BeautifulSoup/bs4/doc.ru/bs4ru.html#id20

→ Ссылка