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'}))