Sunteți pe pagina 1din 30

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Reg˘asirea Informat¸iilor pe WEB

Curs 06: Robot¸i WEB

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

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

an universitar: 2014 – 2015

Cuprins

Preliminarii

Cuprins

Arhitectura motoarelor de c˘autare

Robot¸i WEB

1 Preliminarii Scurt istoric Particularit˘at¸i ale domeniului de c˘autare

2 Arhitectura motoarelor de c˘autare Prezentare general˘a

3 Robot¸i WEB Definit¸ii ¸si exemple Caracteristici Protocoale specifice – REP Protocoale specifice – Sitemap Arhitectura general˘a Pseudocod minimal

Bibliografie

Cuprins

Preliminarii

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

motoarelor de c˘autare Robot¸i WEB Bibliografie Caracteristicii World Wide WEB volum imens de date – la

Caracteristicii World Wide WEB volum imens de date – la sfˆar¸situl anului 1995, Altavista raporteaz˘a peste 30 de milioane de pagini statice indexate!!

lips˘a aproape total˘a de coordonare ˆın faza de creat¸ie

lips˘a aproape total˘a de coordonare ˆın faza de dezvoltare

diversitate mare a autorilor paginilor web

diversitate mare a client¸ilor paginilor web

inutil f˘ar˘a client¸i

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Scurt istoric

Scurt istoric

WEB Bibliografie Scurt istoric Scurt istoric 1960 – 1970 formularea problemelor referitoare la

1960 – 1970 formularea problemelor referitoare la c˘autarea documentelor text: target init¸ial – rezumate ¸stiint¸ifice, legi ¸si documente economice

definirea primelor modele de c˘autare: modele booleene ¸si modele bazate pe spat¸ii vectoriale

1980

aparit¸ia primelor baze de date de documente – companii private (Lexis-Nexis, Dialog, etc.)

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Scurt istoric

Scurt istoric (2)

1990

aparit¸ia primelor motoare de c˘autare pentru site-uri FTP (Archie, WAIS) aparit¸ia primelor motoare de c˘autare
aparit¸ia primelor motoare de c˘autare pentru site-uri FTP (Archie, WAIS)
aparit¸ia primelor motoare de c˘autare axate pe site-uri WEB:
Wandex – 1993 – Matthew Gray, MIT
Aliweb – 1993
WebCrawler – 1994 – primul motor de c˘autare bazat pe robot¸i web
Lycos – 1994
Excite, Infoseek, Inktomi, Northen Light ¸si Altavista
se fixeaz˘a bazele pentru c˘autarea automat˘a a documentelor text

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Scurt istoric

Scurt istoric (3)

2000

dezvoltarea conceptului de analiz˘a a link-urilor – motorul de c˘autare Google: ap˘arut ˆın 2001, impune
dezvoltarea conceptului de analiz˘a a link-urilor – motorul de c˘autare Google:
ap˘arut ˆın 2001, impune primul model de evaluare automat˘a a paginilor WEB
Yahoo! achizit¸ioneaz˘a Inktomi (2002) ¸si Ouverture (2003) – lanseaz˘a propriul
motor de c˘autare ˆın 2004
primul motor care implementeaz˘a conceptul de “live search”
MSN Search – an aparit¸ie 2004 (2005 se presupune a fi anul primei utiliz˘ari)
extinderea formatului ¸int˘t
a – c˘autare ˆın imagini, filme, fi¸siere audio

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Particularit˘at¸i ale domeniului de c˘autare

Particularit˘at¸i ale domeniului de c˘autare

de c˘autare Particularit˘at¸i ale domeniului de c˘autare Provoc˘ari Date distribuite – documentele ˆın cadrul

Provoc˘ari Date distribuite – documentele ˆın cadrul WEB sunt ˆımp˘art¸ite peste cˆateva milioane de servere WEB.

Datele sunt volatile – un num˘ar semnificativ de documente se schimb˘a sau dispar ˆıntr-un ritm foarte alert.

