728x90
반응형
-
Python
을 사용한 웹 스크래핑(Web Scraping
)은 데이터를 수집하기 위해 웹 페이지의HTML
을 분석하는 과정입니다. -
일반적으로 웹 스크래핑에 사용되는 주요 라이브러리는
Beautiful Soup
,Requests
,Selenium
, 그리고Scrapy
입니다. -
아래는 대표적인 웹 스크래핑 과정과 코드 예제입니다.
- 먼저 필요한
Beautiful Soup
라이브러리를 설치합니다.
pip install requests beautifulsoup4 lxml
2. Beautiful Soup 과 Requests 를 사용한 기본 스크래핑
- 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 을 사용한 동적 웹 페이지 스크래핑
Selenium
은JavaScript
로 렌더링되는 동적 페이지에서 데이터를 스크래핑할 때 유용합니다.
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()
-
robots.txt 파일 확인 : 웹사이트의 스크래핑 허용 여부를 확인하세요.
-
과도한 요청 방지 : 요청 간에 딜레이를 추가해 서버에 과부하를 주지 않도록 합니다.
-
법적 문제 : 데이터를 사용하는 경우 저작권 및 서비스 약관을 반드시 준수하세요.
- Scrapy : 대규모 크롤링에 적합한 프레임워크입니다.
- XPath : HTML 요소를 정교하게 선택할 수 있습니다.
728x90
반응형
'Python' 카테고리의 다른 글
자연어 요구사항으로 Google Protobuf 파일 자동 생성하기: OpenAI API 활용 및 설계 이해 (0) | 2024.12.03 |
---|---|
파이썬(Python) 데이터 처리 입문 (1) | 2024.11.28 |
골드버그 장치: 의미 없는 코드의 향연 (0) | 2024.11.20 |
python glob (0) | 2024.11.19 |
Python 파일 작성 시 UTF-8 주석을 자동으로 추가하는 방법 (0) | 2024.11.16 |