AttributeError: 'NavigableString' object has no attribute 'get', Python

Мне нужно поочередно выдернуть text и text2 из блоков example из HTML кода ниже.

<div class = "example">
    <div class = "text">
        <p>Пример</p>
    </div>
    <div class = "text2">
        <p>123</p>
    </div>
</div>

<div class = "example">
    <div class = "text">
        <p>Пример 2</p>
    </div>
    <div class = "text2">
        <p>456</p>
    </div>
</div>

Я пробовал вот такой код:

blocks = soup.findAll("div", "example")
for block in range(len(blocks)):
    for i in blocks[block]:
        print(i.get("div", "text"))
        print(i.get("div", "text2"))

Но он выдает ошибку 'NavigableString' object has no attribute 'get'.
Я также пробовал писать i.find() вместо i.get(), но это не помогло. Других идей по реализации этого у меня нет, что делать?


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

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

Я думаю проблема в Вашей конструкции, попробуйте так:

    blocks = soup.find_all('div', attrs={'class': 'example'})
            for block in blocks:
                print(block.find('div', attrs={'class': 'text'}))
                print(block.find('div', attrs={'class': 'text2'}))
→ Ссылка