Sys Inf 03 Manning w 20

background image

Web crawling i indeksy

background image

Podstawowe operacje
clawrera

Zacznij od znanych “ziaren” URL-i

Pobierz je do pamięci i parsuj

Pobierz URL-e, na które wskazują

Umieść pobrane URL-e w kolejce

Pobierz każdy URL z kolejki i
powtarzaj

background image

Obraz crawlingu

Web

URL-e pobrane
i parsowane

Graniczne URL-e

Ukryty Web

Strony

ziarna

background image

Prosty obraz – komplikacje

Web crawling nie jest wykonalny za pomocą jednej

maszyny

Wszystkie powyższe etapy są rozproszone

Złośliwe strony

Strony ze spamem

Pułapki na pająki – również te generowane dynamicznie

Nawet niezłośliwe strony stawiają wyzwania

Czas oczekiwania/pasmo dla zdalnych serwerów się

zmienia

Warunki webmasterów

Jak “głęboko” możesz wchodzić w hierachię URL-i strony?

Zwierciadła stron i duplikaty stron

Uprzejmość – nie trafiaj w dany serwer zbyt często

background image

Co każdy serwer musi robić

Być Uprzejmym: Respektować
pośrednie i bezpośrednie uprzejme
czynniki

Wykonywać crawling tylko
udostepnionych stron

Respektować robots.txt (później
będzie)

Być Mocnym: Być odpornym na pułapki
na pająki i inne złośliwe zachowania ze
strony serwerów webowych

background image

Co każdy crawler powinien
robić

Być przygotowany do rozproszonych
operacji: zaprojektowany do
przetwarzania na wielu rozproszonych
maszynach

Być skalowalny: zaprojektowany wzrost
intensywności crawlingu przez
dodawanie dodatkowych maszyn

Wydajność/efektywność: pozwolić na
pełne wykorzystanie dostępnych
procesów i zasobów sieciowych

background image

Co każdy clawler powinien
robić

Pobierać jako pierwsze strony
“wysokiej jakości”

Ciągłe operacje: Kontynuować
pobieranie nowych kopii
sprowadzanych już stron

Rozszerzać możliwości: adaptować
się do nowych formatów danych,
protokołów

background image

Uaktualniony obraz crawlingu

URL-e pobierane
i parsowane

Ukryty Web

Strony ziarna

Graniczne

URL-e

Nić pająków

background image

Graniczne URL-e

Mogą zawierać wiele stron z tego
samego hosta

Muszą unikać próby pobierania ich
w tym samym czasie

Muszą próbować obciążać
wszystkie nitki pająków

background image

Uprzejmość explicite i implicite

Uprzejmość explicite: specyfikacja
przez webmasterów, które obszary
strony mogą być crawlowane

robots.txt

Uprzejmość implicite: nawet przy
braku specyfikacji unikaj trafiania
na daną stronę zbyt często

background image

Robots.txt

Protokół ograniczający dostęp pająków
(“robots”) pochodzi z roku 1994

www.robotstxt.org/wc/norobots.html

Strona webowa określa swoje
wymagania co może (nie może) być
pobierane

Dla URL tworzony jest zbiór
URL/robots.txt

Tan zbiór określa ograniczenia dostępu

background image

Przykład robots.txt

Żaden robot nie może odwiedzać URL-i
zaczynających się "/yoursite/temp/” za
wyjątkiem robota o nazwie
“searchengine":

User-agent: *
Disallow: /yoursite/temp/

User-agent: searchengine
Disallow:

background image

Kroki przetwarzania w
crawlingu

Wybierz URL z granicznych URL-i

Pobierz dokument z tego URL-a

Parsuj tenURL

Pobierz linki od niego do innych docs (URLs)

Sprawdź czy URL ma już przejrzaną treść

Jeśli nie to dodaj do indeksu

Dla każdego pobranego URL-a

Upewnij się, że przeszedł on test dla filtru URL-a

Sprawdź, czy jest już w granicy (eliminacja
duplikatów URL-i)

