PPT에 대한 설명을 블로그에 따로 적습니다.
1. 크롤링이란?
- 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여, 검색 대상의 색인으로 포함시키는 기술.(네이버 IT용어사전)
- 특히 웹에서 데이터를 긁어오는 '웹 크롤러'가 하는 작업을 '웹 크롤링/ 스파이더링'라고 한다.
- 멀티스레드를 이용해 웹과 HTTP 통신라고 Queue 형태의 자료구조를 이용해 아키텍처를 구현했다. 위 그림은 전문적인 크롤링 아키텍처이다.
2. 크롤링하는 법
- 인터넷을 통해 데이터를 주고 받을 때 프로토콜이라는 규약에 따라 데이터를 교환한다.
- 웹은 HTTP라는 프로토콜에 따라 데이터를 주고 받는다.
- 데이터는 웹상 어딘가에 있고, 사용자는 HTTP 프로토콜을 통해 데이터를 가져올 수 있다.
- 인터넷은 컴퓨터들 사이의 TCP/IP이라는 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크이며, 물리적으로는 해저케이블로 연결되어 있다.
- TCP/IP 기반으로 구동되는 많은 Application 프로토콜에 HTTP, HTTPS가 있다.
- 웹은 통신 규약으로 HTTP를 사용하는데, HTTP는 요청(Request)하고, 응답(Response)하는 서버/클라이언트 모델을 따른다.
- API는 다른 여러 애플리케이션 사이에 간편한 인터페이스를 제공한다.
방법 1
- 파이썬 크롤링 라이브러리 urllib의 기능은 '웹페이지 다운로드', '웹페이지 분석하기'가 있다.
- 자세한 내용은 F20-10번 노드를 참고해주시면 된다.
방법 2
- 파이썬 라이브러리 BeautifulSoup, Requests를 사용하는 방법도 있다.
- 자세한 내용은 F20-10번 노드를 참고해주시면 된다.
방법 3
- 웹앱을 테스트하는 웹 프레임워크인 셀레니움을 사용한다.
- webdriver의 API를 통해 브라우저를 제어하기 때문에 자바스크립트에 의해 동적으로 생성되는 사이트 데이터도 크롤링 할 수 있다.
- 자세한 내용은 F20-13번 노드를 참고해주시면 된다.
3. 요즘 크롤링에 대한 말들
웹 페이지 몇 개 긁는 건 '크롤러'가 아니다
- '웹 크롤러 좀 그만 만들어라'라는 글을 보면 API, BeautifulSoup4을 이용한 CSS 셀렉팅를 가지고 크롤링을 하는 것은 진정한 크롤링이 아니며, http request에 불과하다고 말하고 있다. --> API가 없어서 크롤링을 못한다면 알고리즘 수업부터 다시 듣길 바란다고 한다.
robots.txt 윤리
- 위 블로그에서 'robots.txt 윤리'에 대해서도 말하고 있다.
- 'robots.txt 파일은 크롤러가 사이트에 요청할수 있는 페이지, 파일과 요청할 수 없는 페이지, 파일을 검색엔진 크롤러에게 알려줄 수 있는 방법이다.
- 웹사이트 검색에서 로봇이 접근하는 것을 방지하는 규약으로 알려져 있으며, ‘robots.txt’라는 코드를 넣어 외부에서 데이터를 읽거나 접근하는 것을 막을 수 있다.
- 자세한 사항은 Google 검색 센터로 들어가면 알 수 있다.
크롤링, 잘못하면 법원간다
여기어때
- 여기어때의 심 전 대표 등은 2016년 야놀자 데이터에 1500만회 이상 접속해 제휴 숙박업소 목록, 입퇴실 시간, 할인금액 등 정보를 빼돌린 혐의로 기소됐다.
- 재판부는 심 전 대표 등이 야놀자 서버를 크롤링해 제휴 숙박업체 정보를 대량으로 수집하고 영업전략 파악·수집 등에 사용했다고 봤다.
스펙업애드
- 이 사건의 원고 에브리타임은 2011년부터 전국 400개 대학의 대학생들을 위한 시간표 작성 , 강의 평가 후기 등의 서비스를 제공했다. 피고 스펙업애드는 2017년 타임스프레드를 인수한 뒤, 에브리타임이 보유한 정보를 불법적으로 수집·이용해 자신들의 서비스에 활용했다.
--> 스팩업애드가 에브리타임의 정보를 크롤링해 무단으로 사용한 것.
참고: AI Hub 안내서
- AI Hub인공지능 학습용 데이터 품질관리 가이드라인 및 데이터셋 구축안내서 개발 및 공개.
- 학습 데이터셋 구축안내서에서는 데이터 획득을 인공지능의 기계학습에 필요한 데이터를 현실 세계에서 직접 수집 또는 생성하거나, 이미 보유하고 있는 조직이나 시스템 등으로부터 법률적 제약이 없도록 ‘원시데이터’를 확보하는 활동이라고 적고 있다.
--> 법에 저촉되면 데이터가 존재해도 사용할 수 없다.
4. 출처
- 크롤링, 네이버 IT용어사전, https://terms.naver.com/entry.nhn?docId=862349&cid=50376&categoryId=50376
- 웹 크롤러, 위키백과, 2020.12.06에 마지막 수정, https://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC
- 아이펠 노드 펀더멘탈 20번
- '웹 크롤러' 좀 그만 만들어라, 모빈켈, 2020.05.01, https://velog.io/@mowinckel/%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-I
- robots.txt 소개, Google 검색 센터, https://developers.google.com/search/docs/advanced/robots/intro?hl=ko
- 경쟁업체 앱 데이터베이스권 침해한 스펙업애드, 손해배상 판결, 디지털 데일리, 2020.09.28, http://m.ddaily.co.kr/m/m_article/?no=202412
- 심명섭 여기어때 전 대표, 집유 선고…경쟁사 정보 무단수집 혐의, IT 조선, 2020.02.12, http://it.chosun.com/site/data/html_dir/2020/02/12/2020021201229.html
- '야놀자 정보 복제 혐의'여기어때 전 대표, 2심서 무저ㅣ, 동아닷컴, 2021.01.13, https://developers.google.com/search/docs/advanced/robots/intro?hl=ko
- NIA, AI학습용 데이터 품질관리 가이드라인과 구축안내서 공개, 전자신문, 2021.03.05, https://www.etnews.com/20210305000030
- 인공지능 학습용 데이터 품질관리 가이드라인 및 데이터셋 구축안내서 개발 및 공개, AI Hub, 2021.03.04, http://aidatacs.aihub.or.kr/node/23533
피피티 자료
https://docs.google.com/presentation/d/1TBqqmDpgTK0oATMTenN_Uy34ltyfqwz5_dgvvRFGFtY/edit?usp=sharing
지효님의 알고리즘 강의 2
(선형자료구조에 대해서만 살펴보도록 하자.)