Page Rank - Spidering (페이지 랭크 - 스파이더링)

CODEDRAGON Development/Python

반응형


 

 

Page Rank - Spidering (페이지 랭크 - 스파이더링)

·         페이지 랭크 알고리즘을 구현합니다.

·         간단한 검색 엔진을 작성(Web Crawler) 해당 결과를 페이지 랭크 알고리즘으로 브라우저에 시각화하도록 하겠습니다.

·         페이지 랭크 알고리즘을 수행하여 가중치가 부여된 결과를 브라우저로 시각화합니다. 이를 통해 어떤 페이지가 중요한지 있습니다.

·         수집한 데이터 색인을 시각화합니다.

 

 

The Anatomy of a Large-Scale Hypertextual Web Search Engine

http://infolab.stanford.edu/~backrub/google.html

 

 

 

 

전체 도식도

·         spider.py 스파이더링 과정을 거져 링크 정보를 수집하고

·         sprank.py 페이지랭크 알고리즘을 여러 수행합니다.

·         spreset.py 페이지랭크 알고리즘을 다시 시작할 있습니다.

·         spjson.py 통해 수집된 데이터를 자바스크립트 파일로 저장하고 파일을 force.html에서 읽어와서 d3.js 시각화합니다.

 

 


 

 

 

 

 

 

File Info

구분

설명

spider.py

·         크롤링 코드

·         데이터 검색 저장 기능

·         spider.py 실행해서 검색되지 않은 페이지들을 찾아 데이터베이스에 저장합니다.

·         다시 무작위로 검색되지 않은 페이지를 요청합니다.

 

sprank.py

·         페이지 랭크 알고리즘 구현

·         많은 페이지링크 계산을 반복 실행합니다.

·         sprank.py 통해 어떤 페이지가 어떤 페이지와 연결되어 있는지 찾아냅니다. 그리고 해당 중요도 숫자값를 읽고 업데이트 합니다. 모든 페이지는 처음에 중요도 값으로 1 가지게 됩니다.

 

spreset.py

·         모든 페이지의 중요도 값을 1 설정합니다.

·         모든 페이지 순위를 재설정하는 기능

spdump.py

·         데이터베이스에서 데이터를 읽어 새로운 페이지 순위와 옛날 페이지 순위, 그리고 밖의 다른 것들을 나타냅니다.

spjson.py

·         데이터베이스를 모두 읽어서 페이지 순위대로 정렬해서 순위가 적혀 있는 자바스크립트 파일을 생성합니다.

pagerank.js

·         전처리한 데이터 스크립트 파일

·         spjson.py 수행 만들어지는 자바스크립트 파일입니다.

·         파일은 시각화과정에 사용되어 집니다.

force.js

·         클릭시 이벤트 처리를 위한 자바스크립트

d3.v2.js

·         시각화 라이브러리

force.css

·         스타일 시트 파일

force.html

·         force.js 파일을 읽어 페이지 순위를 나타내도록 시각화합니다.

 


 

 

 

테이블 정보

 

database file

설명

geodata.db

데이터베이스 파일

 

table name

Pages

수집한 데이터

컴럼명

데이터타입

설명

id

INTEGER

PRIMARY KEY

url

TEXT

UNIQUE

html

TEXT

-

error

INTEGER

에러 여부

old_rank

REAL

옛날 순위

new_rank

REAL

새로운 순위

 

table name

Links

·         연결 테이블

·         페이지간 관계를 나타내는 테이블

컴럼명

데이터타입

설명

from_id

INTEGER

Pages테이블에 링크들을 추가시킬 연결을 시작한 페이지를 알려주는 역할을 합니다.

to_id

INTEGER

-

 

table name

Webs

참조할 페이지

컴럼명

데이터타입

설명

url

TEXT

UNIQUE

 

 

 

 

Step by Step

·         Step 1: spider.py

·         Step 2: sprank.py

·         Step 3: spreset.py

·         Step 4: spdump.py

·         Step 5: spjson.py

·         Step 6: 시각화

 

 

Step 1: spider.py


 

 

Step 2: sprank.py


 

 

Step 3: spreset.py


 

 

Step 4: spdump.py


 

 

Step 5: spjson.py


 

 

Step 6: 시각화