Sunteți pe pagina 1din 29

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Reg˘asirea Informat¸iilor pe WEB

Curs 09: Robot¸i WEB (2)

¸s.l. dr. ing. Alexandru ARCHIP alexandru.archip@cs.tuiasi.ro

Facultatea de Automatic˘a ¸si Calculatoare, Ia¸si

an universitar: 2014 – 2015

Robot¸i WEB

Cuprins

Politici de revizitare

1 Robot¸i WEB Caracteristici Arhitectur˘a general˘a Detalii funct¸ionalitate Module importante Module conexe

Metode de paralelizare/distribuire

Discut¸ii

2 Politici de revizitare Definit¸ie ¸si obiective Determinarea politicii de revizitare

Bibliografie

3 Metode de paralelizare/distribuire Paralelizarea/distribuirea crawler-ului WEB

4 Discut¸ii

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Caracteristici

Sintez˘a – Caracteristici robot¸i WEB

Esent¸iale

Robust

Politicos

Caracteristici robot¸i WEB Esent¸iale Robust Politicos Recomandate Distribuit Scalabil Extensibil Ofer˘a

Recomandate Distribuit Scalabil Extensibil Ofer˘a rezultate de calitate Ofer˘a rezultate actuale

Extensibil Ofer˘a rezultate de calitate Ofer˘a rezultate actuale RIWeb 2014 – 2015/C09: Robot¸i WEB (2) 3/

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Caracteristici

Recomand˘ari funct¸ionalitate

Bibliografie

Un robot WEB ar trebui s˘a

[2 – cap 20]

deschid˘a o singur˘a conexiune cu orice site ¸int˘t efectuat˘a cu site-ul respectiv.

a¸stepte un interval de timp de minim o secund˘a ˆıntre cereri succesive adresate aceluia¸si host/site.

a, ˆın orice interact¸iune

Un robot WEB ar trebui s˘a

[3 – note de curs – 19]

permit˘a ad˘augarea paginilor ˆın vederea index˘arii ¸si ˆın funct¸ie de cerint¸ele utilizatorilor.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Arhitectur˘a general˘a

Modulele componente ale unui robot WEB

