ch12. web crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.web...

30
Ch12. Web Crawling Modern Information Retrieval 2nd Edition 서울시립대학교 Datamining Lab. 김태준

Upload: others

Post on 08-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Ch12. Web CrawlingModern Information Retrieval 2nd Edition

서울시립대학교 Datamining Lab.

김태준

Page 2: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Content

1. Introduction

2. Applications of a Web Crawler

3. A Taxonomy of Crawlers

4. Architecture and Implementation

5. Scheduling Algorithms

Page 3: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Web Crawler• Web 문서들을 자동으로 다운로드하는 소프트웨어

• a.k.a “Web Spider”, “Web Robot”, “Bot”

Scheduling이 핵심!

Page 4: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Applications of a Web Crawler1. General Web Search

일반적인 검색엔진(e.g. NAVER, Google)

2. Vertical Crawling 특정 영역만을 다루는 검색엔진(e.g. Amazon, 뉴스 수집기)

3. Topical Crawling특정 주제와 관련된 문서만을 다루는 focused crawlers(e.g. 여행 후기 수집기)

4. Web Characterization웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을 만들기 위한 사전 조사)

5. Mirroring웹 사이트 복제(서버를 분산시켜 성능 향상)

6. Web Site Analysis그 외에 여러 분석 작업(e.g. “broken links” 조사, Wikipedia 문서 분류)

Page 5: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

A Taxonomy of Crawlers

• Freshness최신의 문서가 중요

• Quality문서의 질이 중요

• Volume문서의 양이 중요

Page 6: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Architecture and Implementation

1. Crawler Architecture 2. Practical Issues

Page 7: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

High-level Architecture of a Web Crawler• Scheduler: 다운로드할 페이지들의 URL 큐 관리 • Downloader: 웹 페이지 download, parsing • Storage: 문서 저장, indexing, metadata 제공(scheduling

policy에 큰 도움)

Page 8: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

A More Detailed view of Architecture of a Web Crawler• Short-term Scheduling: 서버에 대한 예의를 지키게 • Long-term Scheduling: 어떤 페이지를 방문할지

Page 9: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Short-term Scheduler

한 페이지를 가져온 뒤 일정 시간을 기다림(politeness policy)

Page 10: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Practical Issues• DNS(Domain Name System) 서버의 일시 장애

• 많은 URL이 같은 문서를 가리킴(e.g. URL에 세션 정보가 들어가 있는 경우)

• Parsing Error: 많은 웹 페이지가 HTML 문법에 맞지 않음

• Soft-404 Pages: 서버들이 404 응답 코드를 보내지 않고 custom-built error page를 반환함

• Duplicates: 웹의 30%가 중복된 문서

• 웹 페이지의 type에 따라 접근이 불가능한 경우

Page 11: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Types of Web Pages

• Private/Public: 사용자 인증의 유무

• Static/Dynamic: 서버가 동적으로 페이지를 생성하는가?

e.g. 대학행정정보시스템

e.g. 네이버 블로그 e.g. 검색 결과 페이지

Page 12: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Parallel & Distributed Crawling

• 확장성(scalability)과 장애 복구(fault tolerance)를 위해 multithreading와 분산 컴퓨팅이 필요

• 이때 가장 중요한 것은 분산된 crawler들이 중복하여 같은 웹 페이지를 다운로드하지 않게 하는 것

Page 13: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Scheduling Algorithms1. Selection Policy 2. Revisit Policy 3. Politeness Policy 4. Combining Policies

Page 14: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Scheduling Algorithms

• Crawler는 다음과 같은 trade-off 관계에 있는 목적들을 극대화하기 위해 scheduling을 잘 해야함

1. 웹 페이지를 재방문하여 변화를 감지해야한다.

2. 새로운 웹 페이지를 찾아낼 수 있어야 한다.

3. Network bandwidth를 효율적으로 사용해야한다. (쓸모 없는 웹 페이지는 다운로드하지 않음)

Page 15: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Scheduling Algorithms

1. Selection Policy:높은 quality를 갖는 페이지를 먼저 방문

2. Revisit Policy:페이지를 언제 다시 방문할 것인지 결정

3. Politeness Policy:서버에 과부하를 주지 않게 적당히 crawling

Page 16: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

1. Selection Policy• Crawler는 다음에 방문할 페이지들을 신중히 선택해야함

• Selection policy는 쓸데 없는 페이지를 다운로드 하는데 network bandwidth를 낭비하는 것을 막아줌

• Selection policy는 다음과 같이 두 가지 타입으로 나뉜다

1. Off-line Limits: Crawling 시작 전에 최대 저장할 페이지 양을 제한함

2. On-line Selection: Crawling을 진행하며 어떤 페이지를 먼저 방문할지 정하는 것

Page 17: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

1. Selection Policy: 1) Off-line Limits

• 저장소 용량의 한계로 인해, crawling 시작 전에 최대 저장할 페이지들의 양을 정할 필요가 있다.

• 자주 사용되는 off-line limits:

