BeautifulSoupμ μ΄μ©ν HTML νμ±
μΉ ν¬λ‘€λ§μΌλ‘ μνλ μ 보λ₯Ό μ»κΈ° μν΄μλ, μμ§ν HTML λ°μ΄ν°μμ μνλ μ 보λ₯Ό μΆμΆν΄μΌ ν©λλ€.
BeautifulSoup
μ μ΄λ¬ν μμ
μ μ½κ² ν΄κ²°ν μ μλλ‘ λλ νμ΄μ¬ ν¨ν€μ§λ‘, requestsλ‘ κ°μ Έμ¨ HTML λ°μ΄ν°λ₯Ό νμ±
(Parsing, ꡬ문 λΆμμ ν΅ν λ°μ΄ν° μΆμΆ)νλ λ° μ¬μ©λ©λλ€.
HTML λ°μ΄ν°λ₯Ό νμ±νκ³ νμν μ 보 μΆμΆνκΈ°
BeautifulSoupμ μ¬μ©νλ©΄ HTML λ¬Έμλ₯Ό νμ΄μ¬ κ°μ²΄λ‘ λ³ννμ¬, λ¬Έμμ κ° μμλ₯Ό νμ΄μ¬ μ½λλ‘ κ°νΈνκ² νμνκ³ μ‘°μν μ μμ΅λλ€.
μ§κΈλΆν° BeautifulSoupμ μ¬μ©ν΄ HTML λ°μ΄ν°λ₯Ό νμ±
νκ³ , νμν μ 보λ₯Ό μΆμΆνλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€.
BeautifulSoupμΌλ‘ HTML νμ±νκΈ°
λ¨Όμ , μΉ νμ΄μ§μμ κ°μ Έμ¨ HTML λ°μ΄ν°λ₯Ό BeautifulSoup κ°μ²΄λ‘ λ³νν΄μΌ ν©λλ€.
μλμ κ°μ΄ requests
ν¨ν€μ§λ₯Ό μ¬μ©ν΄ HTML λ°μ΄ν°λ₯Ό κ°μ Έμ¨ ν, BeautifulSoup
κ°μ²΄λ₯Ό μμ±νμ¬ HTMLμ νμ±ν μ μμ΅λλ€.
import requests from bs4 import BeautifulSoup # μμ²ν URL url = 'https://www.codefriends.net' # GET μμ²μΌλ‘ HTML λ°μ΄ν° κ°μ Έμ€κΈ° response = requests.get(url) # BeautifulSoup κ°μ²΄ μμ± λ° HTML νμ± soup = BeautifulSoup(response.text, 'html.parser') # HTMLμ μ λͺ©(tag) μΆμΆνκΈ° title = soup.title.text # νμ΄μ§ μ λͺ© μΆλ ₯ print(f"Page Title: {title}")
μ μ½λλ soup
λ³μμ HTML λ°μ΄ν°λ₯Ό νμ±ν BeautifulSoup κ°μ²΄λ₯Ό μ μ₯νκ³ , soup.title.text
λ₯Ό ν΅ν΄ HTML λ¬Έμμ μ λͺ©μ μΆμΆν©λλ€.
soup.title
μ½λλ HTML λ¬Έμμ <title>
νκ·Έ λ΄μ©μ κ°μ Έμ€λ©°, .text
λ ν΄λΉ νκ·Έμ ν
μ€νΈλ₯Ό μΆμΆν©λλ€.
νμν μ 보 μΆμΆνκΈ°
μ 보λ₯Ό μΆμΆν λλ μλμ κ°μ΄ λ€μν λ°©λ²μ μ¬μ©ν μ μμ΅λλ€.
- νκ·Έ μ΄λ¦μΌλ‘ μμ μ°ΎκΈ°: HTML λ¬Έμμμ νΉμ νκ·Έλ₯Ό μ°Ύμ΅λλ€.
# λͺ¨λ <a> νκ·Έ μ°ΎκΈ° links = soup.find_all('a') # λͺ¨λ λ§ν¬ μΆλ ₯ for link in links: print(link.get('href'))
- ν΄λμ€ μ΄λ¦μΌλ‘ μμ μ°ΎκΈ°: νΉμ ν΄λμ€ μ΄λ¦μ κ°μ§ μμλ₯Ό μ°Ύμ μ μμ΅λλ€.
# class="example"μΈ λͺ¨λ <div> νκ·Έ μ°ΎκΈ° divs = soup.find_all('div', class_='example') # λͺ¨λ <div> νκ·Έμ ν μ€νΈ μΆλ ₯ for div in divs: print(div.text)
- IDλ‘ μμ μ°ΎκΈ°: νΉμ IDλ₯Ό κ°μ§ μμλ₯Ό μ°Ύμ μ μμ΅λλ€.
# id="main-content"μΈ μμ μ°ΎκΈ° main_content = soup.find(id='main-content') # μ νλ μμμ ν μ€νΈ μΆλ ₯ print(main_content.text)
μΉ νμ΄μ§μμ κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬ μΆμΆνκΈ°
μλλ μ€μ μΉ νμ΄μ§μμ κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬λ₯Ό μΆμΆνλ μμμ λλ€:
import requests from bs4 import BeautifulSoup # μΆμΆν μΉ νμ΄μ§ URL url = 'https://news.ycombinator.com/' # GET μμ²μΌλ‘ HTML λ°μ΄ν° κ°μ Έμ€κΈ° response = requests.get(url) # BeautifulSoup κ°μ²΄ μμ± λ° HTML νμ± soup = BeautifulSoup(response.text, 'html.parser') # λͺ¨λ κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬ μΆμΆ articles = soup.find_all('a') # κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬ μΆλ ₯ for article in articles: # κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬ μΆμΆ title = article.text # λ§ν¬ URL link = article.get('href') # μ λͺ©κ³Ό λ§ν¬ μΆλ ₯ print(f"Title: {title}, Link: {link}")
μ μ½λλ YCombinator λ΄μ€ νμ΄μ§μμ a νκ·Έλ₯Ό μ°Ύμ κΈ°μ¬ μ λͺ©κ³Ό λ§ν¬λ₯Ό μΆμΆν©λλ€.
μ΄μ²λΌ BeautifulSoupμ μ¬μ©νλ©΄ μΉ νμ΄μ§μ ꡬ쑰λ₯Ό λΆμν΄ μνλ λ°μ΄ν°λ₯Ό μ½κ² μΆμΆν μ μμ΅λλ€.
μλ λΉμΉΈμ λ€μ΄κ° κ°μ₯ μ μ ν λ©μλλ 무μμΌκΉμ?
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result