크롤링에 필요한 정규 표현식
정규 표현식(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() 함수를 사용해 정규 표현식과 일치하는 모든 이메일을 리스트로 반환받고, 웹 페이지에서 모든 이메일 주소를 찾아 출력합니다.
이 챕터의 강의 · 웹 크롤링으로 스마트하게 데이터 수집하기
- 1. 반복적으로 데이터를 수집하는 웹 크롤링
- 2. 웹 크롤링을 시 유의해야 할 고려사항
- 3. 웹 크롤링을 위한 HTML 필수 지식
- 4. 웹 크롤링을 위한 CSS 필수 지식
- 5. 웹 크롤링을 위한 HTTP 필수 지식
- 6. requests 패키지로 웹 페이지 데이터 수집하기
- 7. BeautifulSoup을 이용한 HTML 파싱
- 8. BeautifulSoup 주요 메서드와 활용법
- 9. 크롤링에 필요한 정규 표현식
- 10. 위키피디아에서 원하는 정보 가져오기
- 11. 빈칸 채우기 퀴즈
- 12. JavaScript와 동적 웹 크롤링
- 13. 기본적인 Selenium 메서드와 활용법
- 14. 자주 사용하는 Selenium 메서드
- 15. 실무에 적용되는 Selenium 활용 예시
- 16. Selenium으로 미국 주가 지수 크롤링하기
- 17. 선택형 퀴즈
- 18. 코딩 퀴즈 - 웹 크롤링 실습
정규 표현식에서 \d는 모든 숫자에 대응한다.
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말