때로는 웹 페이지의 특정 요소를 속성 기반으로 필터링해서 가져와야 할 때가 있습니다. BeautifulSoup은 파이썬에서 웹 스크래핑을 쉽게 할 수 있도록 도와주는 라이브러리입니다. 이번 포스트에서는 BeautifulSoup을 사용하여 속성 기반 필터링을 어떻게 할 수 있는지 알아보겠습니다.
필요한 라이브러리 설치하기
먼저 BeautifulSoup을 사용하기 위해 필요한 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.
pip install beautifulsoup4
웹 페이지 가져오기
먼저 웹 페이지를 가져와서 BeautifulSoup 객체로 변환해야 합니다. requests
라이브러리를 사용하여 웹 페이지를 가져올 수 있습니다. 아래는 예시입니다.
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
속성 기반 필터링
이제 가져온 웹 페이지에서 특정 속성 값을 가진 요소들을 필터링하여 가져올 수 있습니다. 예를 들어, class
속성 값이 “content”인 모든 요소를 가져오고 싶다면 다음과 같이 작성할 수 있습니다.
elements = soup.find_all(class_="content")
for element in elements:
print(element.text)
위 코드에서 find_all
메소드를 이용하여 웹 페이지에서 class
속성 값이 “content”인 모든 요소를 가져옵니다. 그리고 각 요소의 텍스트를 출력합니다.
또 다른 예시로, 속성 값으로 일부 단어를 포함하는 요소들을 가져오고 싶다면 정규 표현식을 사용할 수 있습니다. 다음은 href
속성 값에 “example”이 포함된 모든 링크를 가져오는 예시입니다.
import re
links = soup.find_all(href=re.compile("example"))
for link in links:
print(link.get("href"))
위 코드에서 find_all
메소드의 href
인자에서 정규 표현식을 사용하여 “example”을 포함하는 모든 링크를 가져옵니다. 그리고 각 링크의 href
속성 값을 출력합니다.
결론
이렇게 BeautifulSoup을 사용하여 속성 기반 필터링을 할 수 있습니다. 위의 예시들을 참고하여 웹 페이지에서 원하는 요소들을 속성 값을 기반으로 쉽게 가져올 수 있습니다. BeautifulSoup은 웹 스크래핑 작업을 더욱 편리하게 만들어주는 강력한 도구입니다.
참고 자료: