(추가) 사이트별 크롤링 허용 확인
각 웹사이트에서 /robots.txt를 입력하면 각 사이트별 허용하는 범위가 나옵니다. (예시: 구글, 네이버 등)
Web Crawling vs Web Scraping
○ Wep Scraping : 웹 사이트 상에서 원하는 정보를 추출하는 방법
○ Wep Crawling : 웹 크롤러가 정해진 규칙에 따라 복수 개의 웹 페이지를 탐색하는 행위(= 웹 스파이더링)
크롤링 | 스크래핑 |
웹에서 페이지 및 링크 다운로드 (웹 기반으로 작동) |
웹을 포함한 다양한 소스에서 데이터 추출 (반드시 웹과 관련된 것은 아님) |
동일 콘텐츠가 여러 페이지에 업로드 된 것을 인식 못하므로 중복 제거는 필수적 |
특정 데이터를 추출하는 것이므로 중복 제거가 반드시 필요하지는 않음 |
웹 크롤링 주요 용도
○ 현재 다양한 분야에서 활용 중
○ 시장연구, 경쟁사 분석, SNS 트렌드 파악 등 다양한 분야에서 크롤링을 활용해 데이터를 수집하고 분석해 의사결정에 활용 중
○ e.g.1 E-commerce 사이트에서의 가격 정보 수집
● 온라인 쇼핑몰에서는 상품 가격 정보를 주기적으로 업데이트
● 크롤링을 통해 가격 변동을 실시간으로 파악하고, 경쟁사의 가격 전략을 분석하는데 활용 가능
● 마케팅 전략 수립에 중요한 역할
○ e.g.2 SNS 데이터 분석을 위한 크롤링
● 현재의 트렌드와 사회의 의견을 반영하는 중요한 공간
● 특정 주제, 키워드에 대한 사람들의 반응을 파악하기 위해 크롤링을 통한 데이터 수집이 이루어짐
● 수집된 데이터는 다양한 분석 방법을 통해 유용한 인사이트 제공
웹 크롤링은 합법?
○ 문제가 되는 크롤링
● 수집한 데이터의 상업적 이용
● 크롤링 과정에서 해당 서버 문제 야기
● 수집한 데이터가 사용자의 민감한 정보
● 사이트의 이용방침, 의사를 위반하는 경우(대부분 웹사이트는 robots.txt라는 파일로 크롤러의 접근 제어)
○ 국내 사례
● 잡코리아 - 사람인
- 원고 : 잡코리아 / 피고 : 사람인
- (주)사람인의 웹사이트에 잡코리아의 채용 정보를 크롤링하여 기재한 사건
- 피고는 원고에 2억 5천여만 원 지급
● 야놀자 - 여기 어때
- 원고 : 야놀자 / 피고 : 여기 어때
- 야놀자의 제휴 숙박업소, 목록, 주소, 정보, 가격 정보 등을 API를 통해 크롤링해 여기 어때 서비스를 무단 복제
웹 크롤링 종류
○ 크롤링을 하면서 만나는 페이지는 총 2개
○ 정지해 있는 static(정적)과 다른 한 가지는 움직이는 dynamic(동적)
구분 | 정적 수집 | 동적 수집 |
사용 패키지 | requests / urllib | selenium |
수집 커버리지 | 정적 웹페이지 | 정적/동적 웹페이지 |
수집 속도 | 빠름(별도 페이지 조작 필요 X) | 상대적으로 느림 |
파싱 패키지 | beautifulsoup | beautifulsoup / selenium |
○ 정적 웹 페이지 크롤링
● 서버(Web Server)에 미리 저장된 파일이 그대로 전달되는 웹 페이지
● 특정 웹페이지의 url 주소만 주소창에 입력하면 웹 브라우저로 HTML 정보를 마음대로 가져올 수 있음
● 장점
- 요청에 대한 파일만 전송하면 되기에 서버 간 통신이 거의 없고 속도가 빠름
- 단순한 문서들로만 이루어져 있어 어떤 호스팅 서버에서도 동작 가능하여 구축하는데 드는 비용이 적음
● 단점
- 저장된 정보만 보여주어 서비스가 한정적
- 추가, 수정, 삭제 등의 작업을 서버에서 직접 다운로드하여 편집 후 업로드로 수정해줘야 하여 관리가 어려움
○ 동적 웹 페이지 크롤링
● 입력, 클릭, 로그인 등 여러 이유로 동기/비동기 통신 형태로 서버와 데이터를 주고받아 동적으로 제공하는 웹 페이지
● 장점
- 다양한 정보를 조합해 웹 페이지를 제공하기에 서비스가 다양함
- 추가, 수정, 삭제 등의 작업이 가능하여 관리가 편함
● 단점
- 웹 페이지를 보여주기 위해 여러 번의 비동기 통신을 처리하기에 상대적으로 속도가 느림
○ 동기와 비동기 통신 방식 차이
● 동기식 : 요청 후 응답을 받아야 다음 동작이 이뤄짐
● 비동기식 : 요청을 보낸 후 응답과는 상관없이 동작하는 방식
○ 주요 크롤링 모듈(라이브러리)
● requests
- 파이썬 HTTP 통신에 사용되는 모듈
- 설치방법
pip install requests
● beautifulsoup
- HTML, XML, JSON 등 파일의 구문을 분석하는 모듈
- 설치방법
pip install beautifulsoup4
● selenium
- 웹 브라우저를 이용하는 자동화 프로그램
- 설치방법
pip install selenium
'Networks > Streamlit&Crawling' 카테고리의 다른 글
SK networks AI Camp - Web_streamlit(2) (2) | 2024.07.24 |
---|---|
SK networks AI Camp - Web_streamlit (8) | 2024.07.24 |
SK networks AI Camp - Crawling_Selenium (19) | 2024.07.23 |
SK networks AI Camp - 통신 프로토콜 (0) | 2024.07.23 |
SK networks AI Camp - Crawling(2) (2) | 2024.07.22 |