general˘a Modulele componente ale unui robot WEB Figura 1: Componentele unui robot WEB [2 - cap.

Figura 1: Componentele unui robot WEB [2 - cap. 20]

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Detalii funct¸ionalitate

Detalii funct¸ionalitate

Init¸ializare Orice robot WEB ˆıncepe act¸iunea de explorare dinamic˘a a WEB-ului pronind de la un
Init¸ializare
Orice robot WEB ˆıncepe act¸iunea de explorare dinamic˘a a WEB-ului pronind
de la un set int¸ial de pagini, denumit ¸si SEED LIST/QUEUE (stocat prin
intermediul componentei URL Frontier).
Acest set int¸ial dicteaz˘a performat¸ele robotului. ˆ In funct¸ie de acest set init¸ial,
robotul WEB ˆı¸si extinde mai rapid sau mai lent setul de pagini traversate.
ˆ
In mod uzual, acest SEED LIST trebuie s˘a cont¸in˘a site-uri de tip director –
http://www.dmoz.org/.
SEED LIST-ul trebuie adaptat domeniului adresat, ˆın funct¸ie de specificul
robotului WEB.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Detalii funct¸ionalitate

Detalii funct¸ionalitate (2)

Detalii funct¸ionalitate Detalii funct¸ionalitate (2) Rulare Paginile incluse ˆın URL Frontier sunt parcurse

Rulare Paginile incluse ˆın URL Frontier sunt parcurse ˆıntr-o manier˘a recursiv˘a pentru a identifica pagini/documente noi.

Dac˘a pagina apart¸ine unui domeniu nou, nevizitat pˆan˘a la ˆıntˆalnirea paginii curente, atunci robotul trebuie
Dac˘a pagina apart¸ine unui domeniu nou, nevizitat pˆan˘a la ˆıntˆalnirea paginii
curente, atunci robotul trebuie s˘a determine regulile de acces asupra
domeniului/paginii curente.
Parcurgerea unei pagini (sau resurse) implic˘a: detect¸ia duplicatelor, extragerea
link-urilor, extragerea cont¸inutului relevant, determinarea condit¸iilor de
revizitare, etc.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Detalii funct¸ionalitate

Detalii funct¸ionalitate (3)

Strategii de explorare [3]

Explorare ˆın l˘at¸ime: pentru pagina curent˘a se adaug˘a ˆın coad˘a toate link-urile ce ˆındeplinesc condit¸iile de explorare ulterioar˘a (structur˘a FIFO pentru URL Frontier);

consumul de memorie al acestei abord˘ari este exponent¸ial relativ la dimensiunea URL Frontier;

favorizeaz˘a extinderea rapid˘a a domeniului de c˘autare.

Explorarea ˆın adˆancime: pentru pagina curent˘a sunt explorate rˆand pe rˆand link-urile ce ˆındeplinesc condit¸iile de explorare ulterioar˘a (structur˘a LIFO pentru URL Frontier);

consumul de memorie este liniar relativ la dimensiunea URL Frontier;

extinderea c˘aut˘arii poate deveni extrem de lent˘a.

Explorare ghidat˘a: ordonarea/organizarea URL Frontier ˆın funct¸ie de anumite criterii poate conduce c˘atre direct¸ionarea c˘aut˘arii.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Detalii funct¸ionalitate

Detalii funct¸ionalitate (3)

Reactualizarea URL Frontier

Indiferente de strategiile de explorare adoptate/eventualele restrict¸ii impuse robotului WEB — reactualizarea URL Frontier este strict dependent˘a de mecanismul de extragere a URL-urilor din paginile indexate.

URL-urile relative trebuie completate ¸si stocate sub forma de URL-uri absolute.

ˆ

In mod uzual, ˆın special ˆın cazul robot¸ilor WEB axat¸i pe documente HTML,

URL-urile trebuie ret¸inute ˆın form˘a normalizat˘a.

Este, de asemenea, important (ˆın special ˆın cazul robot¸ilor specializat¸i) s˘a se stocheze ¸si informat¸iile auxiliare ce pot fi prezente ˆın cadrul unui element de tip anchor.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Module importante

Modulul de detect¸ie a duplicatelor

Detect¸ia paginilor duplicat Trebuie s˘a detecteze rapid dac˘a o pagin˘a a fost sau nu vizitat˘a
Detect¸ia paginilor duplicat
Trebuie s˘a detecteze rapid dac˘a o pagin˘a a fost sau nu vizitat˘a anterior
(eventual sub un alt URL).
Versiunea cea mai simpl˘a este de a calcula un checksum peste cont¸inutul
documentului HTML.
ˆ
In mod uzual implic˘a tehinici de indexare a paginilor WEB.
Se poate dovedi a fi o metod˘a ineficient˘a, deoarece trebuie desc˘arcat˘a ˆıntˆai
pagina.
O alt˘a variant˘a posibil˘a este utilizarea URL-urilor paginilor pe post de cheie
de indexare.
Poate complica procedura de extragere a link-urilor din documentele HTML.
Nu rezolv˘a problema detect˘arii documentelor duplicat.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Module importante

Modulul de filtrare a URL-urilor

Pentru URL-urile duplicat

Are rolul de a nu ad˘aga ˆın URL Frontier URL-uri ce au fost deja inserate.
Are rolul de a nu ad˘aga ˆın URL Frontier URL-uri ce au fost deja inserate.
Joac˘a un rol important ˆın implementarea politicilor de revizitare.
Are rolul de a elimina URL-urile care au fost deja procesate(pentru cazul
particular al robot¸ilor care nu funct¸ioneaz˘a ˆın regim continuu).
robot¸ilor care nu funct¸ioneaz˘a ˆın regim continuu). Pentru URL-urilor barate de REP Sunt eliminate acele

Pentru URL-urilor barate de REP Sunt eliminate acele link-uri care sunt marcate prin REP ca ne-vizitabile pentru robotul curent.

Poate induce ˆıntˆarzieri suplimentare ˆın procesarea efectiv˘a a URL-urilor. Practic, ˆın special ˆın cazul
Poate induce ˆıntˆarzieri suplimentare ˆın procesarea efectiv˘a a URL-urilor.
Practic, ˆın special ˆın cazul paginilor care nu se schimb˘a des, regulile REP
trebuie verificate de dou˘a ori.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Module conexe

