본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 웹 스크래핑하기: Selenium과 BeautifulSoup를 함께 사용하기

by 포탈메이커 2023. 7. 14.

파이썬으로 웹 스크래핑하기: Selenium과 BeautifulSoup를 함께 사용하기

많은 웹 사이트에서 데이터를 추출하기 위해 웹 스크래핑은 매우 유용한 기술이다. 특히 파이썬을 사용하면 웹 스크래핑을 더욱 빠르고 효과적으로 수행할 수 있다. 이번 포스팅에서는 Selenium과 BeautifulSoup를 함께 사용하여 파이썬으로 웹 스크래핑하는 방법에 대해 알아보겠다.

1. Selenium과 BeautifulSoup 소개

  • Selenium: 웹 브라우저를 자동화하기 위한 도구로, 사용자가 직접 브라우저를 제어하면서 웹 스크래핑을 할 수 있다.
  • BeautifulSoup: HTML과 XML 문서를 파싱하고, 트리 구조로 변환하여 데이터를 추출하기 위한 라이브러리다.

2. Selenium 설치하기

Selenium은 기본적으로 pip로 설치할 수 있다. 아래의 명령어로 설치해보자.

bash pip install selenium

또한, 웹 브라우저의 드라이버도 필요하다. 예를 들어, 크롬을 사용한다면 크롬 드라이버 다운로드 페이지에서 드라이버를 다운로드 받아야 한다.

3. BeautifulSoup 설치하기

BeautifulSoup 역시 pip로 설치할 수 있다. 아래의 명령어로 설치하자.

bash pip install beautifulsoup4

4. Selenium과 BeautifulSoup를 함께 사용하는 방법

4.1. Selenium으로 웹 페이지 열기

먼저, Selenium을 사용하여 웹 페이지를 열어보자. 다음은 크롬 브라우저를 열고 Google 홈페이지로 이동하는 예제 코드다.

```python from selenium import webdriver

크롬 드라이버 경로 지정

driver = webdriver.Chrome('./chromedriver')

웹 페이지 열기

driver.get('https://www.google.com') ```

4.2. BeautifulSoup으로 웹 페이지 추출하기

이제 Selenium으로 열은 웹 페이지의 HTML 소스를 BeautifulSoup을 사용하여 추출할 수 있다. 아래의 예제 코드를 확인해보자.

```python from bs4 import BeautifulSoup

페이지 소스 가져오기

html = driver.page_source

BeautifulSoup으로 변환

soup = BeautifulSoup(html, 'html.parser')

원하는 데이터 추출

title = soup.find('h1').get_text() ```

위의 코드에서 soup.find('h1').get_text()는 웹 페이지에서 h1 태그를 찾고 그 안에 있는 텍스트를 추출하는 코드이다. 그 외에도 다양한 방법으로 웹 페이지의 데이터를 추출할 수 있다.

5. 웹 스크래핑 예제

이제 Selenium과 BeautifulSoup를 함께 사용하여 웹 스크래핑하는 예제를 살펴보자. 예제로 네이버 뉴스 기사의 제목과 내용을 추출해보겠다.

```python from selenium import webdriver from bs4 import BeautifulSoup

크롬 드라이버 경로 지정

driver = webdriver.Chrome('./chromedriver')

네이버 뉴스 페이지 열기

driver.get('https://news.naver.com')

페이지 소스 가져오기

html = driver.page_source

BeautifulSoup으로 변환

soup = BeautifulSoup(html, 'html.parser')

기사 제목 추출

title = soup.find('div', class='newstitle').get_text()

기사 내용 추출

content = soup.find('div', class='newscontent').get_text()

print(f"기사 제목: {title}") print(f"기사 내용: {content}") ```

위의 예제 코드에서 find() 메소드로 원하는 요소를 찾고, get_text() 메소드로 요소의 텍스트를 추출한다.

6. 마치며

이번 포스팅에서는 Selenium과 BeautifulSoup를 함께 사용하여 파이썬으로 웹 스크래핑하는 방법에 대해 알아보았다. Selenium으로 웹 페이지를 연 후에 BeautifulSoup을 사용하여 필요한 데이터를 추출하는 방식은 매우 효과적이다. 웹 스크래핑을 통해 원하는 데이터를 추출하여 다양한 분야에서 활용할 수 있다. 앞으로도 웹 스크래핑 기술을 이용하여 다양한 프로젝트를 개발해보는 것을 추천한다.