Получить текст из id в html

я получил приведенный ниже HTML-код

<div class="SB-marketBox SB-accordion ">
    <div class="SB-marketBox-header SB-accordion-header SB-arrowAfter" id="market_140" onclick="getMarketAccordian('market_140')">
        <div class="SB-marketName"><span>Second Half Goals – odd/even</span></div>
    </div>
    <div class="SB-accordion-content">
        <div class="SB-marketBox-content">
            <ul class="SB-marketOutComeOddsList ">
                <li>
    <button class="btn SB-btnOdds SB-btnOutComeOdds " individualevent-odds-incdec='N' id='highlightBet_79233205' >
        <div class="SB-outcome-container">
            <span class="SB-outcome">Even</span>            
        </div>
        <div class="SB-odds">1.80</div>
    </button>
</li>
<li>
    <button class="btn SB-btnOdds SB-btnOutComeOdds " individualevent-odds-incdec='N' id='highlightBet_79233206' >
        <div class="SB-outcome-container">
            <span class="SB-outcome">Odd</span>            
        </div>
        <div class="SB-odds">1.90</div>
    </button>
</li>

            </ul>
        </div>
    </div>
</div>

я хочу извлечь идентификатор для четного и нечетного результата, написал скрипт Python ниже, чтобы решить его

item = soup.find(class_='SB-marketBox SB-accordion')   
Even = item.find_all(class_='SB-odds')[0].get_text()
Odd = item.find_all(class_='SB-odds')[1].get_text()
Even_id = item.find_all(id)[0].get_text()
Odd_id = item.find_all(id)[1].get_text()

print(f'{Even} {Even_id} {Odd} {Odd_id}')

Получаю IndexError: индекс списка вне допустимого диапазона. Как я могу изменить код, чтобы получить идентификатор для нечетных и четных

Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Введение в технологический стек Twitch
Введение в технологический стек Twitch
В этой статье мы подробно рассмотрим стек Twitch, который подразделяется на следующий набор технологий:
8 полезных HTML-тегов, которые лучше использовать вместо <div>
8 полезных HTML-тегов, которые лучше использовать вместо <div>
Когда я только начинал изучать html, я использовал div для всего, это был один из первых тегов, которые я выучил, и казалось, что он работает в любой...
HTML5: API локального хранилища (Local Storage)
HTML5: API локального хранилища (Local Storage)
LocalStorage - это простой способ хранения данных в браузере пользователя.
Доступность HTML - программирование с инклюзивной перспективой
Доступность HTML - программирование с инклюзивной перспективой
Представьте, что вы хотите поехать на пляж. Представьте, что вы упорно трудились весь год и заслужили это. Прибыв на место, вы обнаруживаете, что...
Именование классов CSS: Конвенция именования BEM
Именование классов CSS: Конвенция именования BEM
Сопровождаемость кода, сама по себе, является пульсирующим эффектом нескольких факторов. Когда часть программного обеспечения читабельна, ясна,...
1
0
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пытаться:

btn_even = soup.select_one('button:has(span:-soup-contains("Even"))')
btn_odd = soup.select_one('button:has(span:-soup-contains("Odd"))')

print(btn_even["id"], btn_even.select_one(".SB-odds").text)
print(btn_odd["id"], btn_odd.select_one(".SB-odds").text)

Отпечатки:

highlightBet_79233205 1.80
highlightBet_79233206 1.90

Другие вопросы по теме