Server-ul de conectivitate

Discut¸ii

Bibliografie

Un crawler adreseaz˘a WEB-ul la nivel de graf astfel: dac˘a ˆın pagina curent˘a (A) se reg˘ase¸ste un link c˘atre pagina (B), atunci acest link este mapat sub forma unei muchii orientate care pleac˘a din nodul (A) ¸si ajunge ˆın nodul (B).

care pleac˘a din nodul (A) ¸si ajunge ˆın nodul (B). Figura 2: “WEB-ul” privit ca ¸si

Figura 2: “WEB-ul” privit ca ¸si graf

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Module conexe

Server-ul de conectivitate (2)

Bibliografie

Module conexe Server-ul de conectivitate (2) Bibliografie Componenta unui robot WEB ce se ocup˘a de construirea

Componenta unui robot WEB ce se ocup˘a de construirea unui graf suport pentru documentele indexate de robot poart˘a numele de server de conectivitate.

Rolul acestei componente este de a r˘aspunde rapid interog˘arilor de forma ce documente WEB indic˘a documentul curent (I1) sau ce documente WEB sunt indicate de documentul curent (I2). Aceste informat¸ii sunt necesare pentru modulele de analiz˘a a link-urilor ˆın cadrul WEB.

ˆ

In mod uzual, un astfel de graf suport este ret¸inut prin intermediul unei

matrici de adiacent¸˘a:

dac˘a aceast˘a matrice este interogat˘a pe coloane, atunci se ofer˘a r˘aspuns pentru ˆıntrebarea I1; dac˘a aceast˘a matrice este interogat˘a pe linii, atunci se ofer˘a r˘aspuns pentru ˆıntrebarea I2.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Module conexe

Server-ul de conectivitate (3)

Bibliografie

Server-ul de conectivitate al unui robot WEB trebuie s˘a lucreze ˆın corelare cu modulul de indexare ce proceseaz˘a documentele aduse de robotul respectiv.

Modulul de indexare atribuie fiec˘arui document WEB un docID (ˆın mod uzual, o valoare ˆıntreag˘a). Este de preferat ca acela¸si docID s˘a fie utilizat ¸si de server-ul de conectivitate ˆın construirea grafului suport.

Un aspect important ce trebuie adresat ˆın momentul proiect˘arii unui astfel de server de conectivitate este legat de estimarea corect˘a a dimensiunii matricii de adiacent¸˘a suport pentru graful ce trebuie determinat.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Module conexe

Server-ul de conectivitate (4)

Bibliografie

Funct¸ionalitatea server-ului de conectivitate

pentru pagina curent˘a P se preia lista de leg˘aturi;

pentru fiecare leg˘atur˘a ce indic˘a o pagin˘a ce a fost indexat˘a sau o pagin˘a ce a fost ad˘augat˘a ˆın URL Frontier, se completeaz˘a direct matricea de adiacent¸˘a ˆın locat¸ia indicat˘a de [docID(P), docID(link)];

pentru fiecare pagin˘a nou˘a indicat˘a de P, se determin˘a docID-ul paginii noi, apoi se completeaz˘a locat¸ia [docID(P), docID(new link)]

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Definit¸ie ¸si obiective

Definit¸ie. Metrici uzuale

Definit¸ie

Orice robot WEB bine construit trebuie s˘a asigure un anumit grad de noutate al paginilor indexate.

Principiul conform c˘aruia un robot determin˘a cˆand/dac˘a o anumit˘a pagin˘a trebuie revizitat˘a poart˘a numele de politic˘a de revizitare.

revizitat˘a poart˘a numele de politic˘a de revizitare . Metrici uzuale Gradul de noutate al unei pagini

Metrici uzuale Gradul de noutate al unei pagini: Metric˘a binar˘a ce indic˘a dac˘a o anumit˘a copie stocat˘a pentru o pagin˘a este sau nu identic˘a noii versiuni desc˘arcate pentru pagina respectiv˘a.

Vˆarsta: Metric˘a utilizat˘a cu scopul de a determina ultima modificare efectuat˘a asupra unei pagini WEB.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Definit¸ie ¸si obiective