Np.: only crawl .edu,

obey robots.txt, etc.

Który?

background image

Podstawowa architektura
crawlera

WWW

DNS

Parsuj

Zawartość

znana?

Doc

FP’s

Elim.

Dupl.

URL

Zbiór
URL-i

Frontowe URL

Filtr

URL-a

Filtry

robotów

Pobierz

background image

DNS (Domain Name Server)

Usługa przeglądania Internetu

Dla danego URL-a znajduje jego adres IP

Usługa udostępniana przez rozproszony zbiór
serwerów – więc opóźnienie przeglądania może
być duże (nawet sekundy)

Powszechnie stosowane implementacje OS
przeglądania DNS są blokowane: tylko
jedno szczególne żądanie za jednym razem

Rozwiązania

Caching DNS

Batch DNS resolver – grupowanie zgłoszeń i
wysyłanie ich razem

background image

Parsowanie: normalizacja URL-i

Podczas, gdy pobierany dokument jest
parsowany niektóre linki względnymi URL-ami

Np.: na http://en.wikipedia.org/wiki/Main_Page

występuje względny link do

/wiki/Wikipedia:General_disclaimer który jest
taki sam jak bezwzględny

http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer

W trakcie parsowania takie względne URL-e
muszą być znormalizowane (rozszerzone)

background image

Czy treść była przeglądana?

Duplikaty są rozpowszechnione
w Web

Jeśli strona właśnie pobierana
jest już w indeksie nie
przetwarzaj jej dalej

Jest to weryfikowane za
pomocą odcisków dokumentów
lub n-gramów

background image

Filtry i robots.txt

Filtry – wyrażenia regularne dla
URL-i crawling/nie

Jeśli zbiór robots.txt został
pobrany ze strony nie trzeba go
pobierać ponownie

Inaczej mamy burns pasma
prowadzącego do serwera Web

Cache zbiory robots.txt

background image

Eliminacja duplikatów URL

Dla nieciągłego (one-shot)
crawlingu, testuj czy pobrany +
przefiltrowany URL już przedtem
przeszedł do granicy

Dla ciągłego crawlingu – zbadaj
szczegóły implementacji granicy

background image

Rozproszenie crawlera

Przetwarzaj liczne nici crawlera w
różnych procesach – potencjalnie w
różnych węzłach

Geograficznie rozproszonych węzłach

Przydziel badane hosty do węzłów

Do podziału stosujemy haszing

Jak się te węzły komunikują?

background image

Komunikacja między węzłami

Wyjście filtra URL w każdym węźle jest
przesyłane do Eliminat. Zdublowanych
URL-i we wszystkich węzłach

WWW

Pobierz

DNS

Parsuj

Znana

zawartość?

URL

filter

Dup

URL

elim

Doc

FP’s

URL

set

Frontowe URL-e

robots

filters

Host

splitter

To
other
hosts

Od innych
hostów

background image

Graniczne URL-e: dwa główne
czynniki

Uprzejmość: nie trafiaj na serwer

webowy zbyt często

Aktualność: odwiedzaj pewne strony

częściej niż inne

Np.: strony (takie jak News sites) których

treść zmienia się często

Te cele mogą być sprzeczne.
(Np.: prosta kolejka priorytetowa może być

zła – wiele linków ze strony idzie do

własnej witryny co powoduje skoki

dostępów do tej strony.)

background image

Uprzejmość – wyzwania

Nawet jeśli ograniczymy się tylko
do jednej nici pobierającej z hosta
– trafienia mogą się powtarzać

Zwykła heurystyka: ustaw czasowy
odstęp między kolejnymi
żądaniami do hosta jako >> czasu
ostatniego pobrania z tego hosta

background image

Crawler Mercator

Projekt Mercator jest podstawą konstrukcji
wielu naukowych i komercyjnych
crawlerów

Publikacje: Najork and Heydon 2001, 2002

24

background image

Tylny selektor kolejki

B tylnych kolejek

Pojedynczy host na każdej

Nić crawlerów żądających URL

Granica URL-i: schemat
Mercatora

Biased front queue selector

Router koncowych kolejek

System priorytetu

K frontowych kolejek

URL-e

background image

Granica URL-i Mercatora

URL-e wpływają z wierzchołka do frontu

Frontowe kolejki

zarządzają

priorytetami

Końcowe kolejki

zapewniają uprzejmość

Wszystkie kolejki są FIFO

background image

Frontowe kolejki

System priorytetu

1

K

Wstępny selektor kolejki frontowej

Router końcowej kolejki

background image

Kolejki frontowe

System priorytetu przypisuje do URL-a
liczbę całkowitą priorytetu między 1 i K

Dołącza URL do odpowiedniej kolejki

Heurystyki dla przypisania priorytetu

Odtwórz intensywność zbadaną dla
poprzednich pobrań

Specyficzna dla aplikacji (np.: “badaj
strony wiadomości częściej”)

background image

Wstępny selektor kolejki
frontowej

Gdy

tylna kolejka

żąda URL-a (w

opisanej sekwencji): pobierz

frontową

kolejkę,

z której wyciągnij URL

Ten wybór może być round robin
wstępnie dla kolejek o wyższym
priorytecie lub jakiś bardziej
skomplikowany wariant

Może być losowo

background image

Końcowe kolejki

Wstępny selektor frontowej kolejki

Router końcowej kolejki

Selektor końcowej kolejki

1

B

Sterta

background image

Niezmiennie dla końcowej
kolejki

Każda końcowa kolejka jest utrzymywana
niepusta w trakcie procesu crowlingu

Każda końcowa kolejka zawiera jedynie
URL-e z pojedynczego hosta

Utrzymuj tablicę hosty-końcowe kolejki

Nazwa hosta

Końcowa
kolejka

3
1
B

background image

Sterta

końcowej kolejki

Jedno wejście dla każdej końcowej kolejki

Wejście jest najwcześniejszym czasem t

e

kiedy host odpowiadający tej końcowej
kolejce może być odwiedzony ponownie

Ten najwcześniejszy czas jest określony
przez

Ostatni dostęp do tego hosta

Jakiś czas wybranej przez nas heurystyki
buforowania

background image

Przetwarzanie końcowej kolejki

Nić pająków szuka URL-a do pobrania:

Znajdź korzeń sterty

Pobierz URL z czoła odpowiedniej końcowej
kolejki q (znajdź w tabeli)

Sprawdź czy kolejka q jest teraz pusta – jeśli
tak, ściągnij URL v z frontowych kolejek

Jeśli istnieje już końcowa kolejka dla hosta v , dodaj v
doq i pobierz inny URL z frontowych kolejek,
powtarzaj

W przeciwnym przypadku dodaj v do q

Jeśli q jest niepusta, twórz dla niej wejście do
sterty

background image

Liczba końcowych kolejek B

Utrzymuj wszystkie nici zajęte stosując
jednocześnie uprzejmość

Rekomendacja Mercatora: Trzy razy
więcej końcowych kolejek niż nici
crawlerów

background image

Serwer połączeń

Wsparcie dla szybkich pytań na grafie webowym

Które URL-e wskazują na dany URL?

Na które URL-e wskazuje dany URL?

Pamięta odwzorowanie w pamięci

URL do linków wyjściowych, URL do linków wejściowych

Zastosowania

Sterownie crawlingiem

Analiza grafu Web

Połączenia, optymizacja crawllngu

Analiza linków

background image

Najważniejsze opublikowane
prace

Boldi and Vigna

http://www2004.org/proceedings/docs/1p595.p
df

Webgraph – zbiór algorytmów i
implementacji w javie

Podstawowy cel – Utrzymywanie list
sąsiednich węzłów w pamięci

Dlatego, kompresowanie list sąsiedztwa
jest krytycznym elementem

background image

Listy sąsiedztwa

To zbiór sąsiadów jakiegoś węzła

Przyjmijmy, że każdy URL jest
reprezentowany przez liczbę całkowitą

