μ€μ²©λ HTML μμ λ€λ£¨κΈ°
HTML μμκ° μ€μ²©λμλ€λ κ²μ μμκ° λ€λ₯Έ μμ μμ ν¬ν¨λμ΄ μλ€λ κ²μ μλ―Έν©λλ€.
<div> <p>First paragraph.</p> <p>Second paragraph.</p> </div>
μμ μμ μμ <div>
μμ μμ λ κ°μ <p>
μμκ° μ€μ²©λμ΄ μμ΅λλ€.
μ΄λ° μμλ€μ λ€λ£¨λ κ²μ μΉ ν¬λ‘€λ§μμ μ€μν κΈ°μ μ λλ€.
μ€μ²©λ μμ νμ
-
λΆλͺ¨μ μμ κ΄κ³ μ΄ν΄
-
HTML μμλ€μ λΆλͺ¨-μμ κ΄κ³λ₯Ό κ°μ§ μ μμ΅λλ€.
-
μλ₯Ό λ€μ΄,
<div>
μμ μλ<p>
λ<div>
μ μμ μμμ λλ€.
-
-
νΉμ κ²½λ‘μ μμ μ°ΎκΈ°
-
find()
λλfind_all()
μ μ¬μ©νμ¬ νΉμ κ²½λ‘μ μλ μμλ₯Ό μ°Ύμ΅λλ€. -
μ:
soup.find('div').find('p')
λ 첫 λ²μ§Έ<div>
μμ 첫 λ²μ§Έ<p>
λ₯Ό μ°Ύμ΅λλ€.
-
μμ : μ€μ²©λ μμ μΆμΆ
html_doc = """ <div> <p class="inner-text"> First paragraph. <span>Text within a span</span> </p> <p class="inner-text">Second paragraph.</p> </div> """ soup = BeautifulSoup(html_doc, 'html.parser') # 첫 λ²μ§Έ div λ΄μ λͺ¨λ p νκ·Έ μΆμΆ for p in soup.find('div').find_all('p'): print(p.text)
μμ±μ νμ©ν μΆμΆ
-
νκ·Έμ ν΄λμ€, ID, κΈ°ν μμ±μ μ¬μ©νμ¬ νΉμ μμλ₯Ό μΆμΆν©λλ€.
-
μ:
soup.find_all('a', class_='external_link')
λ ν΄λμ€κ° 'external_link'μΈ λͺ¨λ<a>
νκ·Έλ₯Ό μ°Ύμ΅λλ€.
CSS μ νμ μ¬μ©
-
BeautifulSoupμμλ
select()
λ©μλλ₯Ό μ¬μ©νμ¬ CSS μ νμλ₯Ό νμ©ν μ μμ΅λλ€. -
μ:
soup.select('div.content > p.paragraph')
λ ν΄λμ€κ° 'content'μΈ<div>
μ μ§μ μμμΈ ν΄λμ€κ° 'paragraph'μΈ<p>
λ₯Ό μ°Ύμ΅λλ€.
μμ : 볡μ‘ν ꡬ쑰μ λ°μ΄ν° μΆμΆ
html_doc = """ <div class="content"> <p class="paragraph">First paragraph in content.</p> <div class="inner-content"> <p>Inner paragraph.</p> </div> </div> """ soup = BeautifulSoup(html_doc, 'html.parser') # ν΄λμ€κ° 'content'μΈ div λ΄μ λͺ¨λ p νκ·Έ μΆμΆ content_paragraphs = soup.select('div.content p') for p in content_paragraphs: print(p.text)
μ€μ΅
νλ©΄ μ€λ₯Έμͺ½ μ½λ μ€ν
λ²νΌμ λλ₯΄κ³ , ν¬λ‘€λ§ κ²°κ³Όλ₯Ό νμΈνκ±°λ μ½λλ₯Ό μμ ν΄ λ³΄μΈμ!
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result