Guidelines

μœ„ν‚€ν”Όλ””μ•„ λ¬Έμ„œ 크둀링

이 λ¬Έμ„œμ—μ„œλŠ” Python의 requests와 BeautifulSoup 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„ν‚€ν”Όλ””μ•„ λ¬Έμ„œμ˜ 제λͺ©κ³Ό 첫 번째 문단을 ν¬λ‘€λ§ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

Step 1

HTML κ°€μ Έμ˜€κΈ° 및 νŒŒμ‹±
response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser')

이 λΆ€λΆ„μ—μ„œλŠ” requests 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ 주어진 URLλ‘œλΆ€ν„° HTML λ‚΄μš©μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€. κ·Έ ν›„, BeautifulSoupλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°€μ Έμ˜¨ HTML을 νŒŒμ‹±ν•˜κ³ , νŒŒμ‹±λœ λ‚΄μš©μ„ soup 객체에 μ €μž₯ν•©λ‹ˆλ‹€. 이 객체λ₯Ό 톡해 HTML μš”μ†Œμ— μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Step 2

νŽ˜μ΄μ§€ 타이틀 μΆ”μΆœ
page_title = soup.find('title').text

soup.find('title')λ₯Ό 톡해 HTML λ¬Έμ„œμ˜ <title> νƒœκ·Έλ₯Ό μ°Ύκ³ , .text 속성을 μ‚¬μš©ν•˜μ—¬ νƒœκ·Έμ˜ ν…μŠ€νŠΈ λ‚΄μš©μ„ μΆ”μΆœν•©λ‹ˆλ‹€. μ΄λŠ” νŽ˜μ΄μ§€μ˜ 타이틀(제λͺ©)을 κ°€μ Έμ˜€λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.


Step 3

첫 번째 μœ νš¨ν•œ 문단 μΆ”μΆœ
first_valid_paragraph = None for paragraph in soup.find_all('p'): if 'mw-empty-elt' not in paragraph.get('class', []): first_valid_paragraph = paragraph.text.strip() break

λͺ¨λ“  <p> νƒœκ·Έλ₯Ό μˆœνšŒν•˜λ©΄μ„œ 'mw-empty-elt' 클래슀λ₯Ό 가지지 μ•ŠλŠ” 첫 번째 문단 μ°ΎμŠ΅λ‹ˆλ‹€. mw-empty-elt ν΄λž˜μŠ€λŠ” 빈 문단을 λ‚˜νƒ€λ‚΄λ©°, 이λ₯Ό κ±΄λ„ˆλ›°κ³  μ‹€μ œ λ‚΄μš©μ΄ μžˆλŠ” 첫 번째 문단을 μ°Ύμ•„λƒ…λ‹ˆλ‹€.


Step 4

κ²°κ³Ό 좜λ ₯
print(f"Page Title: {page_title}\n") if first_valid_paragraph: print(f"First Paragraph: {first_valid_paragraph}\n") else: print("No valid first paragraph found.\n")

λ§ˆμ§€λ§‰ λΆ€λΆ„μ—μ„œλŠ” μΆ”μΆœν•œ νŽ˜μ΄μ§€ 타이틀과 첫 번째 μœ νš¨ν•œ 문단을 좜λ ₯ν•©λ‹ˆλ‹€. μœ νš¨ν•œ 첫 번째 문단이 μžˆλŠ” 경우 κ·Έ λ‚΄μš©μ„, μ—†λŠ” 경우 "No valid first paragraph found." λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.


μ‹€μŠ΅

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

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result