Українська
Відкрити в Telegram

Гілка🟣 Selectolax. Парсинг HTML

3 повідомлення · –
P
🟣 Selectolax. Парсинг HTML selectolax одна з найшвидших бібліотек для парсингу html. Для пошуку тегів використовується css selectors. Вона швидша за BeautifulSoup4 і немає проблем з анотаціями типів. Давайте розглянемо задачу коли треба з html спарсити всі фрукти з такої html сторінки html_content = """ <html> <body> <section id="fruits"> <h2>Fruits</h2> <ul> <li class="item red-item">🍎 Apple</li> <li class="item">🍌 Banana</li> <li class="item"> 🍊 <span style="color: orange;">Orange</span> </li> </ul> </section> <section id="vegetables"> <h2>Vegetables</h2> <ul> <li class="item">🥕 Carrot</li> <li class="item" data-id="42">🥔 Potato</li> <li class="item" data-id="69">🍆 Eggplant</li> </ul> </section> <a href="https://t.me/Python_Materials_For_Beginners/170">Parsing</a> </body> </html> """ Для початку створимо об'єкт парсеру: from selectolax.lexbor import LexborHTMLParser, LexborNode parser = LexborHTMLParser(html_content) Шукаєм один тег по id container_el: LexborNode | None = parser.css_first("section#fruits") assert container_el, "Fruits container not found!" ⚠️ Якщо тег не знайдено метод парсеру вертає None тому завжди варто перевіряти цей момент щоб отримати помилку зі зрозумілим описом. Для цього можна використовувати assert або використати if і кидати Exception. В середині знайденого тегу шукаємо список по імені тегу: list_el = container_el.css_first("ul") assert list_el, "List of fruits not found!" Використовуємо пошук по імені класу тега щоб знайти всі елементи списку item_els: list[LexborNode] = list_el.css("li.item") for item_el in item_els: text = item_el.text(strip=True, separator="-").strip() print(text) 🔺 strip=True - видаляє зайві пробіли всередині тексту дочірніх тегів 🔺 separator - задає розділювач між текстами з різних дочірніх тегів 🔺 .strip() - обрізає пробіли (та переводи рядків) з початку і кінця рядка Вивід коду: 🍎 Apple 🍌 Banana 🍊-Orange- #selectolax #parsing #scraping
3 · 249 ·
    1. P
      Python Materials For Beginners Chat
      This is a Ukrainian chat. Do you have a specific question? How can I help?
PPython Materials For Beginners ChatPython Materials For Beginners Chat@python_code_ua · група · Технології
16учасників3пишуть за 30 днів
Стрічка майданчика Відкрити в Telegram

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо