Как спарсить html тег?
Всем добрый день. Есть скрипт, который парсит эту страницу: https://lenta.com/
Вот что программа выводит:
<div class="js-current-store header__location-picker" data-city-key="spb" data-customer-id="dbee0084-e086-4da0-959a-5d2059976298" data-ga-event-category="catalog:header" data-is-default-city="True" data-is-default-store="True" data-is-store-picked="False" data-should-render-store-picker="False" data-store='{"id":"0006","address":"д. Старо-Паново, ш. Таллинское, д. 159, лит. А","cityKey":"spb","cityName":"Санкт-Петербург","type":"hypermarket","lat":59.807053,"long":30.162049,"opensAt":"0","closesAt":"0","is24hStore":true,"hasPetShop":true}'>
<div class="current-store">
<div class="tooltips-container"></div>
</div>
</div>
Как сделать вывод в таком виде:
data-store='{"id":"0006","address":"д. Старо-Паново, ш. Таллинское, д. 159, лит. А","cityKey":"spb","cityName":"Санкт-Петербург","type":"hypermarket","lat":59.807053,"long":30.162049,"opensAt":"0","closesAt":"0","is24hStore":true,"hasPetShop":true}'>
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Вытащите у того элемента атрибут data-store и разберите как json:
import json
from bs4 import BeautifulSoup
html = """
<div class="js-current-store header__location-picker" data-city-key="spb" data-customer-id="dbee0084-e086-4da0-959a-5d2059976298" data-ga-event-category="catalog:header" data-is-default-city="True" data-is-default-store="True" data-is-store-picked="False" data-should-render-store-picker="False" data-store='{"id":"0006","address":"д. Старо-Паново, ш. Таллинское, д. 159, лит. А","cityKey":"spb","cityName":"Санкт-Петербург","type":"hypermarket","lat":59.807053,"long":30.162049,"opensAt":"0","closesAt":"0","is24hStore":true,"hasPetShop":true}'>
<div class="current-store">
<div class="tooltips-container"></div>
</div>
</div>
"""
root = BeautifulSoup(html, 'html.parser')
el = root.select_one('.js-current-store')
data_store = json.loads(el['data-store'], encoding='utf-8')
print(data_store)
# {'id': '0006', 'address': 'д. Старо-Паново, ш. Таллинское, д. 159, лит. А', 'cityKey': 'spb', 'cityName': 'Санкт-Петербург', 'type': 'hypermarket', 'lat': 59.807053, 'long': 30.162049, 'opensAt': '0', 'closesAt': '0', 'is24hStore': True, 'hasPetShop': True}
print(data_store['id'])
# 0006