Datele nu sunt structurate ¸si, de cele mai multe ori, sunt redundante – nu exist˘a structur˘a uniform˘a, HTML nu este un limbaj strict din punct de vedere al sintaxei. Unele surse estimeaz˘a 30% documente duplicate ˆın cadrul WWW.

Calitatea datelor – nu exist˘a “control editorial”, de multe ori informat¸iile prezentate de anumite documente web sunt informat¸ii eronate sau cont¸in un num˘ar considerabil de gre¸seli.

Diversitatea tipurilor de documente – divesitate ce trebuie privit˘a la nivel

la nivel

de tip de date (text, VRML, flash, imagini, filme, cont¸inut audio, de limb˘a de redactare, la nivel de codare a caracterelor, etc.

),

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Prezentare general˘a

Componentele principale ale motoarelor de c˘autare

Structura minimal˘a

Modul de tip spider/crawler are rolul de a colecta documentele pe web

Modul de tip indexer/de analiz˘a are rolul de a procesa ¸si analiza datele

Modul de interfat¸˘a cu utilizatorul are rolul de a prelua cererile utilizator ¸si de a formula r˘aspunsuri

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Prezentare general˘a

Motor de c˘autare pe WEB

Prezentare general˘a Motor de c˘autare pe WEB Figura 1: Arhitectura general˘a a motoarelor de c˘autare

Figura 1: Arhitectura general˘a a motoarelor de c˘autare pe WEB

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Definit¸ii ¸si exemple

Definit¸ii

Robot¸i WEB

Robot web (Web Crawler/Web Spider)

browser automat care exploreaz˘a WEB-ul, urmˆand fiecare domeniu ¸si fiecare link WEB;

