4. 웹 크롤링을 하는 이유
(1) 정보 수집
웹 크롤링을 통해 인터넷 상의 다양한 웹페이지에서 정보를 수집
(2) 경쟁력 확보
웹 크롤링을 통해 경쟁사의 제품, 가격, 서비스 등에 대한 정보를 수집하고 분석함으로써 경쟁력 확보
(3) 트렌드 파악
웹 크롤링으로 소셜 미디어, 뉴스 사이트 등에서 실시간으로 트렌드 파악 및 시장 동향 분석 가능
(4) 예측과 분석
수집한 웹 데이터를 활용하여 예측 모델링과 데이터 분석을 수행, 이를 통해 효과적인 전략 수립과 의사 결정 가능
6. 기본 작동 원리
(1) 웹페이지 다운로드
웹 크롤러는 먼저 타겟 웹페이지를 다운로드 한다.
이를 위해 HTTP 또는 HTTPS 프로토콜을 사용하여 웹 서버에 요청을 보내고,
응답으로 HTML, CSS, JavaScript 및 기타 리소스를 받는다.
(2) HTML 파싱
다운로드한 웹페이지의 HTML 코드를 파싱하여 웹페이지의 구조와 내용을 이해한다.
일반적으로 파싱에는 BeautifulSoup, lxml 등의 라이브러리가 사용된다.
7. 기본 작동 원리
(3) 데이터 추출
파싱된 HTML에서 필요한 데이터를 추출한다.
이를 위해 CSS 선택자 또는 XPath와 같은 쿼리 언어를 사용하여 원하는 요소를 선택한다.
(4) 데이터 처리 및 저장
추출한 데이터를 필요에 따라 가공, 정제 또는 분석하여 원하는 형식으로 가공한다.
가공 후 데이터베이스, CSV 파일, 엑셀 등에 저장하여 활용할 수 있다.
8. 웹 크롤링 도구
(1) 파이썬
간결하고 가독성이 좋으며, 다양한 라이브러리와 모듈을 지원
(2) BeautifulSoup
파이썬 기반의 웹 크롤링 라이브러리
HTML 및 XML 문서를 파싱하고 데이터를 추출하는 데 사용
직관적인 API와 강력한 파싱 기능을 제공하여 웹 데이터 추출을 단순화
9. 웹 크롤링 도구
(3) Scrapy
파이썬 기반의 웹 크롤링 프레임워크
웹 크롤링 및 스크래핑 작업을 자동화하기 위한 도구
강력한 스크래핑 능력, 분산 크롤링 지원, 자동화 기능 등을 제공하여 대규모 크롤링 작업에 적합
(4) 자동화 도구
동적 웹페이지나 JavaScript 기반의 기술을 다룰 때, 브라우저 자동화 도구인 Selenium 등을 활용
10. 웹 크롤링 도구
(5) CSS 선택자 & XPath
웹페이지에서 원하는 요소를 선택하기 위한 쿼리 언어
CSS 선택자는 HTML 요소를 선택하기 위해, XPath는 XML 문서에서 요소를 선택하기 위해 사용
(6) 프록시 서버
크롤링 작업을 수행할 때, IP 차단이나 액세스 제한을 피하기 위해 프록시 서버를 사용
프록시 서버는 요청을 중계하여 웹사이트에 액세스하는 IP 주소를 숨기고, 액세스 제한을 우회하는 데 도움
12. 로봇 배제 표준이란?
웹사이트 소유자가 크롤러 봇의 액세스를 제어하기 위한 규
약으로, 이 규약은 "robots.txt"라는 텍스트 파일을 통해 웹사
이트의 루트 디렉토리에 배치된다.
로봇 배제 표준의 목적은 웹사이트 소유자가 크롤러가 액세
스 가능한 영역과 액세스 금지 영역을 명시적으로 지정할 수
있도록 하는 것으로, 이를 통해 웹사이트의 데이터를 보호하
거나 특정 페이지를 제한하는 등의 액세스 제어를 수행할 수
있다.
13. Robots.txt 구성
(+) User-agent
크롤러의 이름 또는 식별자를 지정
(+) Disallow
해당 크롤러에 대해 액세스 금지할 경로를 지정
(+) Allow
특정 경로에 대해 액세스를 허용하는 경우 지정
(+) Crawl-delay
크롤러 액세스 사이의 지연 시간을 지정
15. 윤리적 고려 사항
웹 크롤링을 수행할 때에는 다음과 같은 윤리적 고려 사항을 염두에 두어야 한다.
이를 준수함으로써 웹사이트 소유자의 권리와 개인정보 보호를 존중하고,
적법하고 윤리적인 데이터 수집을 실천할 수 있다.
16. 윤리적 고려 사항
(+) 로봇 배제 표준 준수
웹사이트 소유자가 지정한 로봇 배제 표준(robots.txt)을 준수한다.
액세스 제한된 페이지나 디렉토리에 대해 크롤링을 시도하지 않아야 한다.
(+) 액세스 제한 사항 고려
웹사이트에서 명시적으로 액세스가 금지된 페이지나 디렉토리에 대해서는 크롤링을 시도하지 말아야 한다.
개인정보, 지적 재산권, 저작권 등의 보호를 위해 액세스 제한 사항을 준수한다.
(+) 저작권과 지적 재산권
크롤링된 데이터의 저작권과 지적 재산권을 존중해야 한다.
크롤링된 데이터를 상업적으로 사용하기 전에 저작권자의 동의를 받아야 하며, 출처와 저작자 정보를 명시한다.
17. 윤리적 고려 사항
(+) 개인 정보 보호
크롤링을 수행할 때에는 사용자의 개인정보를 보호해야 한다.
사용자의 동의 없이 개인정보를 수집하거나 불법적으로 사용하지 않는다.
(+) 서버 부하 최소화
크롤링 작업을 수행 시, 서버에 부하를 주지 않도록 주의한다.
일정한 요청 간격을 유지하고, 동시에 너무 많은 요청을 보내지 않도록 하는 등의 조치를 취한다.
(+) 데이터 사용 동의
크롤링된 데이터를 사용하기 전에 해당 데이터의 사용에 대한 동의를 얻는다.
데이터의 사용 목적을 명확히 밝히고, 필요한 경우 웹사이트 소유자와 협의 및 합의 과정을 거친다.
18. 법적 제약 사항 및 사례
웹 크롤링에는 법적 제약 사항이 존재한다.
법적 사항은 국가 및 지역에 따라 다를 수 있으므로,
법적 조언을 받거나 해당 국가의 법률을 확인하는 것이 중요하다.
19. 법적 제약 사항 및 사례
(-) 저작권
웹페이지의 내용은 저작권의 보호를 받는다.
상업적으로 활용하거나 웹사이트 소유자의 동의 없이 컨텐츠를 복제하는 것은 저작권 침해로 간주될 수 있다.
[실제 사례]
Google과 Oracle 간의 법정 소송에서, Google이 Oracle의 Java API를 크롤링하여 사용한 것이
저작권 침해로 인정되어 논란이 되었다.
(-) 개인 정보 보호
사용자의 개인정보를 수집하거나 처리할 때, 개인정보 보호 관련 법률을 준수해야 한다.
사용자의 동의 없이 개인정보를 수집하거나 불법적으로 처리하는 것은 개인정보 침해로 간주될 수 있다.
[실제 사례]
Facebook의 Cambridge Analytica 사건은 Facebook 사용자의 개인정보를 크롤링하여
불법적으로 수집하고 활용한 사례로 큰 논란이 되었다.
20. 법적 제약 사항 및 사례
(-) 서비스 약관 및 이용 정책
대부분의 웹사이트는 서비스 약관이나 이용 정책을 갖고 있다.
이를 위반하거나 약관에 명시된 제한사항을 무시하는 것은 법적 문제를 야기할 수 있다.
[실제 사례]
LinkedIn은 HiQ Labs가 LinkedIn 프로필 데이터를 크롤링하여 사용한 것을 고발한 적이 있다.
이 사례에서는 공개된 프로필 데이터의 크롤링이 합법적인 데이터 수집으로 인정되었으며,
웹사이트 소유자와 크롤러 사이의 법적 대립이 있었다.
(-) 악의적인 행위
웹 크롤링을 악용하여 스팸 메일 전송, 사기 행위, 서비스 거부 공격(DDoS) 등의 법적 금지 행위를 수행하는 것
[실제 사례]
네덜란드의 여행사가 Ryanair 웹사이트에서 티켓 가격 정보를 크롤링하여 자체 웹사이트에 게시한 후,
이를 이용해 Ryanair의 경쟁사인 Vliegtickets.nl을 비난하는 사례가 있었다.
22. 활용 사례
(1) 검색 엔진
크롤러는 인터넷 상의 웹페이지를 순회하고,
해당 페이지의 내용을 색인화하여 검색 결과를 제공하는 역할을 한다.
(2) 가격 비교 및 상품 추적
웹 크롤링은 온라인 상점에서 제품의 가격 정보를 수집하여 비교하거나,
특정 상품의 가격 변동을 추적하는 데에도 활용된다.
이를 통해 소비자는 가장 저렴한 가격을 찾을 수 있고, 판매자는 시장 동향을 파악할 수 있다.
23. 활용 사례
(3) 뉴스 및 미디어 모니터링
언론사나 뉴스 웹사이트에서 웹 크롤링을 통해 특정 주제나 키워드와 관련된 기사를 수집하고, 모니터링하는 데
에 사용한다. 이를 통해 기업은 브랜드 관련 소식이나 경쟁사 동향을 파악하고, 정부는 정책에 대한 반응과 공론화
상황을 파악할 수 있다.
(4) 소셜 미디어 분석
웹 크롤링은 소셜 미디어 플랫폼에서 사용자의 의견이나 감정을 분석하는 데에도 활용된다.
특정 주제, 제품, 이벤트에 대한 트윗이나 게시물을 수집하여 키워드 분석, 감성 분석, 트렌드 분석 등을 수행하고
이를 바탕으로 마케팅 전략을 수정할 수 있다.
(5) 연구 및 학문
연구나 학문적인 목적으로도 활용 가능하다.
예를 들어, 학술 논문 분석, 문헌 조사, 통계 데이터 수집 등에 웹 크롤링이 사용될 수 있다.