Guidelines

BeautifulSoupλž€?

BeautifulSoup은 νŒŒμ΄μ¬μ—μ„œ μ›Ή 크둀링을 μ‰½κ²Œ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 라이브러리둜, HTML νŒŒμΌμ—μ„œ 데이터λ₯Ό μΆ”μΆœν•˜κ³  νŒŒμ‹±ν•©λ‹ˆλ‹€.

νŒŒμ‹±(parsing)은 μ›ΉνŽ˜μ΄μ§€μ˜ HTML λ¬Έμ„œλ₯Ό λΆ„μ„ν•˜μ—¬ μ›ν•˜λŠ” 데이터λ₯Ό μΆ”μΆœν•˜λŠ” 과정을 λœ»ν•©λ‹ˆλ‹€. BeautifulSoup은 μ΄λŸ¬ν•œ νŒŒμ‹± μž‘μ—…μ„ μ‰½κ²Œ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€.


BeautifulSoup의 κΈ°λŠ₯κ³Ό νŠΉμ§•

  1. λ‹€μ–‘ν•œ νŒŒμ„œ 지원

    • BeautifulSoup은 HTML/XML λ¬Έμ„œλ₯Ό νŒŒμ‹±ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ μ’…λ₯˜μ˜ νŒŒμ„œ(parser)λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

    • κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” νŒŒμ„œλŠ” html.parser(ν‘œμ€€ 파이썬 라이브러리)와 lxmlμž…λ‹ˆλ‹€.

  2. κ°„νŽΈν•œ 데이터 μΆ”μΆœ

    • νŠΉμ • νƒœκ·Έ, ID, 클래슀 등을 μ‰½κ²Œ 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • ν…μŠ€νŠΈ, 속성 κ°’ λ“± μ›ΉνŽ˜μ΄μ§€μ˜ λ‹€μ–‘ν•œ μš”μ†Œλ“€μ„ 효과적으둜 μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  3. λ³΅μž‘ν•œ HTML ꡬ쑰 닀루기

    • μ€‘μ²©λœ νƒœκ·Έλ‚˜ λ³΅μž‘ν•œ HTML ꡬ쑰도 μ‰½κ²Œ νƒμƒ‰ν•˜κ³ , ν•„μš”ν•œ 데이터λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    • νƒœκ·Έμ˜ 계측적 관계λ₯Ό ν™œμš©ν•˜μ—¬ μ •ν™•ν•œ 데이터 μœ„μΉ˜λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

  4. μœ μ—°ν•œ 검색 방법

    • CSS μ„ νƒμž, μ •κ·œ ν‘œν˜„μ‹ λ“± λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ 데이터λ₯Ό 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • 볡수의 쑰건을 κ²°ν•©ν•˜μ—¬ νŠΉμ • νŒ¨ν„΄μ„ 가진 데이터λ₯Ό μ°ΎλŠ” 것도 κ°€λŠ₯ν•©λ‹ˆλ‹€.


μ‚¬μš©λ²•

BeautifulSoup 라이브러리 μ‚¬μš© 예제
from bs4 import BeautifulSoup # HTML λ¬Έμ„œ μ˜ˆμ‹œ html_doc = """ <html> <head> <title>The Codefriends' story</title> </head> <body> <p class="title"><b>The Codefriends' story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> </body> </html> """ # BeautifulSoup 객체 생성 soup = BeautifulSoup(html_doc, 'html.parser') # HTML title νƒœκ·Έ λ‚΄μš© μΆ”μΆœ title = soup.title.text print('Title:', title) # κ²°κ³Ό: The Codefriends' story print('-' * 10) # 'a' νƒœκ·Έμ˜ href 속성 κ°’ μΆ”μΆœ for link in soup.find_all('a'): print(link.get('href'))

μ‹€μŠ΅

ν™”λ©΄ 였λ₯Έμͺ½ μ½”λ“œ μ‹€ν–‰ λ²„νŠΌμ„ λˆ„λ₯΄κ³ , 크둀링 κ²°κ³Όλ₯Ό ν™•μΈν•˜κ±°λ‚˜ μ½”λ“œλ₯Ό μˆ˜μ •ν•΄ λ³΄μ„Έμš”!

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result