Networks/Streamlit&Crawling

SK networks AI Camp - Crawling

코딩하는 Español되기 2024. 7. 29. 19:16

(추가) 사이트별 크롤링 허용 확인

각 웹사이트에서 /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