Tipuri. Obiective

Tipuri de politici de revizitare

Politici uniforme: Implic˘a revizitarea cu aceea¸si frecvent¸˘a a tuturor paginilor indexate.

Politici proport¸ionale: Implic˘a revizitarea cu frecvent¸˘a crescut˘a a paginilor cu rat˘a de schimbare mai mare.

crescut˘a a paginilor cu rat˘a de schimbare mai mare. Obiectivele unui robot WEB Grad de noutate

Obiectivele unui robot WEB Grad de noutate mediu cˆat mai ridicat: robotul web este interesat de cˆat de multe pagini nu sunt actualizate.

Vˆarsta cˆat mai sc˘azut˘a: robotul web este interesat de cˆat de vechi sunt copiile locale ale paginilor vizitate.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Determinarea politicii de revizitare

Cum aleg politica de revizitare optim˘a?

Considerente importante

Politica uniform˘a dep˘a¸se¸ste politica proport¸ional˘a relativ la gradul de noutate.

Optim relativ la gradul de noutate implic˘a ignorarea paginilor cu rata de modificare foarte ridicat˘a.

Atingerea unui optim relativ la vˆarsta cˆat mai coborˆat˘a se bazeaz˘a pe cre¸sterea monoton˘a frecvent¸ei de acces relativ la rata de schimbare a fiec˘arei pagini.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB

Scop

O paralelizare eficient˘a trebuie s˘a:

maximizeze rata de desc˘arcare a paginilor WEB.

minimizeze timpii implicat¸i de comunicarea ˆıntre noduri

evite duplicarea rezultatelor (2 sau mai multe noduri extrag aceea¸si pagin˘a).

Metode de paralelizare/distribuire

Principalele metode de paralelizare/distribuire a robot¸ilor web vizeaz˘a repartizarea URL-urilor ˆıntre nodurile de calcul. Din acest punct de vedere se disting dou˘a metode de paralelizare:

asignare static˘a de URL-uri;

asignare dinamic˘a de URL-uri.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (2)

Funct¸ia de repartit¸ie – Caracteristici

1 Trebuie s˘a echilibreze nodurile de lucru din punct de vedere al num˘arului de servere
1 Trebuie s˘a echilibreze nodurile de lucru din punct de vedere al num˘arului de
servere tratate.
2 Trebuie s˘a respecte proprietatea de contra-variat¸ie:
num˘arul de servere/URL-uri asignate unui nod de calcul trebuie s˘a scad˘a o
dat˘a cu cre¸sterea num˘arului noduri de calcul.
3 Trebuie s˘a gestioneze ˆın mod dinamic num˘arul de noduri de calcul utilizate
pentru explorare.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (3)

Asignarea static˘a de URL-uri

Cuvˆantul static implic˘a ˆın acest context existent¸a unei reguli unice de repartit¸ie. Regula de repartit¸ie
Cuvˆantul static implic˘a ˆın acest context existent¸a unei reguli unice de
repartit¸ie.
Regula de repartit¸ie ar trebui s˘a ment¸in˘a pe un singur nod de procesare
leg˘aturile interne unui anumit domeniu.
Leg˘aturile externe sunt schimbate ˆıntre nodurile de porcesare.
Se recomand˘a ˆın acest caz ca dou˘a noduri active s˘a evite schimburile ce
implic˘a un singur URL ˆın cadrul unui transfer!
NU se recomand˘a utilizarea acestui tip de asignare f˘ar˘a existent¸a unor
explor˘ari anterioare!

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (4)

Asignarea static˘a de URL-uri (2)

crawler-ului WEB (4) Asignarea static˘a de URL-uri (2) Figura 3: Arhitectura unui nod pentru un robot

Figura 3: Arhitectura unui nod pentru un robot WEB paralel [2]

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (5)

Asignarea dinamic˘a de URL-uri

Se bazeaz˘a ˆın general pe o arhitectur˘a de tip coordonator-mult¸ime de worker-i subordonat¸i (arhitectura poate include prezent¸a unei ierarhii ˆıntre mai multe noduri de tip coordonator).

