프로그래밍/Python

[Python 강의] 15강 - 웹 스크래핑 기법

월횽 2024. 10. 18. 06:30
728x90
반응형
SMALL

안녕하세요! 그레이 해커 월횽입니다. 오늘은 Python을 활용한 웹 스크래핑 기법에 대해 알아보겠습니다. 웹 스크래핑은 웹 사이트에서 자동으로 데이터를 수집하는 방법으로, 많은 데이터를 효율적으로 수집할 수 있는 유용한 도구입니다. 이 강의에서는 Python의 BeautifulSoup, Requests, Selenium 등의 도구를 활용한 웹 스크래핑 기법을 소개하겠습니다.

 

 

1. 웹 스크래핑의 기본 개념

웹 스크래핑은 웹 페이지에서 HTML 정보를 추출하여 필요한 데이터를 얻는 과정입니다. 스크래핑을 시작하기 전에, 스크래핑이 법적으로 허용되는지 확인하는 것이 중요합니다. 사이트의 robots.txt 파일에서 스크래핑 가능 여부를 확인할 수 있습니다.

 

웹 스크래핑을 위한 주요 라이브러리

· Requests: 웹 페이지로부터 데이터를 요청할 때 사용.
· BeautifulSoup: HTML이나 XML 데이터를 파싱하고 처리할 때 사용.
· Selenium: 동적 웹 페이지(자바스크립트를 통해 콘텐츠가 로드되는 페이지)를 스크래핑할 때 사용.

 

 

2. Requests 라이브러리로 데이터 요청하기

Requests는 Python에서 HTTP 요청을 보내고 웹 페이지의 응답을 받아오는 라이브러리입니다. 간단한 GET 요청을 보내서 웹 페이지의 HTML을 받아올 수 있습니다.

 

Requests 설치

pip install requests

 

반응형

웹 페이지 요청하기 예시

import requests

# 웹 페이지 요청
response = requests.get('https://example.com')

# 상태 코드 확인 (200이면 정상 응답)
print(response.status_code)

# HTML 내용 출력
print(response.text)

 

 

 

3. BeautifulSoup으로 HTML 파싱

BeautifulSoup는 HTML 구조를 파싱하여 원하는 데이터를 쉽게 추출할 수 있는 도구입니다. 웹 페이지에서 특정 요소를 추출할 때 유용합니다.

 

BeautifulSoup 설치

pip install beautifulsoup4

 

728x90

웹 페이지에서 특정 데이터 추출 예시

from bs4 import BeautifulSoup
import requests

# 웹 페이지 요청
response = requests.get('https://example.com')
html = response.text

# BeautifulSoup으로 HTML 파싱
soup = BeautifulSoup(html, 'html.parser')

# 제목 태그 추출
title = soup.find('h1').text
print(title)

 

 

 

여러 요소 추출 예시

# 모든 링크 추출
links = soup.find_all('a')
for link in links:
    print(link.get('href'))

 

 

 

4. Selenium으로 동적 웹 페이지 스크래핑

Selenium은 자바스크립트로 동적으로 로드되는 웹 페이지에서 데이터를 스크래핑할 때 사용됩니다. 브라우저를 자동으로 제어하여 사용자 행동을 흉내낼 수 있기 때문에, 로그인이 필요한 웹사이트나 동적으로 변경되는 콘텐츠를 스크래핑할 때 유용합니다.

 

Selenium 설치

pip install selenium

 

SMALL

Selenium으로 웹 페이지 제어 예시

from selenium import webdriver

# 크롬 브라우저 열기 (드라이버 필요)
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get('https://example.com')

# 특정 요소 찾기
element = driver.find_element_by_tag_name('h1')
print(element.text)

# 브라우저 닫기
driver.quit()

 

 

5. 웹 스크래핑 모범 사례

· robots.txt 파일 확인: 스크래핑이 허용된 페이지인지 확인.
· 적절한 요청 간격: 서버에 부담을 주지 않도록 요청 간격을 설정.
· 캡차(CAPTCHA) 우회: Selenium을 사용하거나, 일부 서비스는 CAPTCHA 문제를 제시할 수 있습니다.
· 정기적으로 데이터를 가져올 때: 데이터를 정기적으로 업데이트해야 한다면 스크래핑 작업을 스케줄러와 함께 사용.

 

6. 웹 스크래핑 정리

· Requests: 간단한 웹 페이지 요청 및 HTML 가져오기.
· BeautifulSoup: HTML 데이터를 파싱하고 원하는 요소를 추출.
· Selenium: 자바스크립트로 동적으로 로드되는 웹 페이지 처리.
· 법적 이슈: 웹 스크래핑은 허가된 범위 내에서 수행하는 것이 중요.

 

다음 시간에는 Python을 활용한 데이터베이스 관리 및 연결에 대해 알아보겠습니다!

 

 

 

 

 

- 이전 수업 목록

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST