web scrapping
# 개요
특정 [[웹 사이트]]나 페이지에서 필요한 [[자료|데이터]]를 자동으로 추출해 내는 것을 의미한다. 일반적으로 이를 실행하는 [[봇]]을 이용하거나, [[프로그래밍 언어]]에서 제공하는 [[라이브러리]]ㄷ를 이용하여 어렵지 안게 구현할 수 있다.
### 장점
- 대량의 데이터를 수집하고 분석할 수 있다.
- 수작업으로 수행하는 것보다 효율적이다.
- 경쟁 업체의 웹사이트를 모니터링하고 정보를 수집할 수 있다.
- 자동화된 데이터 수집을 통해 일일이 방문해서 정보를 찾아보는 것보다 더 빠르다.
### 단점
- 웹사이트나 페이지의 서버 부하를 일으킬 수 있다.
- 웹사이트나 페이지의 소유자에게 불편을 끼칠 수 있다.
- 웹사이트나 페이지의 디자인이나 레이아웃이 변경되는 경우 스크래핑 코드도 변경해야 할 수 있다.
- 웹사이트나 페이지가 로그인이 필요한 경우, 인증 등의 문제가 발생할 수 있다.
### 응용 분야
웹 스크래핑은 다양한 분야에서 응용될 수 있다. 예를 들어, 마케팅 분야에서는 경쟁 업체의 제품 가격 정보나 판매량 정보를 수집하여 분석할 수 있다. 또한 정보 수집 분야에서는 뉴스, 블로그, 포럼 등에서 특정 키워드와 관련된 정보를 자동으로 수집하여 분류하거나 요약할 수 있다. 또한 금융 분야에서는 주식 시세 정보나 환율 정보를 수집하여 실시간으로 분석할 수 있다.
### 예제 코드
다음은 [[Python]]으로 작성된 예제 코드이다.
```python
import requests
from bs4 import BeautifulSoup
url = '<https://www.example.com>' # 스크래핑할 웹사이트 주소
response = requests.get(url) # get 요청 보내기
soup = BeautifulSoup(response.text, 'html.parser') # 파서로 html 문서를 분석
# 필요한 정보 추출하기
title = soup.find('title').text
paragraphs = [p.text for p in soup.find_all('p')]
# 추출한 정보 출력
print(title)
print(paragraphs)
```