728x90
반응형

파이썬 (Python) 웹 스크래핑 (Web Scraping) 입문

  • Python을 사용한 웹 스크래핑(Web Scraping)은 데이터를 수집하기 위해 웹 페이지의 HTML을 분석하는 과정입니다.

  • 일반적으로 웹 스크래핑에 사용되는 주요 라이브러리는 Beautiful Soup, Requests, Selenium, 그리고 Scrapy 입니다.

  • 아래는 대표적인 웹 스크래핑 과정과 코드 예제입니다.


1. 라이브러리 설치 방법

  • 먼저 필요한 Beautiful Soup 라이브러리를 설치합니다.
pip install requests beautifulsoup4 lxml

2. Beautiful SoupRequests 를 사용한 기본 스크래핑

  • HTML 데이터를 가져와 분석하는 기본 예제입니다.

코드 예제:

import requests
from bs4 import BeautifulSoup

# 1. URL 설정
url = "https://example.com"

# 2. 웹 페이지 가져오기
response = requests.get(url)
if response.status_code == 200:  # HTTP 응답 확인
    print("페이지 가져오기 성공")

# 3. HTML 파싱
soup = BeautifulSoup(response.text, 'html.parser')

# 4. 원하는 데이터 추출 (예: 제목 태그 추출)
titles = soup.find_all('h1')  # 모든 <h1> 태그 찾기
for title in titles:
    print(title.text)

3. Selenium 을 사용한 동적 웹 페이지 스크래핑

  • SeleniumJavaScript로 렌더링되는 동적 페이지에서 데이터를 스크래핑할 때 유용합니다.

설치 방법:

pip install selenium

코드 예제:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# 1. Chrome WebDriver 설정
options = Options()
options.add_argument('--headless')  # 브라우저 창 숨기기
service = Service(executable_path='chromedriver')  # chromedriver 경로 설정
driver = webdriver.Chrome(service=service, options=options)

# 2. 페이지 로드
url = "https://example.com"
driver.get(url)

# 3. 요소 찾기 (예: 버튼, 텍스트 등)
elements = driver.find_elements(By.TAG_NAME, 'h1')
for element in elements:
    print(element.text)

# 4. 드라이버 종료
driver.quit()

4. 스크래핑 시 주의사항

  • robots.txt 파일 확인 : 웹사이트의 스크래핑 허용 여부를 확인하세요.

  • 과도한 요청 방지 : 요청 간에 딜레이를 추가해 서버에 과부하를 주지 않도록 합니다.

  • 법적 문제 : 데이터를 사용하는 경우 저작권 및 서비스 약관을 반드시 준수하세요.


5. 추가 도구

  • Scrapy : 대규모 크롤링에 적합한 프레임워크입니다.
  • XPath : HTML 요소를 정교하게 선택할 수 있습니다.
728x90
반응형

+ Recent posts