‣ 웹 사이트 수의 제한

‣ 최대 링크 depth 제한 (링크를 몇 번까지 타고 들어갈지)

‣ 최대 저장 페이지 수 제한

‣ 웹 사이트 당 최대 저장 가능 페이지 수 혹은 용량 제한

‣ 저장 가능한 페이지의 타입 제한 (e.g. text/html만 저장하고 script는 저장 안함)

Page 18: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

1. Selection Policy: 2) On-line Selection

• 웹 페이지들의 quality를 계산하여 우선 순위를 둔다. • 전체 웹 페이지들을 모두 crawling 하기도 전에 quality를 평

가하기는 어렵지만 다음과 같은 다양한 방법들이 있다. ‣ 랜덤하게 방문 ‣ Breath-first search(BFS): 일단 모든 웹 사이트에 방문 ‣ 현재까지 가진 문서들로 PageRank ‣ PageRank와 비슷한 OPIC(On-line Page Importance

Computation) 함수로 우선 순위 결정 • 결론적으로, 모든 연구마다 결과가 다르지만, PageRank는 BFS

에 지는 경우가 있지만, OPIC은 성능이 항상 좋았음

Page 19: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Selection Policy of Focused Crawling

• Topic과 관련있는 페이지들만 URL queue에 추가함

• 이때 topical locality을 이용함

• Topical locality: 웹 페이지 간에 링크가 존재하면 같은 topic의 페이지일 확률이 높다.

<topical locality>

Page 20: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

2. Revisit Policy

• 변하는 페이지들을 감시하기 위한 정책

• 페이지들의 변화엔 다음과 같은 세 가지 event가 있다:

1. Creations: 새로운 페이지의 생성

2. Updates: 기존 페이지의 변경

3. Deletions: 페이지의 삭제 (검색 엔진 성능에 가장 영향을 미침)

Page 21: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Modeling of Page Events• Freshness: 저장된 페이지(p)가 up-to-date인지 나타내는

binary measure

• Age: 저장된 페이지(p)가 얼마나 outdate된지 나타내는 measure. 여기서 lu(p)는 last update time

Page 22: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Modeling of Page Events

Page 23: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Revisit Strategies

• 어떤 사람들이 이러한 두 함수로 다음과 같은 두 정책으로 crawling을 해봤다

• uniform policy: 모든 페이지를 같은 주기로 재방문

• proportional policy: 더 자주 바뀌는 페이지는 더 자주 재방문

• 결과: 두 방법 모두 나쁨. Freshness를 좀 더 잘 추정해야 된다는 결론을 얻음.

Page 24: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

• 페이지의 변화는 포아송 분포를 따른다고 가정

• 그렇다면, 페이지가 up-to-date일 확률은

• 여기에 last update time을 이용하여 저 정확히 추정하면, (대부분의 웹 서버들이 last update time을 알려준다고 함)

Estimating Freshness

: 평균 변경 속도(회/시간)

: 총 방문 횟수

: 변경 횟수

last update time을 고려한 수치

Page 25: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

3. Politeness Policy• Crawling하고 있는 웹 서버에 예의를 지키는 정책

• 웹 서버에 과부하를 주지 않기 위해(차단 당하지 않기 위해) 적당한 속도로 crawling 하는 정책

• 이 정책엔 세 가지가 있다:

1. Robot Identification: 자신이 어떤 crawler인지 알려야함

2. Robot Exclusion Protocol: Crawling 하지 말라는 것은 안해야됨 (robots.txt)

3. Controlling Bandwidth Usage: 천천히 crawling 해야함

Page 26: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Robot Identification

• HTTP 프로토콜에는 user-agent가 있는데 이곳에 crawler의 정보를 적어야함: crawler 이름, crawler에 대한 정보가 있는 사이트 주소, e-mail 등

• Bot들의 user-agent 예: Googlebot, Yeti(NAVER), Bingbot, daumoa(Daum), Baidu

Page 27: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Robot Exclusion Protocol• 도메인 최상단에 robots.txt을 둬서 로봇들이 원하지 않는

페이지를 수집해가는걸 막음

• 지키지 않을시 법적 책임을 물을 수 있음

• 예) http://example.com/robots.txt의 내용

Page 28: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

Controlling Bandwidth Usage• robots.txt에 페이지와 페이지 사이 딜레이를 얼마줄지 요구

할 수 있음.

• 예) 한 페이지를 다운로드 후, 45초를 기다린 다음에 다른 페이지를 받아가야함. 안그러면 차단 당할 수 있음.

Page 29: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

4. Combining Policies• 페이지의 quality(q)와 up-to-date일 확률(p)를 결합하여 정

책을 세울 수 있음.

• 위의 식의 값이 높을 수록 우선 순위가 높아짐

Page 30: Ch12. Web Crawlingdatamining.uos.ac.kr/wp-content/uploads/2016/02/modern... · 2016-05-03 · 4.Web Characterization 웹 사이트들에 대한 통계 추출(효과적인 검색 엔진을

[email protected]

“감사합니다.”