Np.: dla 4 miliardów stron webowych
potrzebujemy 32 bitów na węzeł

Nie, wymaga to 64 bitów do
reprezentacji każdego hiperlinka

background image

Kompresja listy sąsiedztwa

Własności wykorzystywane w
kompresji:

Podobieństwo (między listami)

Lokalność (wiele linków z danej
strony idzie do “bliskich” stron)

Używa się kodowania odstępów dla
posortowanych list

Rozkład wartości odstępów

background image

Pamięć

Boldi/Vigna obniżyli średni wynik do ~3
bits/link

(URL to URL edge)

Jak

?

Dlaczego jest to ważne?

background image

Główne idee Boldi/Vigna

Rozpatrzmy listy URL-i uporządkowane
leksykograficznie np.:

www.stanford.edu/alchemy

www.stanford.edu/biology

www.stanford.edu/biology/plant

www.stanford.edu/biology/plant/copyright

www.stanford.edu/biology/plant/people

www.stanford.edu/chemistry

background image

Boldi/Vigna

Każdy z tych URL-i ma jakąś listę sąsiedztwa

Główna idea: zgodnie z szablonem, lista taka dla
węzła jest podobna do jednego z 7
poprzedzających URL-i w porządku
leksykograficznym

Wyraź listę sąsiedztwa w odniesieniu do jednego z
nich

Np.: rozpatrzmy takie listy sąsiedztwa

1, 2, 4, 8, 16, 32, 64

1, 4, 9, 16, 25, 36, 49, 64

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

1, 4, 8, 16, 25, 36, 49, 64 (ten czwarty wiersz kodujemy:
taki jak drugi-ale..)

Koduj jak (-2), usuń 9, dodaj

8

dlaczego7

?

background image

Kodowanie przerw

Dla uporządkowanej listy liczb
całkow. x, y, z, …, reprezent. przez
x, y-x, z-y, …

Kompresuj każdą liczbę stosując kod

 code – Liczba bitów

= 1 + 2 lg x

 code: …

Ograniczenie z teorii informacji: 1 + lg

xbits

 code:

działa dobrze dla całkowitych z

prawa potęgowego

Boldi Vigna DCC 2004

background image

Główne zalety BV

Bazuje jedynie na lokalności w uporządkowaniu

Porządek lesykograficzny sprawdza się w Web

Sąsiednie pytania mogą być przetwarzane

bardzo efektywnie

Aby pobierać sąsiadów – śledzi się do tyłu łańcuch

prototypów

Ten łańcuch jest zwykle krótki (ponieważ

podobieństwo jest głównie w obrębie hosta)

Może również bezpośrednio ograniczać długość

łańcucha w trakcie kodowania

To łatwy w implem. jedno-przejściowy algorytm

background image

literatura

Mercator: A scalable, extensible web crawler
(Heydon et al. 1999)

A standard for robot exclusion

The WebGraph framework I: Compression
techniques (Boldi et al. 2004)


Document Outline


Wyszukiwarka

Podobne podstrony:
Sys Inf 03 Manning w 06
Sys Inf 03 Manning w 19
Sys Inf 03 Manning w 02
Sys Inf 03 Manning w 07
Sys Inf 03 Manning w 03
Sys Inf 03 Manning w 21
Sys Inf 03 Manning w 09
Sys Inf 03 Manning w 01
Sys Inf 03 Manning w 04
Sys Inf 03 Manning w 08
Sys Inf 03 Manning w 05
Sys Inf 03 Manning w 06
Sys Inf 03 Manning w 19
Sys Inf 03 Manning w 02
Sys Inf 03 Manning w 07
Sys Inf Manning w
opracowane pytania MSI (1), Studia Zarządzanie PWR, Zarządzanie PWR I Stopień, V Semestr, Modelowani
2011 03 05 20;57;51
PODSTAWY ZARZĄDZANIA ćw 20.03.10 20, Materiały studia, Podstawy zarządzania ćwiczenia

więcej podobnych podstron