BeautifulSoup μ£Όμ λ©μλμ νμ©λ²
μ΄λ² μμ
μμλ BeautifulSoup
μ μ£Όμ λ©μλμ κ·Έ νμ© λ°©λ²μ κ°λ¨ν μμ μ ν¨κ» μμλ³΄κ² μ΅λλ€.
νΉμ μμλ₯Ό μ°Ύλ find
μΉ νμ΄μ§μμ νΉμ μμλ₯Ό μ°Ύκ³ μΆλ€λ©΄, find()
λ©μλλ₯Ό μ¬μ©ν©λλ€.
μ΄ λ©μλλ 쑰건μ λ§λ 첫 λ²μ§Έ μμ
λ₯Ό λ°νν©λλ€.
from bs4 import BeautifulSoup html_doc = """ <html><body> <h1>μλ νμΈμ</h1> <p>λ¬Έλ¨ 1</p> <p>λ¬Έλ¨ 2</p> </body></html> """ # HTML νμ± soup = BeautifulSoup(html_doc, 'html.parser') # h1 νκ·Έ μ°ΎκΈ° h1_tag = soup.find('h1') # μΆλ ₯: μλ νμΈμ print(h1_tag.text)
μ μμ μμλ h1
νκ·Έλ₯Ό μ°Ύμ κ·Έ λ΄μ©μ μΆλ ₯ν©λλ€.
find()
λ νμ 첫 λ²μ§Έλ‘ μΌμΉνλ μμλ§ λ°ννλ―λ‘, μ¬λ¬ μμκ° μλ€λ©΄ 첫 λ²μ§Έ μμλ§ λ°νλ©λλ€.
μ¬λ¬ μμλ₯Ό ν λ²μ μ°Ύλ find_all
λ§μ½ 쑰건μ λ§λ λͺ¨λ μμλ₯Ό μ°Ύκ³ μΆλ€λ©΄ find_all()
λ©μλλ₯Ό μ¬μ©ν©λλ€.
μ΄ λ©μλλ 리μ€νΈ ννλ‘ κ²°κ³Όλ₯Ό λ°νν΄, μ¬λ¬ μμλ₯Ό ν λ²μ μ²λ¦¬ν©λλ€.
from bs4 import BeautifulSoup html_doc = """ <html><body> <p>λ¬Έλ¨ 1</p> <p>λ¬Έλ¨ 2</p> <p>λ¬Έλ¨ 3</p> </body></html> """ # HTML νμ± soup = BeautifulSoup(html_doc, 'html.parser') # λͺ¨λ p νκ·Έ μ°ΎκΈ° p_tags = soup.find_all('p') # λͺ¨λ p νκ·Έ μΆλ ₯ for p in p_tags: # μΆλ ₯: λ¬Έλ¨ 1, λ¬Έλ¨ 2, λ¬Έλ¨ 3 print(p.text)
μ΄ μ½λλ html_doc
λ³μμ λ΄κΈ΄ λ¬Έμμ΄μ λͺ¨λ p
νκ·Έλ₯Ό μ°Ύμ μΆλ ₯ν©λλ€.
p_tags
λ³μμ p νκ·Έμ κ°λ€μ΄ 리μ€νΈμ ννλ‘ ['λ¬Έλ¨ 1', 'λ¬Έλ¨ 2', 'λ¬Έλ¨ 3']
κ³Ό κ°μ΄ μ μ₯λμ΄ μμ΅λλ€.
μ΄λ κ² find_all()
μ μνλ μμλ€μ ν λ²μ μ°Ύμ λ μ μ©ν©λλ€.
CSS μ νμλ‘ μ°Ύλ select
CSS μ νμλ₯Ό νμ©ν΄ νΉμ μμλ₯Ό μ νν λλ select()
λ₯Ό μ¬μ©ν©λλ€.
from bs4 import BeautifulSoup html_doc = """ <html><body> <p>λ¬Έλ¨ 1</p> <div class="content"> <p>λ¬Έλ¨ 2</p> <p>λ¬Έλ¨ 3</p> </div> </body></html> """ # HTML νμ± soup = BeautifulSoup(html_doc, 'html.parser') # .content ν΄λμ€ μμ μλ λͺ¨λ p νκ·Έ μ°ΎκΈ° content_p_tags = soup.select('.content p') for p in content_p_tags: # μΆλ ₯: λ¬Έλ¨ 2, λ¬Έλ¨ 3 print(p.text)
μ΄ μ½λμμλ .content
ν΄λμ€ μμ μλ p
νκ·Έλ€μ λͺ¨λ μ νν΄ μΆλ ₯ν©λλ€.
첫 λ²μ§Έ μμλ§ μ ννλ select_one
select_one()
λ©μλλ select()
μ μ μ¬νμ§λ§, 쑰건μ λ§λ 첫 λ²μ§Έ μμλ§ λ°νν©λλ€.
from bs4 import BeautifulSoup html_doc = """ <html><body> <div class="content"> <p>λ¬Έλ¨ 1</p> <p>λ¬Έλ¨ 2</p> </div> </body></html> """ # HTML νμ± soup = BeautifulSoup(html_doc, 'html.parser') # .content ν΄λμ€ μμ 첫 λ²μ§Έ p νκ·Έ μ°ΎκΈ° first_p_tag = soup.select_one('.content p') # μΆλ ₯: λ¬Έλ¨ 1 print(first_p_tag.text)
BeautifulSoupμμ 첫 λ²μ§Έλ‘ μΌμΉνλ μμλ₯Ό μ°ΎκΈ° μν λ©μλλ 무μμΈκ°μ?
find_all()
select()
find()
select_one()
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result