ˆın prezent exist˘a peste 300 de robot¸i web activi (conform http://www.robotstxt.org/db.html).

Web Crawling Procesul prin care sunt colectate, ˆıntr-o manier˘a automat˘a, pagini WEB pentru a fi analizate.

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Definit¸ii ¸si exemple

Exemple

Inktomi Slurp – C/C++, Unix

UserAgent: Slurp/2.0

ultima modificare: 1997

Googlebot – C++, Linux

UserAgent: Googlebot/2.1 (+http://www.google.com/bot.html)

Ultima modificare: 2001

MSNBot – C++, Windows Server 2000/2003

UserAgent: msnbot/2.1 / msnbot/1.1 (+http://search.msn.com/msnbot.htm)

ultima modificare: 2003

Yahoo! Slurp – bazat pe Inktomi Slurp

UserAgent: Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)

Cuprins Preliminarii Arhitectura motoarelor de c˘autare Robot¸i WEB Bibliografie Caracteristici Caracteristici
Cuprins
Preliminarii
Arhitectura motoarelor de c˘autare
Robot¸i WEB
Bibliografie
Caracteristici
Caracteristici
Caracteristici fundamentale
ROBUSTET¸EA : trebuie evitate capcanele (“spider traps”)
spider trap – generatoare automate de pagini web menite s˘a
ment¸in˘a un robot web ˆıntr-un anumit domeniu pentru o
durat˘a cˆat mai mare de timp
acela¸si efect poate fi generat ¸si de o dezvoltare/implementare
gre¸sit˘a a paginilor WEB
POLITET¸EA : un robot web trebuie “s˘a se prezinte” ¸si s˘a respecte politicile de
tip privacy
trebuie s˘a respecte REP – Robot Exclusion Protocol

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Caracteristici

Caracteristici (2)

Caracteristici recomandate

˘

Arhitectur˘a DISTRIBUIT A

un robot web bine dezvoltat ar trebui s˘a fie capabil s˘a ruleze ˆıntr-o manier˘a distribuit˘a.

˘

Arhitectur˘a SCALABIL A

arhitectura robotului web trebuie permit˘a adapatarea corepunz˘atoare a funct¸ionalit˘at¸ii relativ la variat¸ia num˘arului de ma¸sini pe care ruleaz˘a/l˘at¸imii de band˘a alocate la un anumit moment de timp.

trebuie s˘a gestioneze corect resursele sistem disponibile.

˘

Arhitectur˘a EXTENSIBIL A

adaptarea rapid˘a a robotului ˆın cazul modific˘arii tipurilor de date (relativ la schimbarea documentelor), al protocoalelor de transport utilizate, etc.

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Caracteristici

Caracteristici (3)

Caracteristici recomandate (2)

Rezultate de CALITATE

un robot web ar trebui s˘a fie capabil s˘a elimine paginile slabe din punct de vedere al cont inutului.

,

Cont¸inut NOU

caracteristic˘a recomandat˘a ˆın special ˆın cazul robot¸ilor destinat¸i s˘a ruleze continuu;

semnificat¸ie diferit˘a ˆın funct¸ie de produc˘atorul fiec˘arui robot WEB.

Cuprins

Preliminarii

Protocoale specifice – REP

Protocolul REP

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Concepte generale

Acronim REP Robots Exclusion Protocol

NU reprezint˘a un protocol ˆın sensul strict al definit¸iei not¸iunii de protocol, ˆın sensul c˘a robot¸ii WEB nu sunt strict dependet¸i de acest standard. Un robot bine implementat va respecta indicat¸iile acestui protocol, dar, ˆın general, un robot NU este m˘arginit ˆın explorare de simpla implementare a protocolului.

ˆ

Incercare de standardizare (2007): Automated Content Access Protocol

ACAP (http://www.the-acap.org/)

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (2)

Robot¸i WEB

Bibliografie

Implementare

robots.txt

fi¸sier text inclus ˆın root-ul unui domeniu WEB

regulile incluse ˆın acest fi¸sier afecteaz˘a tot domeniul WEB!

Tag-ul HTML <META>

dac˘a sunt prezente, regulile incluse ˆın acest mod afecteaz˘a numai pagina curent˘a!

regulile META afecteaz˘a atˆat robotul de c˘autare, cˆat ¸si modulele de analiz˘a!

Atribute adit¸ionale pentru tag-ul <a>

dac˘a sunt prezente, aceste atribute nu afecteaz˘a (ˆın mod direct) direct robotul de c˘autare, ci modulele de analiz˘a!

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (3)

Robot¸i WEB

Bibliografie

Sintaxa – Tag-ul <META>

<meta name="robots" content="restrictii,sau,permisiuni" /> Valori posibile pentru atributul content:

index / noindex – refer˘a indexarea paginii

follow / nofollow – permisiuni referitoare la link-urile incluse ˆın cadrul paginii curente

all / none – combinat¸ii de tip acces total / blocaj total

/ none – combinat¸ii de tip acces total / blocaj total Sintaxa – Tag-ul < a

Sintaxa – Tag-ul <a> rel="nofollow"

prin aceast˘a valoare a atributului rel se indic˘a faptul c˘a pagina curent˘a “nu voteaz˘a” relat¸ia indicat˘a

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (4)

Robot¸i WEB

Bibliografie

Sintaxa – Fi¸sierul robots.txt

set de ˆınregistr˘ari ce cont¸in una sau mai multe clauze

o clauz˘a trebuie ˆıntotdeauna scris˘a pe un singur rˆand ¸si respect˘a

urm˘atoarea sintax˘a:

<field>:<optionalspace><value><optionalspace>

ˆınregistr˘arile sunt departajate prin linii vide

eventuale linii tip comentariu ˆıncep cu caracterul “#” Clauze standard:

User-agent: marcheaz˘a ˆınceputul unei ˆınregistr˘ari prin a specifica asupra c˘arui robot WEB se aplic˘a setul de clauze cont¸inut ˆın ˆınregistrare. Valoare special˘a: * – ˆınregistrarea curent˘a se aplic˘a tuturor robot¸ilor! Disallow: specific˘a tiparul URI-urilor asupra c˘aruia robotul specificat de User-agent nu are drept de acces

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (4)

Robot¸i WEB

Bibliografie

Exemplul 1 – Permisiuni complete pentru orice robot

User-agent:

*

Disallow:

Exemplul 2 – Blocarea oric˘arui robot

User-agent:

Disallow:

/

*

Exemplul 3 – Blocarea accesului asupra unui singur fisier ˆın mod explicit

User-agent:

Disallow:

*

/directory/file.html

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (5)

Robot¸i WEB

Bibliografie

Exemplul 4 – Blocarea unui set de directoare

User-agent:

*

Disallow:

/cgi-bin/

Disallow:

/images/

Disallow:

/tmp/

Disallow:

/private/

Exemplul 5 – Blocarea explicit˘a a unui singur robot

User-agent:

MyBot

Disallow:

/cgi-bin/

Disallow:

/images

Disallow:

/tmp/

Disallow:

/private/

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – REP

Protocolul REP (6)

Robot¸i WEB

Bibliografie

– REP Protocolul REP (6) Robot¸i WEB Bibliografie Sintaxa – Fi¸sierul robots.txt (2) Clauze standard

Sintaxa – Fi¸sierul robots.txt (2) Clauze standard extinse:

Request-rate: specific˘a rata maxim˘a a cererilor efectuate c˘atre site-ul curent Visit-time: specific˘a intervalul
Request-rate: specific˘a rata maxim˘a a cererilor efectuate c˘atre site-ul curent
Visit-time: specific˘a intervalul orar ˆın care este permis˘a act¸iunea robot¸ilor pe
site-ul curent
Clauze nestandard:
Crawl-delay: parametru ˆıntreg – dac˘a este prezent˘a, specific˘a intervalul de
timp de a˘steptare ˆıntre dou˘a cereri consecutive
Allow: specific˘a tiparul URI-urilor asupra c˘aruia robotul are drept de acces
Sitemap: ofer˘a un set de detalii extinse pentru robot¸ii marcat¸i

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – Sitemap

Protocolul Sitemap

Robot¸i WEB

Bibliografie

Concepte generale

Similar REP, NU este un protocol standard. Trebuie privit mai mult ca un mecanism prin
Similar REP, NU este un protocol standard.
Trebuie privit mai mult ca un mecanism prin intermediul c˘aruia un
dezvoltator Web poate coordona act¸iunile unui robot Web pe un site ¸int˘t
a.
ˆ
In esent¸˘a, un sitemap nu reprezint˘a altceva decˆat un document XML:
element root:
<urlset> (specific˘a versiunea de protocol Sitemap utilizat);
prin intermediul elementelor
<url> (element copil pentru <urlset>) se pot
oferi diferite informat¸ii despre URL-urile importante, precum:
locat¸ia – elementul copil <loc> (obligatoriu);
data ultimei modific˘ari a URL-ului curent – elementul copil <lastnmod>
(opt¸ional);
frecvet¸a modific˘arilor URL-ului curent – elementul copil <changefreq>
(opt¸ional);

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Protocoale specifice – Sitemap

Protocolul Sitemap (2)

Robot¸i WEB

Bibliografie

Exemplu de fi¸sier Sitemap (preluare [6])

<?xml

<urlset

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=

"http://www.sitemaps.org/schemas/sitemap/0.9

http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

version=’1.0’

encoding=’UTF-8’?>

xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"

<url> <loc>http://example.com/</loc>

<lastmod>2006-11-18</lastmod>

<changefreq>daily</changefreq>

<priority>0.8</priority>

</url>

</urlset>

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Arhitectura general˘a

Modulele componente ale unui robot WEB

general˘a Modulele componente ale unui robot WEB Figura 2: Componentele unui robot WEB RIWeb 2014 –

Figura 2: Componentele unui robot WEB

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Arhitectura general˘a

Modulele componente ale unui robot WEB (2)

general˘a Modulele componente ale unui robot WEB (2) Modulul DNS Are rolul de a determina server-ul

Modulul DNS Are rolul de a determina server-ul WEB ce cont¸ine pagina indicat˘a de URL-ul aflat ˆın lucru ˆın pasul curent.

Trebuie s˘a implementeze politici de caching eficiente.

Trebuie s˘a implementeze politici de caching eficiente. Modulul FETCH-er Are rolul de a desc˘arca pagina

Modulul FETCH-er Are rolul de a desc˘arca pagina indicat˘a de un anumit URL aflat ˆın lucru ˆın pasul curent.

Funct¸ionalitatea trebuie strict corelat˘a cu ¸inta/tipult

Trebuie s˘a respecte politicile de privacy/REP.

motorului de c˘autare

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Arhitectura general˘a

Modulele componente ale unui robot WEB (3)

general˘a Modulele componente ale unui robot WEB (3) Modulul PARSER Are rolul de a extrage textul,

Modulul PARSER Are rolul de a extrage textul, leg˘aturile, precum ¸si celelalte informat¸ii de interes dintr-o pagin˘a desc˘arcat˘a.

informat¸ii de interes dintr-o pagin˘a desc˘arcat˘a. Modulul de filtrare a leg˘aturilor Are rolul de a

Modulul de filtrare a leg˘aturilor

Are rolul de a determina dac˘a o anumit˘a leg˘atur˘a (din cadrul utimului set de leg˘aturi extrase) a mai fost sau nu vizitat˘a sau ad˘augat˘a ˆın coada de lucru.

Poate fi adaptat pentru filtrarea paginilor duplicat.

Trebuie s˘a respecte REP/politicile de tip privacy.

Trebuie s˘a respecte REP /politicile de tip privacy . Coada de URL-uri – URL FRONTIER Cont¸ine

Coada de URL-uri – URL FRONTIER Cont¸ine lista de URL-uri ce ar trebui tratate de c˘atre crawler-ul WEB.

Cont¸ine lista de URL-uri ce ar trebui tratate de c˘atre crawler-ul WEB. RIWeb 2014 – 2015/C06:

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Arhitectura general˘a

Modulul URL Frontier

Rolul modulului ˆ In mod uzual, modulul URL Frontier are rol de a implementa: 1
Rolul modulului
ˆ
In mod uzual, modulul URL Frontier are rol de a implementa:
1 politicile de prioritizare a documentelor WEB aduse de c˘atre robotul WEB;
2 politicile de revizitare a documentelor WEB procesate de c˘atre robotul WEB;
3 (part¸ial)regulile de acces prev˘azute de REP.
Structur˘a Este organizat pe dou˘a seturi de cozi: 1 cozi de intrare – gestioneaz˘a prioritatea
Structur˘a
Este organizat pe dou˘a seturi de cozi:
1 cozi de intrare – gestioneaz˘a prioritatea documentelor WEB ¸si politicile de
revizitare;
2 cozi de ie¸sire – gestioneaz˘a part¸ial regulile de acces pe un server WEB (site
¸int˘t
a). Fiecare dintre cozile de ie¸sire mapeaz˘a ˆın general un singur domeniu
WEB.

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Arhitectura general˘a

Modulul URL Frontier (2)

Arhitectura general˘a Modulul URL Frontier (2) Figura 3: Structura generic˘a a unui URL Frontier

Figura 3: Structura generic˘a a unui URL Frontier [adaptare dup˘a 2 - cap. 20]

Cuprins

Preliminarii

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

Pseudocod minimal

Pseudocod (adaptare dup˘a [3])

Algoritm 1 Pseudocod generic pentru un robot WEB

1: Initializeaza coada (Q) cu un set primar de URL-uri

2: while C1: Q contine pagini sau nu a fost atinsa limita maxima de pagini sau de timp do

3:

Fie L un URL din Q

4:

if L != HTML then

5:

Re-evalueaza C1

6:

end if

7:

if L == vizitat then

8:

Re-evalueaza C1

9:

end if

10:

Descarca P = continutul lui L

11:

if P != NULL then

12:

Indexeaza P

13:

Extrage din P o lista noua de legaturi N

14:

Adauga N la Q

15:

end if

16: end while

Cuprins

Preliminarii

Bibliografie

Arhitectura motoarelor de c˘autare

Robot¸i WEB

Bibliografie

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

4 Thomas A. Henzinger, Information Retrieval and Web Search, Note de curs