Aceast˘a arhitectur˘a trebuie s˘a fie capabil˘a s˘a suporte u¸sor gestiunea dinamic˘a a nodurilor de tip worker pentru un coordonator ¸si, respectiv, gestiunea dinamic˘a a nodurilor coordonator ˆın cazul unei funct¸ionalit˘at¸i multistrat.

Dezavantaje: pot ap˘area comportamente de tip “gˆatuire” la nivelul coordonatorilor.

ˆ

In cazurile ˆın care este necesar˘a dezvoltarea de componente specializate trebuie acordat˘a o deosebit˘a atent¸ie procesului/proceselor de tip DNS Solver.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (6)

WEB Paralelizarea/distribuirea crawler-ului WEB (6) Asignarea dinamic˘a de URL-uri (2) Pentru configurat¸ii

Asignarea dinamic˘a de URL-uri (2) Pentru configurat¸ii de dimensiuni reduse:

o entitate central˘a pentru rezolvarea DNS-ului; cˆate o coad˘a central˘a pentru fiecare site; un set
o entitate central˘a pentru rezolvarea DNS-ului;
cˆate o coad˘a central˘a pentru fiecare site;
un set de programe pentru desc˘arcare.
Pentru configurat¸ii de dimensiuni mari:
procesele r˘aspunz˘atoare de rezolvarea DNS-ului, precum ¸si cele responsabile de
gestiunea cozilor fiec˘arui site sunt distribuite.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (7)

Asignarea dinamic˘a de URL-uri – dimensiuni reduse

(7) Asignarea dinamic˘a de URL-uri – dimensiuni reduse Figura 4: Arhitectura unui nod pentru un robot

Figura 4: Arhitectura unui nod pentru un robot WEB paralel – distribuire dinamic˘a [4]

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (8)

Asignarea dinamic˘a de URL-uri – dimensiuni reduse (2)

Module componente (Figura 4) [4]

Crawling Application

implementeaz˘a modulele aferente URL Frontier ¸si eventualele mecanisme aferente politicilor de revizitare

Crawl Manager

gestioneaz˘a politicile de download conform cu priorit˘at¸ile stabilite de Crawling Application, regulile aferente REP, interog˘arile DNS ¸si coordoneaz˘a modulele de tip Downloader

DNS Resolver

implementeaz˘a componentele de rezolvare a numelor ¸si politicile de caching aferente

Downloader

client¸i HTTP (un singur downloader poate fi utilizat pentru mai multe domenii simultan)

Comunicarea dintre module: socket/NFS.

Robot¸i WEB

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

Paralelizarea/distribuirea crawler-ului WEB

Paralelizarea/distribuirea crawler-ului WEB (9)

Asignarea dinamic˘a de URL-uri – scalare

WEB (9) Asignarea dinamic˘a de URL-uri – scalare (a) Modul A (b) Modul B Figura 5:

(a) Modul A

(9) Asignarea dinamic˘a de URL-uri – scalare (a) Modul A (b) Modul B Figura 5: Arhitectura

(b) Modul B

Figura 5: Arhitectura general˘a a unui robot WEB paralel/distribuit – distribuire dinamic˘a

[4]

Robot¸i WEB

Discut¸ii

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

ˆ

Intreb˘ari / Exercit¸ii

1 Care pa¸si dintre cei implicat¸i de normalizarea de URL-uri trebuie obligatoriu respectat¸i de robotul WEB?

2 Cum putem realiza o estimare corect˘a a dimensiunii matricii de adiacent¸˘a a serverului de conectivitate pe baza dimensiunii URL Frontier?

3 Pornind de la arhitectura prezentat˘a ˆın Figura 1, unde ar trebui integrat serverul de conectivitate?

Robot¸i WEB

Bibliografie

Politici de revizitare

Metode de paralelizare/distribuire

Discut¸ii

Bibliografie

1 M. Craus et al., Reg˘asirea Informat¸iilor pe WEB, Editura POLITEHNIUM, Ia¸si 2005, capitolul 4

4 Vladislav Shkapenyuk, Torsten Suel, Design and Implementation of a High-Performance Distributed Web Crawler – Technical Report, Department

of Computer and Information Science, Polytechnic University Brooklyn, NY

11201