🟠 Selectolax. Парсинг HTML. Частина 2.
🔺 Поєднанний пошук.
Пошук по CSS-селекторах дозволяє одразу поєднувати все в одному рядку запиту:
item_els = parser.css("section#fruits ul li.item")
for item_el in item_els:
text = item_el.text(strip=True, separator=" ").strip()
print(text)
❗️ Але я наполегливо не рекомендував би цим зловживати. Короткий запис — це добре, але у випадку помилки буде важко зрозуміти, з яким саме тегом проблема.
🔺 Пошук тега який має декілька класів
# <li class="item red-item"> ... </li>
red_item_el = parser.css_first("li.item.red-item")
assert red_item_el
print(red_item_el.text()) # 🍎 Apple
🔺 Атрибути тегу
# <a href=" ... ">Parsing</a>
link_el = parser.css_first("a")
assert link_el
url = link_el.attributes["href"]
print(url) # https://t.me/Python_Materials_For_Beginners/170
Для отримання атрибуту тегу :
▪️attributes – це read-only словник. Ти можеш з нього читати, але не змінювати напряму.
▪️ attrs – це mutable dict-like (звичайний словник), який можна змінювати.
🔺 Пошук по атрибуту:
data_els = parser.css("li.item[data-id]")
for data_el in data_els:
data_id = data_el.attributes["data-id"]
print(data_id) # 42 69
data_el = parser.css_first("li.item[data-id='42']")
assert data_el
print(data_el.html) # <li class="item" data-id="42"> ... Potato</li>
#selectolax #parsing #scraping
👍1
234 ·