парсинг списка html в словарь
Как лучше из такого списка:
<ul>
<li><b>Штрих-код</b> <span>4810948005595</span></li>
<li><b>Страна</b> <span>БЕЛАРУСЬ</span></li>
<li><b>В наличии</b> <span>13 шт.</span></li>
</ul>
cоздать словарь на питоне?
Cейчас делаю так:
html = """
<ul>
<li><b>Штрих-код</b> <span>4810948005595</span></li>
<li><b>Страна</b> <span>БЕЛАРУСЬ</span></li>
<li><b>В наличии</b> <span>13 шт.</span></li>
</ul>
"""
soup = Soup(html, 'html.parser')
desc = soup.select("ul li")
about= {}
for el in desc:
about[el.find("b").text] = el.find("span").text
print(about)
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
from bs4 import BeautifulSoup
html = '''
<ul>
<li><b>Штрих-код</b> <span>4811530000325</span></li>
<li><b>Страна</b> <span>БЕЛАРУСЬ</span></li>
<li><b>В наличии</b> <span>1 шт.</span></li>
</ul>
'''
soup = BeautifulSoup(html, 'html.parser')
Словарь можно сгенерировать с помощью dict comprehension:
my_dict = {i.find('b').text: i.find('span').text for i in soup.find_all('li')}
тогда в my_dict:
>>> my_dict
{'Штрих-код': '4811530000325', 'Страна': 'БЕЛАРУСЬ', 'В наличии': '1 шт.'}