πŸ” Как ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ div с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? 🐍

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ div Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для парсинга HTML, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ BeautifulSoup ΠΈΠ»ΠΈ lxml. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° с использованиСм BeautifulSoup:

    from bs4 import BeautifulSoup

    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ HTML-ΠΊΠΎΠ΄Π°
    html = '''
    

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!

Π­Ρ‚ΠΎ содСрТимоС div.

''' # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° BeautifulSoup soup = BeautifulSoup(html, 'html.parser') # Найти div ΠΏΠΎ Π΅Π³ΠΎ ID ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС div = soup.find("div", {"id": "my-div"}) content = div.get_text() print(content)
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ BeautifulSoup, создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ BeautifulSoup ΠΈΠ· HTML-ΠΊΠΎΠ΄Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ div ΠΏΠΎ Π΅Π³ΠΎ ID с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° `find`. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ содСрТимоС div с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° `get_text` ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ lxml, Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

    from lxml import etree

    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ HTML-ΠΊΠΎΠ΄Π°
    html = '''
    

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!

Π­Ρ‚ΠΎ содСрТимоС div.

''' # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ElementTree tree = etree.HTML(html) # Найти div ΠΏΠΎ Π΅Π³ΠΎ ID ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС div = tree.xpath("//div[@id='my-div']") content = div[0].text print(content)
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ etree ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ lxml, создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ElementTree ΠΈΠ· HTML-ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ `xpath` для поиска div ΠΏΠΎ Π΅Π³ΠΎ ID. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ содСрТимоС div ΠΏΡƒΡ‚Π΅ΠΌ доступа ΠΊ тСкстовому содСрТимому элСмСнта. Напомню, Ρ‡Ρ‚ΠΎ для использования этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ установка ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ pip. Π£Π΄Π°Ρ‡ΠΈ Π² распарсивании div с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python!

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ div Π² Python?

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π²Π΅Π±-страницами ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π² Ρ‚Π΅Π³ΠΈ <div>, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Beautiful Soup. Beautiful Soup прСдоставляСт простой ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ для Π°Π½Π°Π»ΠΈΠ·Π° HTML-ΠΊΠΎΠ΄Π° ΠΈ извлСчСния Π½ΡƒΠΆΠ½Ρ‹Ρ… элСмСнтов.

Установка Beautiful Soup

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ <div> Ρ‚Π΅Π³ΠΈ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Beautiful Soup. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

        pip install beautifulsoup4
    

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ HTML-ΠΊΠΎΠ΄:

        
<html>
    <body>
        <div class="content">
            <h1>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!</h1>
            <p>Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Beautiful Soup.</p>
        </div>
    </body>
</html>
        
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ парсит этот HTML-ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ содСрТимоС <div>:

        
from bs4 import BeautifulSoup

html_code = '''

    
        

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Beautiful Soup.

''' soup = BeautifulSoup(html_code, 'html.parser') div_element = soup.find('div', class_='content') print(div_element.get_text())

Π§Ρ‚ΠΎ происходит Π² этом ΠΊΠΎΠ΄Π΅:

  1. ΠœΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ BeautifulSoup ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ bs4
  2. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ html_code, которая содСрТит HTML-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ
  3. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Beautiful Soup, пСрСдавая Π² Π½Π΅Π³ΠΎ html_code ΠΈ указывая, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ парсСр HTML
  4. ΠœΡ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ find, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт <div> с классом content
  5. НаконСц, ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкстовоС содСрТимоС этого элСмСнта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° get_text()

ПослС запуска этого ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

        ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€! Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Beautiful Soup.
    

Π Π°Π±ΠΎΡ‚Π° с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали класс content для поиска Ρ‚Π΅Π³Π° <div>. Однако, BeautifulSoup прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ‚Π΅Π³ΠΎΠ².

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ find для поиска Ρ‚Π΅Π³Π° с Π»ΡŽΠ±Ρ‹ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, soup.find('div', id='myid') Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚Π΅Π³ <div> с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ id, Ρ€Π°Π²Π½Ρ‹ΠΌ myid.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Beautiful Soup Π² Python позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈ эффСктивно ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ HTML-ΠΊΠΎΠ΄, извлСкая Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ познакомились с основами парсинга <div> Ρ‚Π΅Π³ΠΎΠ² ΠΈ рассмотрСли ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования. НадСюсь, эта информация Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для вас ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…!

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π£Π΄Π°Ρ‡ΠΈ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Python ΠΈ программирования Π² Ρ†Π΅Π»ΠΎΠΌ! πŸš€

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π‘ΠΊΡ€Π΅ΠΉΠΏΠΈΠ½Π³ сайтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Beautifulsoup ΠΈ Requests Π½Π° Python

3.2 Π—Π²Π΅Π·Π΄Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

13.1 Π—Π²Π΅Π·Π΄Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ 1. "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”₯ Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Python: Π»Π΅Π³ΠΊΠΈΠΉ способ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²!

πŸ”‘ Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΄ΠΎΠΌ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΠ»ΠΈ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? πŸ€”πŸ”

πŸ” Как ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ div с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? 🐍

πŸ› οΈ Как Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² Python: пошаговая инструкция

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π½Π° ΠΌΠ°ΠΊΠ±ΡƒΠΊ: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ“š

πŸš€ Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Python 3: 7 эффСктивных способов 🐍