파이썬의 BeautifulSoup은 웹 스크래핑에 유용한 도구입니다. HTML 또는 XML과 같은 웹 페이지를 파싱하고 데이터를 추출하는 데 사용됩니다. 그리고 정규 표현식은 특정 패턴을 찾거나 매치시키는 데 사용됩니다. 이 두 가지 도구를 함께 사용하면 웹페이지에서 원하는 데이터를 더 쉽게 추출할 수 있습니다.
BeautifulSoup 설치
먼저 BeautifulSoup을 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다.
pip install beautifulsoup4
BeautifulSoup 사용하기
BeautifulSoup을 사용하려면 먼저 웹 페이지의 HTML을 파싱해야 합니다. 이를 위해 BeautifulSoup
객체를 생성하고 웹 페이지의 HTML을 전달합니다. 다음은 간단한 예제입니다.
from bs4 import BeautifulSoup
import requests
# 웹 페이지 가져오기
url = 'http://example.com'
response = requests.get(url)
html = response.text
# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, 'html.parser')
웹 페이지를 파싱한 후, soup
객체를 사용하여 원하는 내용을 검색하거나 추출할 수 있습니다. 다음은 몇 가지 예시입니다.
# 태그 이름으로 검색하기
title = soup.find('title').text
print(title)
# 클래스 이름으로 검색하기
div = soup.find_all('div', class_='content')
for item in div:
print(item.text)
# CSS 선택자로 검색하기
links = soup.select('a[href]')
for link in links:
print(link['href'])
정규 표현식 사용하기
정규 표현식은 파이썬의 re
모듈을 통해 사용할 수 있습니다. 다음은 정규 표현식을 사용하여 문자열에서 패턴을 찾는 예제입니다.
import re
# 패턴 정의
pattern = r'\d+'
# 문자열에서 패턴 찾기
text = "Hello, my age is 20."
matches = re.findall(pattern, text)
print(matches)
위의 예제에서는 숫자 패턴(\d+
)을 정의하고, 주어진 문자열에서 해당 패턴을 찾아 출력합니다.
BeautifulSoup과 정규 표현식 함께 사용하기
BeautifulSoup과 정규 표현식을 함께 사용하면 웹 페이지에서 특정 패턴을 가진 데이터를 더욱 효율적으로 추출할 수 있습니다. 다음은 예제입니다.
import re
from bs4 import BeautifulSoup
import requests
# 웹 페이지 가져오기
url = 'http://example.com'
response = requests.get(url)
html = response.text
# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, 'html.parser')
# 특정 패턴을 가진 링크 찾기
pattern = r'https?://[\w./]+' # http 또는 https로 시작하고, 문자, 숫자, ., /로 구성된 패턴
links = soup.find_all('a', href=re.compile(pattern))
for link in links:
print(link['href'])
위의 예제에서는 정규 표현식을 사용하여 웹 페이지에서 http 또는 https로 시작하는 링크를 찾습니다.
마무리
이렇게 BeautifulSoup과 정규 표현식을 함께 사용하면 웹 스크래핑에서 원하는 데이터를 더욱 쉽게 추출할 수 있습니다. BeautifulSoup과 정규 표현식에 대해 더 자세히 알고 싶다면 공식 문서를 참조하시기 바랍니다.