Guidelines

크둀링에 ν•„μš”ν•œ μ •κ·œ ν‘œν˜„μ‹

μ •κ·œ ν‘œν˜„μ‹(Regular Expression)은 λ¬Έμžμ—΄ λ°μ΄ν„°μ—μ„œ νŠΉμ • νŒ¨ν„΄μ„ 가진 μ •λ³΄λ§Œμ„ μΆ”μΆœν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€.

주둜 λ¬Έμžμ—΄ λ‚΄μ—μ„œ νŠΉμ •ν•œ νŒ¨ν„΄μ„ μ°Ύκ³  λŒ€μ²΄ν•˜κ±°λ‚˜, 일치 μ—¬λΆ€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€.

이번 μˆ˜μ—…μ—μ„œλŠ” μ •κ·œ ν‘œν˜„μ‹μ˜ 기본적인 κ°œλ…μ„ μ‚΄νŽ΄λ³΄κ³ , 이λ₯Ό ν™œμš©ν•΄ 크둀링 λ°μ΄ν„°μ—μ„œ ν•„μš”ν•œ 정보λ₯Ό ν•„ν„°λ§ν•˜λŠ” 방법을 μ†Œκ°œν•˜κ² μŠ΅λ‹ˆλ‹€.


μ •κ·œ ν‘œν˜„μ‹μ˜ κΈ°λ³Έ 문법

μ •κ·œ ν‘œν˜„μ‹μ€ μ—¬λŸ¬ 가지 κΈ°ν˜Έμ™€ 문자λ₯Ό μ‘°ν•©ν•˜μ—¬ νŠΉμ • νŒ¨ν„΄μ„ μ •μ˜ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, "^\d{3}-\d{3}-\d{4}$"λΌλŠ” μ •κ·œ ν‘œν˜„μ‹μ€ "123-456-7890"κ³Ό 같은 ν˜•μ‹μ˜ μ „ν™”λ²ˆν˜Έλ₯Ό μ°ΎλŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

μ •κ·œ ν‘œν˜„μ‹μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” κΈ°ν˜Έμ™€ λ¬ΈμžλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • . : μž„μ˜μ˜ ν•œ λ¬Έμžμ— λŒ€μ‘ν•©λ‹ˆλ‹€.

  • ^ : λ¬Έμžμ—΄μ˜ μ‹œμž‘μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

  • $ : λ¬Έμžμ—΄μ˜ 끝을 μ˜λ―Έν•©λ‹ˆλ‹€.

  • * : 0개 μ΄μƒμ˜ 문자λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

  • + : 1개 μ΄μƒμ˜ 문자λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

  • [] : λŒ€κ΄„ν˜Έ μ•ˆμ˜ 문자 쀑 ν•˜λ‚˜μ— λŒ€μ‘ν•©λ‹ˆλ‹€.

  • \d : λͺ¨λ“  μˆ«μžμ— λŒ€μ‘ν•©λ‹ˆλ‹€.

  • \w : λͺ¨λ“  μ•ŒνŒŒλ²³ λ¬Έμžμ™€ μˆ«μžμ— λŒ€μ‘ν•©λ‹ˆλ‹€.

  • \s : λͺ¨λ“  곡백 λ¬Έμžμ— λŒ€μ‘ν•©λ‹ˆλ‹€.


파이썬의 μ •κ·œ ν‘œν˜„μ‹ μ‚¬μš©ν•˜κΈ°

νŒŒμ΄μ¬μ—μ„œλŠ” re λͺ¨λ“ˆμ„ μ‚¬μš©ν•΄ μ •κ·œ ν‘œν˜„μ‹μ„ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

re λͺ¨λ“ˆμ€ λ¬Έμžμ—΄ 검색, 맀칭, λŒ€μ²΄ λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, λ³„λ„μ˜ μ„€μΉ˜ 없이 νŒŒμ΄μ¬μ—μ„œ 기본적으둜 μ œκ³΅ν•©λ‹ˆλ‹€.

νŒŒμ΄μ¬μ—μ„œ μ •κ·œ ν‘œν˜„μ‹ μ‚¬μš© μ˜ˆμ‹œ
import re # μ •κ·œ ν‘œν˜„μ‹ νŒ¨ν„΄ pattern = r'\d{3}-\d{3}-\d{4}' # 검색할 λ¬Έμžμ—΄ text = "고객 μ„Όν„° μ—°λ½μ²˜: 123-456-7890으둜 문의 μ£Όμ„Έμš”." # match에 νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄ μ €μž₯ match = re.search(pattern, text) # νŒ¨ν„΄ 일치 μ—¬λΆ€ 확인 if match: # 찾은 번호 좜λ ₯: 123-456-7890 print(f"찾은 번호: {match.group()}") else: print("번호λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")

이 μ½”λ“œλŠ” λ¬Έμžμ—΄μ—μ„œ μ „ν™”λ²ˆν˜Έ ν˜•μ‹μ˜ νŒ¨ν„΄μ„ μ°Ύμ•„ 좜λ ₯ν•©λ‹ˆλ‹€.


μ •κ·œ ν‘œν˜„μ‹μœΌλ‘œ HTML λ°μ΄ν„°μ˜ 이메일 μ£Όμ†Œ μΆ”μΆœν•˜κΈ°

νŠΉμ • μ›Ή νŽ˜μ΄μ§€μ˜ 이메일 μ£Όμ†Œλ§Œμ„ μΆ”μΆœν•˜κ³  싢을 λ•Œ, λ‹€μŒκ³Ό 같은 μ •κ·œ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ •κ·œ ν‘œν˜„μ‹μœΌλ‘œ 이메일 μ£Όμ†Œ μΆ”μΆœν•˜κΈ°
import re import requests from bs4 import BeautifulSoup # 크둀링할 URL url = 'https://www.codefriends.net/' # HTML κ°€μ Έμ˜€κΈ° response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # HTMLμ—μ„œ ν…μŠ€νŠΈ μΆ”μΆœ text = soup.get_text() # μ •κ·œ ν‘œν˜„μ‹ νŒ¨ν„΄: 이메일 μ£Όμ†Œ μ°ΎκΈ° email_pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' # 이메일 μ£Όμ†Œ μ°ΎκΈ° emails = re.findall(email_pattern, text) # μΆ”μΆœν•œ 이메일 μ£Όμ†Œ 좜λ ₯ for email in emails: print(f"찾은 이메일 μ£Όμ†Œ: {email}")

μœ„ μ½”λ“œλŠ” re.findall() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ μ •κ·œ ν‘œν˜„μ‹κ³Ό μΌμΉ˜ν•˜λŠ” λͺ¨λ“  이메일을 리슀트둜 λ°˜ν™˜λ°›κ³ , μ›Ή νŽ˜μ΄μ§€μ—μ„œ λͺ¨λ“  이메일 μ£Όμ†Œλ₯Ό μ°Ύμ•„ 좜λ ₯ν•©λ‹ˆλ‹€.

Mission
0 / 1

μ •κ·œ ν‘œν˜„μ‹μ—μ„œ \dλŠ” λͺ¨λ“  μˆ«μžμ— λŒ€μ‘ν•œλ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result