122
TOKE: Eina de suport als processos de webmining basada en programari lliure Albert Nadal i Garriga <[email protected]> Universitat Rovira i Virgili Escola T` ecnica Superior d’Enginyeria EnginyeriaInform`atica Projecte de fi de carrera agost de 2005

TOKE: Eina de suport als processos de webmining basada en programari lliure

Embed Size (px)

DESCRIPTION

L’objectiu d’aquest projecte consisteix en dissenyar i elaborar una aplicació multifuncional en Java, per a fer possible l’exploració i indexació de continguts web. Així doncs, s’han desenvolupat tres eines dedicades a realitzar tasques d’exploració, indexació de documents explorats, i recerca de continguts específics en la xarxa. La idea d’aquest projecte sorgeix del boom d’Internet en els últims anys i la necessitat de disposar de mitjans per a organitzar la informació i accedir a aquesta de forma ràpida.

Citation preview

Page 1: TOKE: Eina de suport als processos de webmining basada en programari lliure

TOKE: Eina de suport als processos de webmining

basada en programari lliure

Albert Nadal i Garriga

<[email protected]>

Universitat Rovira i Virgili

Escola Tecnica Superior d’Enginyeria

Enginyeria Informatica

Projecte de fi de carrera

agost de 2005

Page 2: TOKE: Eina de suport als processos de webmining basada en programari lliure

1

Fins on pot arribar el programari lliure? No hi ha lımits, llevat

quan lleis com els sistemes de patents prohibeixen el programari

lliure en la seva totalitat. L’objectiu final es oferir programari

lliure capac de realitzar totes les tasques que els usuaris volen

dur a terme, i per tant fer aixı el programari propietari obsolet...

Page 3: TOKE: Eina de suport als processos de webmining basada en programari lliure

Index

1 Introduccio 4

2 Exploracio Web 62.1 Requeriments . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Disseny general del web crawler . . . . . . . . . . . . . . . . . 10

2.2.1 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . 122.2.2 Estructures de dades . . . . . . . . . . . . . . . . . . . 162.2.3 Comunicacio entre el web crawler i un servidor . . . . 212.2.4 Extraccio d’hipervincles . . . . . . . . . . . . . . . . . 222.2.5 Esquema general del web crawler . . . . . . . . . . . . 24

2.3 Anomalies que afecten a l’exploracio . . . . . . . . . . . . . . 252.3.1 Problemes derivats de la xarxa . . . . . . . . . . . . . 252.3.2 Resolucio massiva de DNS . . . . . . . . . . . . . . . . 272.3.3 Implementacions HTTP . . . . . . . . . . . . . . . . . . 272.3.4 Codificacio HTML . . . . . . . . . . . . . . . . . . . . . 292.3.5 Caracterıstiques dels continguts web . . . . . . . . . . 302.3.6 Pagines web dinamiques . . . . . . . . . . . . . . . . . 31

2.4 Parametres i configuracions . . . . . . . . . . . . . . . . . . . 322.5 Estrategies d’exploracio . . . . . . . . . . . . . . . . . . . . . 35

2.5.1 Breadth-First . . . . . . . . . . . . . . . . . . . . . . . 362.5.2 Depth-First . . . . . . . . . . . . . . . . . . . . . . . . 362.5.3 Backlink-Count . . . . . . . . . . . . . . . . . . . . . . 392.5.4 Batch-Pagerank . . . . . . . . . . . . . . . . . . . . . . 392.5.5 Larger-sites-first . . . . . . . . . . . . . . . . . . . . . 39

2.6 Exploracions d’arees restringides . . . . . . . . . . . . . . . . 40

3 Extraccio i indexacio d’informacio 423.1 Extraccio d’informacio . . . . . . . . . . . . . . . . . . . . . . 423.2 Crear un ındex . . . . . . . . . . . . . . . . . . . . . . . . . . 453.3 Esquema general de l’indexador . . . . . . . . . . . . . . . . . 49

2

Page 4: TOKE: Eina de suport als processos de webmining basada en programari lliure

INDEX 3

4 Diagrames de classe 514.1 Aplicacio exploradora . . . . . . . . . . . . . . . . . . . . . . 514.2 Aplicacio indexadora . . . . . . . . . . . . . . . . . . . . . . . 524.3 Aplicacio de cerca . . . . . . . . . . . . . . . . . . . . . . . . 61

5 Llibreries utilitzades 735.1 Lucene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.2 Jung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.3 JTidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.4 PDFBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.5 Jakarta POI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775.6 IR-Webutils . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.7 HTTPClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.8 JFreeChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

A Manual d’aplicacio per a l’usuari 82A.1 Requeriments . . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.2 Instal·lacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.3 Explorar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

A.3.1 Panells de control . . . . . . . . . . . . . . . . . . . . 86A.3.2 Configuracio de parametres d’exploracio . . . . . . . . 88A.3.3 Panells de monitoritzacio i estadıstiques . . . . . . . . 89A.3.4 Exploracio - Operacions basiques . . . . . . . . . . . . 92A.3.5 Explorar una area restringida . . . . . . . . . . . . . . 98A.3.6 Visualitzacio de grafs . . . . . . . . . . . . . . . . . . 101

A.4 Indexar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103A.4.1 Configuracio dels parametres d’indexacio . . . . . . . 103A.4.2 Indexar - Operacions basiques . . . . . . . . . . . . . . 108

A.5 Cercar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111A.5.1 Cercar en un ındex local . . . . . . . . . . . . . . . . . 111A.5.2 Cercar en un ındex remot . . . . . . . . . . . . . . . . 113A.5.3 Montar un servidor de cerques . . . . . . . . . . . . . 113

B Conclusio i propostes per al futur 116

C Preguntes mes frequents 118

Page 5: TOKE: Eina de suport als processos de webmining basada en programari lliure

Capıtol 1

Introduccio

L’objectiu d’aquest projecte consisteix en dissenyar i elaborar una aplicaciomultifuncional en Java, per a fer possible l’exploracio i indexacio de con-tinguts web. Aixı doncs, s’han desenvolupat tres eines dedicades a realitzartasques d’exploracio, indexacio de documents explorats, i recerca de con-tinguts especıfics en la xarxa. La idea d’aquest projecte sorgeix del boomd’Internet en els ultims anys i la necessitat de disposar de mitjans per aorganitzar la informacio i accedir a aquesta de forma rapida. Actualmentresulta difıcil i complex classificar o categoritzar la informacio, ja que aques-ta creix a un ritme accelerat, tenint en compte que els continguts informatiustenen tendencia a generar-se sense seguir un model o patro concret.

A causa de la gran quantitat d’informacio i la necessitat de localitzaraquesta en el menor temps possible, s’han desenvolupat sistemes per facil-itar i flexibilitzar la tasca de cercar informacio sense haver de recorrer alrıgid procediment de categoritzar-la jerarquicament en un proces previ. Enaquest terreny cal parlar dels sistemes d’extraccio i indexacio d’informa-cio (Information Retrieval), entre els quals cal destacar-ne un que potconsiderar-se com uns dels protagonistes o elements principals d’aquest pro-jecte. Es tracta de Lucene, una llibreria de codi obert per a Java, que afegeixfuncionalitats d’indexacio i cerca a les aplicacions.

L’element central d’aquest projecte de final de carrera, que s’hi ha ded-icat mes atencio, es l’eina d’exploracio. Es tracta d’una eina forca com-pleta que pot ser utilitzada amb finalitats, que no nomes es limiten a lesmencionades en les lınies anteriors, sino que abarquen aspectes, no menysimportants, com ara l’analisi i visualitzacio de xarxes de nodes web. Enaquest sentit cal destacar la possibilitat de generar estadıstiques, detectarproblemes, i fins i tot, representar graficament, i en forma de graf, les explo-racions realitzades. Seguint amb aquesta lınia, les eines d’indexacio i cercason reforcades amb un conjunt de funcionalitats addicionals, com ara la

4

Page 6: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 1. INTRODUCCIO 5

generacio de fitxers de frequencies de paraules que poden ser usats per a re-alitzar estudis de clustering d’informacio i, la possibilitat d’usar un servidordesenvolupat exclusivament per a realitzar cerques sobre ındexs d’informa-cio remots.

Juntament amb el software implementat s’inclou aquesta documentacioo memoria del projecte, en la qual s’intenta explicar de manera general coms’han desenvolupat les diferents parts que composen l’aplicacio, aixı com elseu funcionament intern detallat. Es preten que la persona que ho llegeixiobtingui una idea clara del que s’ha fet, com s’ha fet i comprengui els ben-eficis que aporta usar una eina d’aquestes caracterıstiques. L’autor d’aquestprojecte vol deixar constancia que tot el material desenvolupat, tant el codifont com aquest document, es gratuıt i de codi obert, per tant, aixo donadret a que qualsevol persona pugui obtenir i utilitzar aquest material. Comque es tracta de codi obert, totes les distribucions d’aquesta aplicacio in-clouen el seu corresponent codi font per tal que pugui ser estudiat, reciclato modificat sense finalitats lucratives.

Tot el material pot ser adquirit a traves de la web http://toke.sourceforge.net

o be, a partir de la web del seu autor http://www.telefonica.net/web2/albertng

Page 7: TOKE: Eina de suport als processos de webmining basada en programari lliure

Capıtol 2

Exploracio Web

Per tal de poder explorar i analitzar els documents emmagatzemats en elsdiferents servidors web que composen una xarxa local o una internet, fafalta disposar d’eines de cerca que duguin a terme la tasca d’explorar irecorrer documents web navegant a traves dels seus corresponents hipervin-cles(URLs). Aquesta tasca es du a terme mitjancant aplicacions anomenadesweb crawlers, les quals s’encarreguen de travessar la Web seguint hipervin-cles i emmagatzemant al disc els documents explorats i descarregats, per talque mes tard, puguin ser tractats per dur a terme determinades operacionsd’analisis sobre els documents.

Els web crawlers son principalment usats pels cercadors web, com ara,Google, Yahoo o Altavista, entre d’altres. Aquestes entitats proporcionenuna potent eina de cerca pels usuaris d’Internet, els quals poden localitzarel document web que els interessa tant sols inserint un breu nombre de pa-raules clau relacionades amb la tematica que busquen. De cara a l’usuari,la principal tasca dels cercadors web es limita a proporcionar aquella in-formacio concreta que l’usuari vol trobar, el mes rapid possible, realitzantla cerca a traves d’una base de dades adientment indexada. L’altra tas-ca dels cercadors web consisteix en explorar la Web per tal de proporcionarnova informacio que sera emmagatzemada o actualitzada a la base de dades.

Una aplicacio de web crawling pot ser implementada amb tant sols un-es poques lınies de codi en llenguatges de programacio de d’alt nivell comara Java o Python. Tanmateix, existeixen un conjunt de problemes que enuna exploracio a petita escala serien mınims, pero que en una exploracioa gran escala podrien resultar seriosament complicats. Un dels principalsproblemes es explorar documents emmagatzemats en servidors, que presen-ten comportaments que afecten al rendiment de la exploracio. Per exemple,un servidor que accepta les connexions entrants, pero que falla a l’hora derespondre, o simplement respon a una velocitat molt lenta.

6

Page 8: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 7

Figura 2.1: Web crawling - Algorisme general

Page 9: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 8

Figura 2.2: Funcionament intern de Google

Un altre tipus de trampa per a un web crawler es provar de descarregardocuments que tenen un tamany excesivament elevat o explorar un servidorweb que genera dinamicament les seves pagines i els corresponents hipervin-cles, de manera que una exploracio sobre aquest servidor no finalitza mai.

Una de les principals caracterıstiques d’un web crawler recau en el nom-bre de pagines que es capac d’explorar per unitat de temps. Per tal dedescarregar un bilio de pagines en un any, un web crawler hauria de sercapac de mantenir una taxa de descarrega de 32 pagines per segon. Tan-mateix, els motors de busqueda emprats pels cercadors web mes importants,no nomes han de ser capacos d’explorar nous documents, sino que a mes ames, han de ser capacos de detectar i descarregar aquells documents que jahan estat descarregats anteriorment i, que el seu contingut ha caducat o ha

Page 10: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 9

estat actualitzat.

Aquest fet posa de manifest la importancia d’efectuar exploracions elmes rapid possible.

El web crawler proposat en aquest projecte ha estat dissenyat per su-portar exploracions de mitjana escala, es a dir, explorar un conjunt de do-minis d’Internet o simplement explorar la web d’una xarxa local amb unelevat nombre de servidors interconnectats entre si mitjancant hipervincles.Amb una bona configuracio, pot descarregar grans quantitats de documentsaprofitant l’ample de banda i generar resultats i estadıstiques a partir dela informacio d’estat acumulada durant l’exploracio. Es tracta d’un webcrawler flexible que permet configurar cada exploracio modificant un grannombre de parametres disponibles. Durant els proxims apartats, es descriuel funcionament intern del web crawler implementat en aquest projecte.Concretament, es tractara d’explicar detalladament els aspectes mes desta-cats que afecten a l’estructura, rendiment, fiabilitat i les diferents estrategiesde crawling emprades, aixı com les estructures de dades que calen per talque tot el conjunt funcioni correctament i de manera eficient.

2.1 Requeriments

A continuacio, s’expliquen els requeriments que ha de tenir un bon webcrawler, i els procediments que cal seguir per a assolir-los:

Flexibilitat Consisteix en que el sistema pugui ser utilitzat en diferentsescenaris, aplicant el menor nombre de canvis possible.

Baix cost i alt rendiment El sistema hauria de ser capac de descarregarvaris centenars de pagines web per segon i centenars de milions de paginesper exploracio, i a mes a mes, hauria de funcionar amb el mınim cost possibleen termes de hardware. Es important destacar que l’us eficient dels accessosal disc es determinant per mantenir una alta velocitat, ja que en algunscasos la memoria principal de l’equip no es suficient per emmagatzemar lesestructures de dades. Aquests casos nomes succeeixen despres de descarregarvaris milions de pagines.

Robustesa En aquest apartat hi ha diferents aspectes. Tot i que el sis-tema ha de ser capac d’interactuar amb milions de servidors, a mes a mes,aquest ha de ser capac de tolerar documents web mal formats, configura-cions i comportaments estranys de servidors web, i moltes altres situacionsanomales. L’objectiu es basa en explorar amb precaucio, i si es necessari,

Page 11: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 10

ignorar pagines i servidors web sencers amb comportaments no desitjats, iper tant, descarregar nomes subconjunts de pagines. A mes a mes, cal teniren compte que una exploracio pot durar semanes o mesos, i per tant, elsistema ha de ser capac de tolerar fallides i interrupcions de la xarxa, in-tentant perdre la menor quantitat d’informacio possible. Aixı doncs, l’estatdel sistema ha de ser guardat al disc. Una bona estrategia consisteix ensincronitzar periodicament les estructures principals al disc, i reexplorar unnombre limitat de pagines despres d’una fallida del sistema.

Control de velocitat Es molt important seguir les convencions estandarsd’exclusio de robots web (robots.txt i els meta tags de les pagines web). Ames a mes, cal controlar la velocitat d’acces en diferents aspectes. Calevitar saturar els servidors web mitjancant descarregues massives. es moltrecomanable controlar la velocitat de descarrega en un determinat nivell dedomini(subdomini), amb l’objectiu de no generar denegacions de servei apetits servidors web de manera involuntaria. Finalment, si el web crawlers’executa dins d’un entorn tancat, com ara, un campus universitari on laconnexio es compartida amb la resta d’usuaris de la xarxa, cal controlardetalladament la taxa de descarrega del crawler. En particular, cal explorara un ritme baix durant les hores de mes activitat de la xarxa, i a un ritmeelevat durant la nit que es quan el trafic de la xarxa es mınim.

Manejabilitat i reconfigurabilitat Una apropiada interfıcie es necessariaper monitoritzar l’exploracio incloent la velocitat d’aquesta, estadıstiques so-bre els hosts i les pagines, i els tamanys de les estructures principals. L’ad-ministrador ha de ser capac d’ajustar la velocitat, afegir i treure components,aturar el sistema, forcar una pausa, o simplement afegir hosts i dominis auna llista negra d’URLs que el web crawler haura d’evitar descarregar. De-spres d’una fallida o aturada de la xarxa, el software del sistema pot sermodificat per arreglar els problemes i per tant, poder continuar l’exploracioutilitzant una configuracio diferent. Els resultats d’una llarga exploracioacostumen a ser notablement diferents dels que hi havia al principi.

2.2 Disseny general del web crawler

Abans d’explicar l’esquema general, cal tenir clar que les quatre parts mesimportants d’un web crawler son les que s’expliquen a continuacio:

• Estructura de dades que conte les URLs pendents d’explorar.

• Estructura de dades que conte les URLs ja explorades.

• Sistema de resolucio de DNS.

• Sistema de descarrega de documents.

Page 12: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 11

El web crawler ha de disposar d’una estructura de dades que emma-gatzemi totes les URLs que resten pendents de ser explorades. Aquestaestructura s’ha d’interpretar com una llista d’elements, de manera que laseguent URL en ser explorada sera la primera de la llista. En funcio del’estrategia d’exploracio que s’utilitzi, les noves URLs s’inseriran al principi,al final o en alguna posicio concreta de la llista.

L’estructura de dades que conte les URLs ja explorades te un pes moltimportant dins de l’aplicacio. La seva tasca elemental es basa en memo-ritzar les URLs que han estat explorades i permetre saber si una URL jaha estat explorada anteriorment, per tal d’evitar descarregar pagines que jaho estan. En el web crawler implementat, aquesta estructura proporcionauna seguit de funcionalitats addicionals que s’explicaran mes endavant. Jaque la prioritat principal es la velocitat d’exploracio, es a dir, el nombrede pagines explorades per unitat de temps, es molt important que les dosestructures de dades mencionades ofereixin temps de resposta mınims.

La resolucio de DNS o resolucio de nom de domini s’empra per tal queel web crawler pugui obtenir l’adreca IP associada al nom de domini d’unadeterminada url. En UNIX s’acostuma a utilitzar la crida gethostbyname(),mentre que Java ja disposa d’un sistema de resolucio de DNS juntament ambla llibreria de classes dedicada al desenvolupament d’aplicacions de xarxa.La fase de resolucio de DNS s’acostuma a implementar seguint el mateix sis-tema que s’utilitza per les descarregues de documents. Multiples peticionsde resolucio de DNS s’efectuen en paral·lel de manera assıncrona o mitjancanttimeouts.

En Java, la resolucio de DNS es moderadament efectiva, perque que lainterfıcie de la API dedicada a aquesta tasca es del tipus synchronized, esa dir, multiples peticions de DNS simultanies s’encuen i son tractades demanera sequencial. La solucio a aquest petit problema no ha estat imple-mentada durant el desenvolupament d’aquest web crawler realitzat en Java,tanmateix; la implementacio d’un sistema de resolucio de DNS propi basaten multiples fils d’execucio concurrents ho solucionaria.

Es important destacar que, a diferencia de les persones, una aplicacio deweb crawling que treballa amb una connexio d’alta velocitat (ATM o GigabitEthernet), es limita basicament a provar de descarregar centenars de paginesper minut, generant un trafic i un nombre de peticions de descarrega moltelevats en poc temps. Aixo pot provocar problemes de denegacio de serveia petits servidors web amb recursos limitats, activar el mode d’alarma ensistemes de deteccio d’intrusions o fins i tot; acaparar tot l’ample de ban-da de la connexio suposant que es posi en funcionament dins d’una petitaxarxa local. Queda clar que cal configurar adientment el web crawler abans

Page 13: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 12

Figura 2.3: Interaccio entre l’aplicacio de crawling i el gestor de descarregues

de posar-lo en marxa.

2.2.1 Arquitectura

Existeixen diferents possibilitats alhora de desenvolupar un web crawler. Peruna banda, hi ha models basats en entorns distribuıts, es a dir; estacionsde treball que funcionen coordinadament a traves d’una xarxa. Per l’altra,hi ha models totalment centralitzats, com es el cas que s’ha desenvolupaten aquest projecte. En aquest model s’efectuen totes les operacions sobreuna unica maquina, mentre que en el model distribuıt fa falta que existeixialmenys una estacio de treball que planifiqui i reparteixi totes les tasquesque han de realitzar la resta d’equips connectats.

El model centralitzat desenvolupat, es divideix en dos parts claramentdiferenciades: l’aplicacio de crawling i el gestor de descarregues. Ambdosparts interactuen entre si durant tot el proces d’exploracio. L’aplicacio decrawling s’encarrega de generar estadıstiques, escriure dades al disc i gener-ar la informacio d’estat, pero la seva tasca principal es extreure els hiper-vincles de les pagines descarregades i proporcionar les URLs al gestor dedescarregues. En canvi, la tasca del gestor de descarregues consisteix enmantenir i gestionar les estructures de dades de les URLs pendents i de lesURLs ja descarregades, a mes a mes, de planificar les descarregues HTTP iproporcionar els documents descarregats a l’aplicacio de crawling.

Page 14: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 13

Figura 2.4: Esquema general del nucli

La interaccio entre ambdos parts o moduls es basa en un comportamentdel tipus productor i consumidor en circuıt tancat, es a dir, les entrades d’unson les sortides de l’altre, i viceversa. El control de l’exploracio el du a termel’aplicacio de crawling, ja que es aquest qui en gran mesura s’encarrega decontrolar que es compleixin els parametres de configuracio que afecten a ladurada o dimensio de la exploracio: profunditat maxima, nombre lımit depagines a explorar o permıs per explorar enllacos externs.

L’aplicacio de crawling i el gestor de descarregues constitueixen el nuclide l’aplicacio. El nucli es totalment transparent a l’usuari, es a dir, l’usuarinomes pot interactuar amb els resultats generats pel nucli en temps d’ex-ploracio, configurar-ne el seu comportament abans d’iniciar el proces, o entot cas, aturar-lo. La comunicacio entre l’usuari i el nucli passa a travesde la interfıcie d’usuari (GUI) i el controlador de l’aplicacio respectivamentmitjancant les classes InterficieGrafica i WebCrawler del projecte.

Aplicacio de crawling

L’aplicacio de crawling es implementada mitjancant la classe Aranya del pro-jecte. Es tracta d’un modul molt flexible en el sentit que pot ser utilitzataplicant diferents combinacions de configuracions mitjancant els parametresdel seu constructor. Una de les principals caracterıstiques es la possibilitat

Page 15: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 14

de poder ser utilitzat en altres aplicacions de crawling sense necessitat demodificar el seu codi, o si mes no, modificant-ne una petita part si resul-ta necessari. El modul gestor de descarregues es pot considerar la segonapart crıtica del nucli del web crawler, ja que ha estat creat exclusivament perquestions de disseny. D’aquesta manera, a traves del gestor de descarregues,queda encapsulat tot un conjunt d’elements que d’alguna manera tenen unaforta dependencia entre si, com ara, les estructures de dades de nodes visitatsi nodes pendents, el logger d’errors o els fils d’execucio de descarregues HTTP.

Tal i com s’ha dit anteriorment, la tasca principal de l’aplicacio de crawl-ing consisteix en extreure les URLs dels hipervincles dels documents HTML

descarregats. L’aplicacio determina, mitjancant l’extensio del document, sies tracta d’un document HTML o no. El proces d’extraccio d’hipervincles s’ex-plica en detall en els proxims apartats. De cada document s’obte el tamany,el domini i el tipus d’extensio. El tamany el proporciona el propi gestor dedescarregues, mentre que els altres dos atributs s’obtenen analitzant la URLdel document. L’extraccio dels hipervincles es du a terme mitjancant l’usde la classe FiltreHTML del projecte.

Totes les URLs extretes son proporcionades, una a una, al gestor de de-scarregues. L’entrega de cada URL es fa indicant-ne la prioritat, el tipusd’operacio que cal realitzar per a descarregar-la, la profunditat i l’identifi-cador de la URL d’on s’ha extret. La prioritat determina si haura d’anar ala cua de nodes prioritaris pendents de descarregar, o be si anira a la cuade nodes secundaris pendents de descarregar. Una URL es prioritaria si elseu host es el mateix que el de la URL inicial, i a mes a mes, hi ha activatel parametre de prioritats. Els tipus d’operacio de descarrega son tres: GETsimple, GET amb cookies i POST amb cookies. El tipus d’operacio escollit de-pendra de si es fa una exploracio en una regio publica, en una de restringida,o be si es fa una operacio d’auto-completar formulari respectivament.

Mitjancant la URL i el tamany dels documents proporcionats pel gestorde descarregues, s’obtenen les dades necessaries per actualitzar les estadıstiquesi la informacio d’estat de l’exploracio. D’aquesta manera es mantenen ac-tualitzats els histogrames de tamany, extensio i domini. Cada documentdescarregat es guarda en una Intranet al disc. La gestio de la Intranet esfa mitjancant l’us de la classe GestorIntranet del projecte, mitjancant laqual es crea al disc una representacio quasi exacta del sistema de fitxers delsservidors web explorats.

Gestor de descarregues

El gestor de descarregues constitueix la part mes important del nucli, i pertant, del web crawler. Aquest encapsula les estructures de dades que conte-

Page 16: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 15

Figura 2.5: Exemple d’arbre de fitxers

nen informacio sobre els nodes pendents i els nodes ja descarregats. Es dinsdel propi gestor de descarregues on es genera la major activitat de l’apli-cacio durant una exploracio, entenent per activitat, totes aquelles operacionsque produeixen accessos continus a memoria, invocacions a metodes, creaciode processos o entrades i sortides via sockets. Tal i com s’ha comentat enlınies anteriors, el gestor de descarregues es l’encarregat de decidir quinsdocuments web seran explorats i quins cal descarregar en cada moment,aplicant sempre els parametres de configuracio assignats per l’usuari. Esaquest l’unic modul del conjunt que te acces a les estructures de dades itambe el que marca el ritme de tota l’exploracio.

Els inputs o entrades que alimenten el gestor de descarregues son lesURLs proporcionades per l’aplicacio de crawling. L’aplicacio de crawlingproporciona un flux constant de URLs mentre no s’assoleixen els lımits es-tablerts de l’exploracio. Cada nova URL es memoritzada, i per tant s’afegeixal magatzem de URLs(estructura de nodes explorats) amb estat pendent ino descarregat, a mes a mes, s’insereix a la cua de nodes pendents(estructurade nodes pendents). El gestor de descarregues no es preocupa de com had’inserir o extreure elements a la cua de nodes pendents, ja que aquestacua te un comportament o un altre, en funcio de l’estrategia d’exploracioescollida per l’usuari, gracies a l’us del polimorfisme de classes que ofereixJava.

Les URLs que ja han estat explorades o n’estan pendents, es a dir, estroben al magatzem de URLs i tenen l’estat de pendent o descarregat, sonignorades i nomes es te en compte el vincle entre aquesta i la pagina d’origende la qual s’ha extret, ja que aquesta ultima informacio es necessaria per ala composicio del graf de nodes web.

La descarrega de cada document web es fa per mitja de diferents filsd’execucio de descarrega que s’executen concurrentment. Els fils d’execucio

Page 17: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 16

Figura 2.6: Agrupacio de threads

son implementats heredant el comportament de la classe Thread de Java.El nombre de descarregues simultanies l’assigna el propi usuari, i es tambeaquest qui determina el nombre maxim de descarregues simultanies que esfan sobre un mateix host. Aquests dos factors son molt importants, ja quedeterminaran el ritme o velocitat d’exploracio del web crawler, encara quedepenen exclusivament dels recursos de l’equip on s’executa i de l’ample debanda de la connexio utilitzada.

El gestor de descarregues no nomes ha de ser capac de generar processosde descarrega de continguts web, sino que a mes a mes, ha de ser capacde gestionar-los. Aquesta tasca implica coneixer el nombre de fils d’exe-cucio actius i el nombre de fils d’execucio actius assignats a cada host encada moment. Per poder dur a terme aquest control, s’identifica cada fild’execucio mitjancant un identificador, de manera que si l’usuari nomes volun maxim de cinc descarregues simultanies, s’assignaran identificadors ambvalors compresos entre zero i quatre.

L’avantatge d’indentificar cada proces mitjancant un identificador per-met saber en tot moment si el fil n encara resta actiu o be ha finalitzat. Dela mateixa manera, permet saber si hi ha fils d’execucio que s’han quedatpenjats o no. El control dels fils d’execucio assignats a cada host, es fa mit-jancant l’us d’una taula de dispersio o taula de hash, mitjancant la qual espossible saber quants processos actius te assignat un host determinat. Quanja no s’efectuen mes descarregues sobre un host, aquest s’elimina de la taulade hash fins que es tornin a produir descarregues sobre aquest.

2.2.2 Estructures de dades

Les estructures de dades implementades han estat dissenyades per oferirtemps de resposta molt baixos i un consum mınim d’espai en memoria.

Page 18: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 17

Totes les operacions de consulta i insersio s’han implementat aplicant al-gorismes amb costos computacionalment acceptables, ja que aquest tipusd’operacions succeeixen durant tot el transcurs d’una exploracio de man-era quasi ininterrumpuda. L’aplicacio consta de nombroses estructures dedades, algunes de mes complexes i d’altres de mes simples, com ara, la taulade hash utilitzada pel control dels fils d’execucio. Durant les proximes lınies,s’explicaran, en detall les dos estructures de dades mes importants d’aque-sta aplicacio: l’estructura de nodes(URLs) explorats i l’estructura de nodespendents d’explorar.

Estructura de nodes explorats

Aquesta es l’estructura de dades mes important de tot el web crawler. Nonomes serveix per memoritzar aquelles URLs que s’han descarregat, sino queconte informacio detallada de qualsevol document web descobert durant eltranscurs del proces, com ara, el tipus de document, la profunditat, l’iden-tificador, el seu estat, les URLs de sortida o les URLs d’entrada. D’aquestamanera, el gestor de descarregues pot obtenir la informacio que necessitade qualsevol url. L’estructura consisteix en un arbre Trie(Arbre Digital deCerca), el qual proporciona uns costos d’insersio i consulta d’ordre O (n) iun cost en termes d’espai molt bo. La rao d’utilitzar aquest model d’estruc-tura es deguda a que la URL de la gran majoria de documents web ques’exploren, tenen el mateix prefix. Aixo succeix unicament en aquells docu-ments que pertanyen a un mateix host, o pertanyen a un mateix host i tenenla mateixa ruta dins d’aquest.

El gran avantatge que aporta aquesta estructura es que aprofita molt bela memoria RAM disponible del sistema. En termes de velocitat tambe ofer-eix molt bons resultats, encara que depen en gran mesura de la composicioi organitzacio dels sistemes de fitxers dels servidors web on s’explora. Unservidor web ideal seria aquell que te pocs documents web per directori i unadistancia maxima entre l’arrel i el subdirectori mes llunya de pocs nivells.Aquesta situacio oferiria, a la practica, uns temps d’acces i d’insersio ambun cost d’ordre O (1). Tanmateix, la situacio real es que els servidors webpresenten sistemes de fitxers amb una estructura arboria de molta amplada,pero de poca fondaria.

Cada node de l’arbre representa un directori o fitxer, de manera que l’ar-bre es modela a partir de les URLs proporcionades per l’aplicacio de crawl-ing. La conclusio que s’extreu d’aquı es que s’acaba simulant en memoriauna replica exacta del sistema de fitxers de la Intranet que es crea al disc,amb la diferencia que al disc s’hi guarda unicament el contingut dels docu-ments web descarregats.

Page 19: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 18

Figura 2.7: Arbre d’URLs

Tal i com s’ha comentat en lınies anteriors, per a cada URL inseridaa l’arbre s’emmagatzema informacio seva. Concretament, s’emmagatze-ma el seu identificador de node(url), el nom del node(per exemple, el nomde www.domini.net/info/info.txt seria info.txt), el tipus(extensio), laprofunditat, una llista d’identificadors de nodes de sortida i d’entrada, i l’e-stat. L’estat determina basicament si aquell node cal descarregar-lo, si s’hadescarregat o si esta pendent de ser descarregat. Tota aquesta informacios’emmagatzema al moment d’inserir el node a l’arbre i s’actualitza en aque-lles situacions en que l’estat del node canvia o be es detecten nous enllacosd’entrada que cal enregistrar per generar el graf.

Totes les URLs inserides son identificades per un identificador numeric.Aquesta desicio es causada per motius d’eficiencia, ja que no seria una bonasolucio utilitzar llistes de nodes de sortida i d’entrada que emmagatzeminURLs senceres enlloc d’idendificadors d’URL que ocupen molt menys es-pai. L’us d’identificadors implica la necessitat de realitzar consultes sobrel’arbre, ja sigui mitjancant la URL o l’identificador de node com a claus.Els identificadors de node son assignats de manera incremental, es a dir, laenessima URL que s’insereix a l’arbre se li assigna l’identificador amb valor n.

La tasca d’obtenir informacio d’un node per mitja del seu identificadorno es pot realitzar eficientment mitjancant l’estructura d’arbre que s’ha ex-plicat. Per resoldre aquest cas, s’utilitza una segona estructura que comple-menta les funcionalitats de l’arbre. Es tracta d’utilitzar una llista ordenadade parelles d’identificador i apuntador a node de l’arbre, de manera queles insersions a la llista es fan ordenadament. Aixı doncs, el gestor de de-scarregues pot obtenir informacio d’una determinada URL mitjancant lapropia URL o be mitjancant un identificador de URL. Les consultes es fanaplicant un algorisme de cerca dicotomica sobre la llista, amb la qual cosa,s’obtenen els resultats amb un cost d’ordre O (n ∗ log n). Es important re-

Page 20: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 19

Figura 2.8: Estructura d’URLs explorades per host

marcar que les consultes per mitja dels identificadors de node s’utilitzenprincipalment per accel·lerar la creacio del graf de nodes i per recuperarexploracions guardades al disc.

S’observa que l’us d’un vector seria molt mes adient que el d’una llista, jaque si les insersions es fan sequencialment i les assignacions d’identificador esfan ascendentment incrementant cada vegada en una unitat el valor anterior,resulta que cada numero de posicio del vector coincidiria amb l’identificadorde URL inserit en aquella posicio. Aixo vol dir que amb un cost d’ordreO (1) es podria obtenir la informacio desitjada mitjancant l’identificador dela URL. Tanmateix, aixo nomes es cert amb les condicions anteriors i su-posant que l’assignacio d’identificador es faci de la manera mencionada, perono serviria si en un futur es desitja canviar el procediment d’assignacio perun altre de diferent. es per aquest motiu que es fan les insersions ordenada-ment sobre una llista.

La solucio explicada fins ara es valida nomes en el cas que l’exploracioes faci unicament sobre els documents web d’un mateix host o domini. Perosempre hi ha hipervincles que fan referencia a pagines web que es troben enaltres servidors web. Per tal que multiples hosts es puguin tenir en comptes’usa una taula de hash que emmagatzema parelles de host i arbre de nodes,de manera que hi ha un arbre per a cada host, i una unica llista de parellesd’identificador i apuntador a node d’arbre.

Estructura de nodes pendents

La tasca d’aquesta estructura es mantenir, seguint un ordre determinat,totes les URLs que han de ser explorades. Es tracta basicament de dos llistesd’URLs: una llista d’URLs prioritaries i una llista d’URLs secundaries. Lesoperacions mes importants que efectua el gestor de descarregues son afegirnoves URLs i extreure la seguent URL de les llistes. La presencia de dos

Page 21: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 20

Figura 2.9: Estructura d’URLs explorades

llistes amb prioritats diferents es degut al fet que l’usuari pot decidir si voldonar prioritat a les URLs que tenen el mateix host o subhost, que el hostde la URL d’inici d’exploracio. D’aquesta manera, a la llista prioritaria s’hiafegeixen les URLs que pertanyen al host o domini d’inici, i a la llista sen-cundaria s’hi afegeixen les URLs que pertanyen a altres hosts.

El gestor de descarregues interactua amb les llistes a partir de la in-terfıcie definida per la classe abstracta ContenidorDescarregues del pro-jecte, d’aquesta manera es poden crear i utilitzar llistes amb comporta-ments diferents, es a dir, llistes que tenen implementacions diferents delsmateixos metodes. Aixı doncs, en funcio de l’estrategia de d’exploracioque l’usuari determini, el gestor de descarregues creara instancies de llistesFIFO(ContenidorDescarreguesFIFO), llistes LIFO(ContenidorDescarreguesLIFO),o d’altres tipus.

Quan l’aplicacio de crawling proporciona una nova URL al gestor de de-scarregues, aquest primer comprova que la URL no hagi estat enregistrada,si no ho esta aleshores, l’afegeix tant al magatzem de nodes explorats(ambestat pendent i no descarregat) i a la corresponent llista de nodes pendents,en funcio de si es tracta d’una URL prioritaria o no. Quan finalitza una de-scarrega, es a dir, quan finalitza un fil d’execucio de descarrega, aleshores elgestor extreu la seguent URL de la llista prioritaria i inicialitza la descarrega.Quan a la llista prioritaria ja no queden elements, aleshores s’extreu de lallista secundaria. Sempre que finalitza una descarrega, cal canviar l’estatdel node descarregat ja que aleshores el seu estat passa a ser de descarregat.

Page 22: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 21

Es important explicar que passa quan s’ha assolit el nombre maxim dedescarregues simultanies admeses d’un host. En aquest cas pot passar queen les proximes URLs de les llistes no hi hagi cap URL amb aquell host, obe que n’hi hagi una o mes d’una. En aquest ultim cas, l’operacio d’extrac-cio de les llistes ha de proporcionar la seguent URL que te diferent host,i a mes a mes, es segueixin satisfent les condicions de maxim nombre dedescarregues simultanies per host en el host de la URL a extreure. Aquestasituacio provoca una operacio forca costosa, ja que cal recorrer a la llista finstrobar la URL ideal, i en el pitjor dels casos pot passar que cap URL satis-faci les condicions o be que aquesta es trobi al final de la llista. La solucio aaquest problema seria implementar i usar llistes i iteradors de llista capacosde fer recorreguts per grup dins d’aquesta, amb uns costos computacional-ment acceptables.

La mecanica d’aquesta estructura es forca simple, tot i que resulta de-terminant alhora de generar exploracions de qualitat. Les insersions que esfan a les llistes son molt importants, ja que l’exploracio no sera la mateixa sis’afegeixen les URLs al final de la llista, al principi o seguint una estrategiadeterminada. De fet, si el nostre objectiu es descarregar tots els documentsweb d’un host, un conjunt de hosts, o d’una regio concreta, aleshores note molta importancia la manera d’explorar. Pero si el nostre interes es re-alitzar una exploracio massiva d’una regio que desconeixem, aleshores potser interessant usar un metode o un altre, ja que si en algun moment calaturar l’exploracio manualment, aleshores disposarem al disc dels nodes quemes ens interessen. No nomes es important en aquest sentit, sino que tambees important saber que hi ha estrategies que no son gaire bones, pero queen canvi consumeixen menys recursos, com es el cas d’una exploracio perfondaria que requereix menys quantitat de memoria que una exploracio peramplada.

2.2.3 Comunicacio entre el web crawler i un servidor

Les descarregues de fitxers dels servidors web es fan a traves dels fils d’exe-cucio de descarrega. En funcio del metode que cal emprar s’utilitza un pro-cediment de descarrega o un altre, es per aixo que s’han implementat trestipus diferents de fils d’execucio: ThreadDescarregadorUrl, ThreadDescar-regadorUrlPost i ThreadDescarregadorUrlAmbCookies.

Els fitxers es descarreguen seguint el protocol HTTP convencional, tan-mateix l’us d’aquest protocol varia si cal explorar una area publica o una deprivada. Les descarregues en arees publiques es fan utilitzant els procedi-ments convencionals de descarrega de Java del paquet java.net. En aquestcas es solicita el contingut del fitxer a descarregar utilitzant el metode GET

Page 23: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 22

a la capcalera HTTP de solicitud.

Les descarregues de fitxers en arees privades o restringides cal fer-lesd’una altra manera. El primer fitxer que cal descarregar es el que corre-spon a la URL on cal enviar el formulari d’identificacio (formulari d’acces),aquesta URL es la URL d’accio. Per a aquest primer fitxer cal utilitzar elmetode POST a la capcalera HTTP de solicitud i, a mes a mes, en aquestacapcalera s’hi inclouen les dades del formulari d’acces, on hi ha el login ila contrasenya. El servidor respon enviant el codi HTML de la pagina webd’inici de l’area restringida. A partir d’aquest punt, la resta de fitxers esdescarreguen aplicant el metode GET. Tots aquests passos es fan tenint encompte l’us de les cookies, i s’implementen utilitzant la llibreria HTTPClient.

Un altre aspecte a tenir en compte es la possibilitat de produir-se errorso situacions anomales. En aquest sentit cal mencionar el fet que el fitxer adescarregar no existeixi al servidor, el servidor estigui saturat i no respongui,o que la connexio establerta es perdi, entre molts altres casos. Tots aquestscasos son notificats, en Java, en forma d’excepcions, de manera que cada in-cidencia esta associada a un tipus d’excepcio concret. Quan es produeix unaexcepcio en un fil d’execucio de descarrega aquesta es captura i es notifica alLogger o gestor de d’incidendies de l’aplicacio. El logger esta implementatamb la classe Logger (Logger.java) del projecte, i s’encarrega principalmentde generar informacio estadıstica.

2.2.4 Extraccio d’hipervincles

Els hipervincles s’extreuen unicament d’aquells documents que tenen con-tingut hipertextual, es a dir, documents amb format HTML, ja siguin estaticso generats dinamicament pels servidors web. El salt d’un document a unaltre es fa per mitja dels hipervincles dels documents origen, que contenenles direccions dels documents destı.

Existeixen altres tipus de documents que disposen de formats amb car-acterıstiques similars als documents purament hipertextuals, com ara, doc-uments PDF o documents de Microsoft Word que, a mes a mes, de presentarreferencies creuades dins del propi document, poden tenir referencies a altresdocuments de la xarxa per mitja d’adreces URL. El web crawler implemen-tat nomes extreu els hipervincles dels documents amb contingut HTML.

Els hipervincles son representats usant adreces URL, per mitja de lesquals els clients web saben com i on han d’establir una connexio abansd’iniciar una descarrega d’un document. Les adreces URL constitueixen launitat natural de treball del web crawler i son representades per una cadenade caracters dividida en diferents parts. No totes les parts d’una URL s’han

Page 24: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 23

Figura 2.10: Parts d’una URL

d’indicar necessariament, ja que per exemple, tot protocol reconegut segonsels estandars, te associat almenys un port per defecte, i per tant, no fa faltaindicar el port, si no es que sigui estrictament necessari.

• Protocol: Es troba a l’inici de l’adreca URL i determina el protocolde nivell d’aplicacio que caldra usar per descarregar el fitxer web. Hade ser un protocol de l’Internet Official Protocol Standards.

• Usuari: Determina el nom d’usuari suposant que l’acces al fitxer re-quereixi una autoritzacio previa. Es basa en el mecanisme estandardd’autentificacio en el qual s’envia un nom d’usuari(login) i una con-trasenya.

• Contrasenya: Determina la contrasenya d’acces si s’ha inserit unnom d’usuari a la URL.

• Host(domini): Especifica el nom de la maquina on hi ha emmagatze-mat el fitxer. Aquesta part es usada per identificar el tipus de maquinai on esta localitzada a Internet. Per a cada nom de host desconegut calrealitzar el proces de resolucio de DNS, d’aquesta manera s’obte primerl’adreca IP de la maquina i despres s’estableix la connexio mitjancantaquesta adreca.

• Port: Determina el port remot on s’efectuara la connexio. Normal-ment el port ve determinat pel tipus de protocol que s’utilitzi, demanera que cada protocol te associat almenys un port. Aquesta partde la URL no es necessaria si no es estrictament necessaria.

• Ruta: Especifica la ruta i el nom de fitxer que es preten obtenir delhost. Es exactament igual que especificar la ruta i el nom de fitxer enel sistema de fitxers d’una unitat de disc.

• Consulta: S’utilitza per realitzar consultes determinades en el servi-dor web a traves de la pagina indicada. Es el procediment alternatiu

Page 25: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 24

a l’us dels formularis web. Les consultes per mitja de la URL s’acos-tumen a utilitzar en servidors amb comportaments dinamics. Normal-ment les consultes son composades a la URL de forma automatica permitja dels clients web.

Els hipervincles no tenen efecte visual sobre els documents, es a dir, noformen part del text en pla. Tanmateix, un fragment visible del documentpot tenir associat un hipervincle que conte la URL d’un altre document delmateix host o d’un altre de diferent. Es tracta de processar el codi HTMLde cada document, de manera que s’extreuen les URLs emmarcades per lesmarques href="..." i src="...". Cal tenir en compte que hi ha paginesweb que poden tenir algun sistema de redireccionament automatic, com esel cas d’algunes pagines web que han estat mogudes cap a altres llocs dela Web. Per resoldre aquests casos, cal comprovar sempre la presencia delmeta-tag de redireccionament <meta http-equiv="refresh"...> a cadapagina web, i extreure’n la URL de destı en cas que existeixi redirecciona-ment.

L’extraccio d’hipervincles es una de les tasques mes lentes, ja que calrecorrer tot el codi per a cada document HTML descarregat i aplicar les cor-responents tecniques de filtratge. Cal tenir en compte que la validesa delcodi de cada document es totalment imprevisible, la qual cosa comporta dospossibles alternatives: Intentar arreglar el codi HTML del document i despresextreure’n els hipervincles, o be simplement extreure els hipervincles finsque es detecti un possible error en el codi. Com que la primera opcio esmolt costosa computacionalment i els interessos principals son descarregarel major nombre de documents en el menor temps possible, el web crawlerproposat es decanta per la segona alternativa.

El proces d’extraccio dels hipervincles dels documents es fa utilitzantles eines proporcionades per les llibreries de classes JTidy i IR-Webutils. Elprimer es utilitzat per al processat de les capcaleres de meta-tags mitjancantuna analisi lexica i sintactica del document HTML, i el segon filtra el cos delcodi HTML per tal de generar la llista d’hipervincles. Cal tenir en compteque un hipervincle no nomes pot ser un enllac cap a un altre document, sinoque tambe pot ser un enllac cap a una part concreta del mateix document.

2.2.5 Esquema general del web crawler

La figura 2.11 mostra l’esquema general del web crawler. Representa graficamentel transcurs normal que segueix una exploracio, des de que es passa la URLinicial, fins que s’extreuen els hipervincles dels documents HTML descarregatsi s’encuen a la cua de nodes pendents de descarregar. Es tracta d’una repre-

Page 26: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 25

sentacio molt general del funcionament del programa, ja que no reflexa, perexemple, el tema dels fils d’execucio explicats en detall en apartats anteriors.

2.3 Anomalies que afecten a l’exploracio

En aquest apartat, es preten explicar breument els problemes mes habitualsamb que acostuma a trobar-se una aplicacio de web crawling mentre efectuauna exploracio web. Son situacions anomales que cal tenir en compte i, pertant, preveure durant l’exploracio, ja que poden perjudicar els resultats o elrendiment de l’aplicacio. Els aspectes mes destacats son problemes derivatsdel mal funcionament de la xarxa, us massiu del protocol de resolucio denoms DNS, implementacions defectuoses del protocol HTTP, males codifica-cions de codi HTML, i problemes derivats dels continguts de les pagines web.

2.3.1 Problemes derivats de la xarxa

Un dels reptes mes importants de la exploracio web recau en com descarregarpagines web des de multiples fluxos d’informacio, de la manera mes uniformepossible, considerant que els temps de resposta dels servidors web son no-tablement variables. No es pot predir el temps de vida d’un servidor webja que habitualment, es poden trobar servidors que resten inactius durantllargs perıodes de temps i mes tard tornen a ser reactivats. Un web crawlercomprensiu hauria de considerar que aquelles pagines que en un determinatmoment no estan disponibles, en un futur pot ser que si ho estiguin. Unarecomanacio per aquest problema seria que el web crawler reintenti explorarcada pagina web un determinat nombre de vegades, mentre la pagina restafora de servei. Aquest interval de temps acostuma a ser de 13 hores en unmaxim de 3 intents.

Els web crawlers normalment generen falses alarmes als administradorsde pagines web, aixo es degut al gran ample de banda que utilitzen quan ex-ploren un servidor web. Accessos reiterats a una pagina web sovint activenfalses alarmes en el servidor. Algunes guies recomanen que els web crawlerss’identifiquin davant dels servidors web, mitjancant la capcalera User-Agent

HTTP, proporcionant almenys una adreca de correu de contacte. Tambe esrecomana que entre acces i acces a un servidor web, el web crawler s’esperiun temps.

Un altre problema relacionat amb la xarxa es produeix quan el sevidorweb amb el qual s’ha establert connexio TCP a traves del port 80, no respon.Es a dir, l’operacio connect() i send() conclouen amb exit, pero en canvi elservidor no envia informacio de resposta. Aquesta classe de problemes sonproducte d’un firewall mal configurat que bloqueja el trafic de sortida enel host remot. La conclusio que s’extreu d’aquı es que totes les operacions

Page 27: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 26

Figura 2.11: Esquema general del web crawler

Page 28: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 27

han de tenir un timeout. El web crawler ha d’estar preparat per ser capacd’avortar qualsevol operacio de xarxa en qualsevol moment, ja que cadadescarrega activa pot deixar de rebre informacio sense previ avıs del servidorweb.

2.3.2 Resolucio massiva de DNS

La resolucio massiva de DNS acostuma a desencadenar problemes en els servi-dors locals de DNS de la xarxa on es troba el web crawler. Els servidors deDNS local encuen o deneguen connexions provocades per intents de resolu-cio massiu de DNS. Aquest problema provoca que no es pugui resoldre laIP d’alguns servidors web i arribar a la falsa conclusio que el servidor estafora de servei o simplement no existeix. Una solucio consisteix en testejarels servidors de DNS davant de jocs de proves crıtics. Sovint el problemano es degut al servidor de DNS local, sino que es causat per problemes ambel servidor de DNS remot. Alguns administradors acostumen a instal·lar enuna mateixa maquina fısica, tant el servidor de pagines web, com el servidorde DNS. En aquests casos, quan el servidor de DNS falla, el problema no essoluciona durant un llarg perıode de temps.

Un altre cas curios que cal tenir en compte es l’us del prefix www a la partdel host de les URLs. En moltes pagines web, tant www.domini.net comdomini.net, resolen la mateixa adreca IP, i per tant, tenen els mateixoscontinguts. Alguns administradors de pagines web posen el prefix en elshipervincles de les pagines web, mentre que n’hi ha d’altres que no ho fan.L’unica solucio a aquest problema es considerar que tant www.domini.net

com domini.net son la mateixa URL, o be realitzant una comprovacio indi-vidual per comprovar que ambdos pagines web son duplicats o no.

2.3.3 Implementacions HTTP

En alguns casos, es impossible coneixer el tipus de document web a partirde l’extensio de fitxer de la URL. Algunes URLs no tenen extensio i algunesaltres tenen extensions ambigues. Per exemple, alguns fitxers que acabenen .exe en realitat son pagines web amb contingut HTML, ja que son paginescreades dinamicament pel servidor. Alguns clients o agents web, com es elcas de web browsers o web crawlers, treballen unicament amb alguns formatsde document web concrets. El web crawler implementat nomes treballaamb documents HTML, PDF, TXT, DOC, RTF i alguns documents HTML creatsdinamicament pels servidors. La capcalera del protocol HTTP proporcionaun camp per indicar el tipus de contingut del document web a descarregar:

GET /pagina.html HTTP/1.1

Accept: text/plain, text/html

Page 29: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 28

Aixo indica que el web crawler unicament pot tractar amb text pla odocuments HTML. Les capcaleres de resposta HTTP dels servidors web tambeproporcionen el camp Content-type que indica el tipus de document ques’esta procedint a descarregar, tanmateix aquest camp no es obligatori, iper tant no existeix un camı del tot fiable per esbrinar amb anticipacio eltipus de contingut dels documents web que es descarreguen. Acordant al’especificacio HTTP, el servidor hauria d’enviar un codi de resposta 406(noacceptable) quan un document web del tipus especificat en l’operacio GET noesta present en el servidor de la URL donada. Alguns web browsers simple-ment omplen la capcalera amb el contingut Accept: */*, per tant, algunsservidors web ni tan sols comproven la presencia del camp Accept. Aquestfet, d’alguna manera ha perdut importancia amb el temps, i per tant, aramateix qualsevol servidor web pot enviar un document web de qualsevoltipus.

Per assegurar una bona cobertura de la Web, cal limitar la quantitatd’informacio que es descarrega durant una descarrega desde qualsevol servi-dor web. Aixo es pot aconseguir limitant el tamany maxim de la pagina, i elnumero de pagines web que son descarregades des de un servidor. Normal-ment, es limita el tamany maxim d’un document web entre 300 i 400KB,encara que el tamany maxim a descarregar en el web crawler implementates de 5MB. Es considera que aquests tamanys son suficients per capturar lesparaules claus necessaries per indexar el document. Per informar el servidorweb del tamany lımit cal usar el camp HTTP Range de la capcalera HTTP almoment de fer el GET.

GET /pagina.html HTTP/1.1

Range: 0-400000

En alguns casos, els servidors web retornen el codi de resposta 416 (er-ror de rang). Aquesta resposta succeeix quan els documents web tenen untamany inferior al que s’ha indicat en el rang. Aquest tipus de resposta noes correcta ja que l’especificacio del protocol indica que si el segon valor esmajor o igual al tamany del document, aleshores simplement es descarregael document fins al seu tamany. Es tracta d’un mal us del protocol HTTP enels servidors web. En el cas que sorgeixin errors de rang en les respostes, calrealitzar un segon intent de descarrega, pero en aquest cas no s’ha d’usarel camp Range a la capcalera. En tot cas, un servidor pot ignorar el campde rang, per tant el web crawler ha d’estar preparat per desconnectar-se delservidor, o descartar part dels continguts del document web si el servidorenvia mes informacio de l’admesa.

Aquests casos explicats posen de manifest la presencia de pagines webamb capcaleres HTTP de retorn ambigues o incorrectes. Pero existeixen ca-sos en que els servidors web envien documents web sense la corresponent

Page 30: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 29

capcalera HTTP. Alguns clients web toleren aquesta classe de comporta-ments, mentre que d’altres no, i ho indiquen mitjancant missatges d’error.Aquests casos puntuals normalment son consequencia de software o firewallsmal configurats. El web crawler ha d’estar preparat per rebre contingutsense capcaleres. Un cas similar es produeix quan s’envien documents ambcapcaleres incomplertes, com ara, una resposta indicant un redireccionamentcap a una altra URL, pero la URL no esta indicada. No hi ha una solucioconcreta per aquest problema, i per tant, la millor solucio es no descarregarel document i tancar la connexio.

Es difıcil construır un lloc web sense hipervincles interns trencats, es adir, que contenen URLs amb destinacions inexistents. El codi de retorn d’undocument web que no existeix dins d’un servidor web es el 404, mitjancantel qual els clients web saben que aquell document no existeix. Tanmateix,els administradors web tenen tendencia a fer que enlloc de retornar un mis-satge amb codi 404, es retorni una pagina web concreta del servidor quanno existeix el document sol·licitat. El problema recau quan el web crawlerconsidera que aquella pagina es valida, encara que en realitat la pagina noexisteix. Una solucio a aquest problema consisteix en que els administradorsde servidors web indiquin d’alguna manera o altra els codis de resposta reals,indicant exactament els motius de l’error.

Una part important dels ordinadors son configurats amb una data, horao zona horaria incorrecta. En aquests casos, no es possible esbrinar les datesreals de modificacio o perıodes d’actualitzacio de les pagines web, tanmateix,no totes les dates han de ser descartades. Si un servidor web respon amb unamarca de temps futura, pero amb pocs minuts o hores de diferencia respectel’hora real, es pot considerar que el rellotge del servidor probablement estadesfacat, per exemple, te la zona horaria incorrecta o esta mal configurada.Es pot considerar que si l’ultima data de modificacio d’una pagina webes anterior a l’any 1993, aleshores aquella data es incorrecta. Per datesfutures, una possible heurıstica consisteix en veure si no supera les 24 horesde diferencia respecte l’hora actual, en aquest cas s’ha de canviar a la dataactual. Si la data es superior a 24 hores, aleshores cal ignorar-la.

2.3.4 Codificacio HTML

La tendencia natural dels programadors de pagines web es donar per validauna pagina web quan aquesta es visualitza correctament en un client web.Tot i que una pagina web es visualitzi correctament en un browser, no signifi-ca que el codi HTML de la pagina sigui tambe correcte. Existeixen nombrososerrors de codificacio en moltes pagines web, i en alguns casos perjudiquen elweb crawler. Alguns d’aquests errors son els que es mostren a continuacio:

Page 31: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 30

Figura 2.12: Mapa de temps

• Combinar l’us de les doble cometes, cometes simples, o sense cometes.Per exemple: <IMG ALT="Text de la imatge"SRC=’imatge.jpg’ border=3>

• Combinar marques en la forma HTML i en la forma XHTML. Per exemple:<BR> i <BR/>

• Creuar entorns. Per exemple: <SMALL><B>Text</SMALL></B>

• Combinar l’us de majuscules i minuscules en les marques. Per ex-emple: <IMG src="text". En HTML, les marques s’han de posar enmajuscules, mentre que en XHTML en minuscula.

• Cadenes sense final. Per exemple: <IMG ALT="...>. Aquesta situacioes molt problematica ja que pot causar un desbordament de buffer sil’analitzador no es capac de tractar-ho.

Una manera de resoldre aquests casos es utilitzar un analitzador HTML

orientat a events, ja que en molts casos no seria possible mapejar la paginaweb en forma d’arbre. Es necessari que els administradors web utilitzin einesde correccio de codi HTML en les seves pagines web.

2.3.5 Caracterıstiques dels continguts web

L’existencia de repliques exactes de documents web es elevada a Internet.Detectar-ho no es facil, almenys abans de descarregar el document ja que calverificar que el contingut descarregat coincideixi amb algun altre descarregatanteriorment. Detectar repliques pot resultar important, ja que d’aquestamanera no cal indexar documents identics.

Una manera de detectar repliques consisteix en guardar el resultat d’aplicaruna funcio de hash sobre cada document web descarregat, de manera quedos documents amb resums de hash identics son documents iguals. La fun-cio de hash cal aplicar-la just despres d’aplicar el filtratge de continguts

Page 32: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 31

HTML, de manera que dos documents amb estils diferents, pero amb con-tinguts iguals es consideraran repliques. Aquest metode evita emmagatze-mar pagines iguals al disc, pero no evita haver-les de descarregar.

Un altre aspecte important a tenir en compte son les llistes de blogs,llistes de correu o forums de debat. Es tracta de grans repositoris d’infor-macio, formats per petites aportacions d’individus. Aquests poden ser unafont util d’informacio quan el tema que tracten no es pot trobar en cap altrelloc de la Web. Un tıpic exemple son els missatges de suport tecnic, quenormalment descriuen solucions a problemes amb condicions i configuracionsespecıfiques de software o hardware. Tanmateix, sovint les aportacions quees fan no son avaluables en comparacio a altres pagines, ja que tenen un con-tingut molt curt o be son poc clars. El problema recau amb la granularitatde la informacio, per exemple, una petita aportacio conte poca informa-cio, pero en canvi, la conversa completa pot ser avaluable. A mes a mes,recentment els spammers estan comencant a utilitzar els blogs per penjarhipervincles cap a les seves pagines web de manera automatica. Una solucioa aquest problema es afegir el tag rel="nofollow", per tal d’indicar als webcrawlers que el link no s’ha d’explorar.

2.3.6 Pagines web dinamiques

Alguns servidors web tenen comportament dinamic, mitjancant el qual generenpagines web amb continguts especıfics sota demanda. Una manera de tractaramb els diferents usuaris que es connecten al servidor es generar i afegir iden-tificadors a les URLs, per exemple www.domini.net/web/index.html?jsessid=34E67235.Aquests identificadors, mes tard, son usats per detectar sessions. Des delpunt de vista d’un web crawler, l’us d’identificadors de sessio suposa retrobar-se amb el problema de continguts duplicats. Els noms tıpics de variablesutilitzades per a emmagatzemar identificadors de sessio son: CFID, CFTO-KEN, PHPSESSID, JSESSIONID, etc. Aquestes variables son sovint util-itzades pels servidors web dinamics i dos documents web que nomes difereix-en en l’identificador de sessio tenen tota la pinta de repliques. Una maneraper evitar aixo es composar i utilitzar una llista d’identificadors de variableconeguts de forma manual, de manera que quan el web crawler detecti und’aquests identificadors en posi el valor a null.

Un error habitual al moment de codificar els hipervincles es oblidar-sede posar el directori arrel, per exemple: a/b/c quan en realitat es vol ferreferencia a /a/b/c. Tambe es habitual trobar URLs amb subdirectoris quees repeteixen varies vegades, com ara a/b/c/c/c/c/. Aixo es degut a lespagines dinamiques en les quals l’autor, per error, n’ha creat un enllac re-latiu quan en realitat hauria de ser l’enllac absolut.

Page 33: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 32

Les pagines web generades dinamicament son, en general, lentes de trans-ferir en comparacio amb les pagines web estatiques, concretament acostumena ser mes lentes en un factor de 10 o 100, en funcio de les implementacionsi dels sistemes de cache emprats en el servidor web. En alguns casos, aixoes degut a que la construccio de la pagina web requereix consultar diferentsfonts d’informacio, i en altres casos aixo pot ser degut a errors de progra-macio. Una pagina lenta pot malgastar recursos del web crawler forcant aaquest a mantenir connexions actives durant un llarg periode de temps. Esper aquest motiu que cal utilitzar sempre l’us de timeouts, o reduır l’amplede banda destinat a aquestes connexions.

2.4 Parametres i configuracions

En aquest apartat s’expliquen els parametres de l’aplicacio que es podenmodificar per tal de configurar adientment les exploracions. El transcursd’una exploracio pot variar en funcio dels seus parametres inicials. En aquestsentit hi intervenen aspectes importants com son la profunditat d’exploracio,el nombre maxim de descarregues simultanies, els tipus d’extensions delsfitxers que volem explorar, quins dominis explorar i quins no, si volem, ono, explorar els hipervincles amb destinacions externes al host inicial, etc.

Exploracio d’una area publica Consisteix en explorar els nodes webd’una regio publica d’una internet o LAN, en aquest sentit cal determinaruna URL inicial dins d’aquesta area publica on s’efectuara l’exploracio.

Exploracio d’una area restringida Consisteix en explorar els nodesweb d’una regio restringida d’una internet o LAN, en aquest sentit cal indicarun formulari d’acces omplert previament de forma manual mitjancant l’einad’Auto-LogIn de l’aplicacio. En aquest formulari emmagatzemat al disc iconsta, a part dels correponents camps del formulari i els seus valors, laURL on cal enviar el formulari mitjancant el procediment POST, i que pertant sera la URL d’inici de l’exploracio restringida. Cal emprar aquesttipus d’exploracio si es desitja, per exemple, explorar un compte de webmailprivat.

Profunditat d’exploracio Determina el lımit de l’exploracio en termesde fondaria, es a dir, els nodes que es troben a una fondaria superior allımit no s’exploren (no es posen a la cua de nodes pendents d’explorar). Lafondaria es mesura numericament, de manera que la fondaria d’un node esla distancia en enllacos desde el node inicial fins a aquest, es a dir, es el nom-bre d’enllacos que cal recorrer des de el node inicial fins a arribar al node.El node inicial sempre es troba a la fondaria zero, per tant, una exploracio

Page 34: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 33

limitada a una fondaria zero nomes exploraria el node inicial.

Aquest parametre cal usar-lo amb un cert grau de precaucio, ja que sihabilitem la possibilitat d’explorar hosts externs i, a mes a mes, indiquemun profunditat lımit molt elevada, ens podrem trobar que en determinatsmoments de l’exploracio s’exploren nodes que no son del nostre interes.

Descarregues simultanies Determina el nombre maxim de descarreguessimultanies que efectuara l’aplicacio en cada moment durant el transcurs del’exploracio. Tal i com s’ha explicat en apartats anteriors, cada descarregas’efectua mitjancant fils d’execucio concurrents de Java. Es important saberaplicar correctament aquest parametre, ja que es molt important aprofitartot l’ample de banda que ens ofereix la nostra connexio. Tanmateix, tambecal recordar els problemes de xarxa explicats a l’apartat d’anomalies i tot elque comporta efectuar multiples descarregues massives.

Descarregues simultanies per host Determina el nombre maxim dedescarregues que s’efectuaran simultaniament sobre un mateix host o sub-host (domini o subdomini). Es a dir, limita el nombre de connexions ques’estableixen sobre cada host de manera simultania. Aquest aspecte tambees molt important, i pot determinar, en part, l’exit d’una exploracio. Limitarel nombre de connexions sobre un servidor web te un seguit de justificacions.El primer motiu es evitar saturar les connexions dels servidors web, ja queel nostre ample de banda i el nostre equipament poden soportar-ho, pero elsservidors web remots no. El segon motiu es evitar que els servidors web ensdeneguin les connexions, ja que poden considerar que les descarregues delnostre web crawler son un intent d’atac.

La tendencia natural dels servidors web es admetre poques connexionsprocedents d’una mateixa adreca IP d’origen. Si s’usa un valor elevat esrefusaran moltes connexions, i per tant, fallaran moltes descarregues durantl’exploracio. Es important remarcar que el seu valor no pot ser superior alnombre de descarregues simultanies explicat al paragraf anterior.

Explorar enllacos externs Determina si s’exploraran aquells nodes quetenen el host diferent del host del node inicial. En aquest sentit, les URLsque tenen per host subhosts(subdominis) del host inicial tambe es considerenexternes. Aquest parametre es util si volem explorar unicament nodes quepertanyen exclusivament al host inicial.

Explorar hosts del domini Aquest parametre complementa l’explicaten el paragraf anterior. Aquest parametre nomes es te en compte si no esdesitja explorar enllacos externs. Activant aquest parametre s’exploraran

Page 35: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 34

subhosts(subdominis) que tenen per arrel el host(domini) del node inicial,de manera que fara possible una exploracio de tot un domini i els seuscorresponents subdominis, si en te.

Donar prioritat al host inicial Aquest parametre tambe complementael parametre d’explorar enllacos externs, pero en aquest cas nomes es teen compte si es desitja explorar enllacos externs. Si es desitja explorarenllacos externs ens podem trobar que a vegades s’exploren primer nodesque pertanyen a hosts molt allunyats(poc relacionats) del host del nodeinicial. En la majoria de casos aixo no interessa, ja que ens sol interessarprincipalment els nodes que pertanyen al host inicial a diferencia de la resta.Si s’activa aquest parametre, aleshores entra en funcionament el sistema deprioritats explicat anteriorment, de manera que els nodes que pertanyen alhost o subhosts del host del node inicial, s’afegeixen a la cua de prioritaris,mentre que la resta s’afegeixen a la cua de secundaris.

Sempre explorar el seguent disponible Aquest parametre es podriaobviar ja que sempre hauria d’estar activat, tanmateix pot resultar interes-sant tenir-lo desactivat en alguns casos molt puntuals. Si limitem el nom-bre de descarregues simultanies per host, ens trobarem que s’efectuen de-scarregies simultanies sobre hosts diferents, ja que el web crawler sempreintentara efectuar tantes descarregues com les que s’hagin indicat. Per tant,quan sobre un host ja s’assoleix el lımit de descarregues, cal localitzar dinsde la cua de descarregues pendents un altre node(URL) amb un host osubhost diferent per iniciar-ne la descarrega. Aquest ultim proces nomess’efectuara si tenim activat el parametre d’explorar el seguent disponible.Tenir desactivat aquest parametre pot ser util si volem prioritat absolutaen descarregar primer els nodes que pertanyen al host inicial, ja que mai esprovara de descarregar un node d’un altre host fins que no en quedin delhost inicial.

Cerca Breadth-First Determina que s’emprara una exploracio amb es-trategia Breadth-First. Consisteix en fer un us FIFO de la cua de nodespendents de descarregar. Aquesta estrategia s’explica en detall, a l’apartatd’estrategies d’exploracio.

Cerca Depth-First Determina que s’emprara una exploracio amb es-trategia Depth-First. Consisteix en fer un us LIFO de la cua de nodes pen-dents de descarregar. Aquesta estrategia s’explica en detall, a l’apartatd’estrategies d’exploracio.

Dominis explorables Representa el conjunt de dominis base d’Internet(.net, .org, .edu, etc.) que seran explorats si apareixen hipervincles cap

Page 36: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 35

a hosts allotjats en aquests dominis. Per tant, les URLs allotjades en elsdominis que no pertanyen al grup no seran explorades.

Extensions explorables Representa el conjunt d’extensions de documentque seran explorades. En aquest sentit, els documents amb extensions no es-collides no seran explorats. Els documents amb extensions no reconegudes(iper tant, ”valides”) son sempre explorats. Els documents amb extensionsno valides son aquells que tenen alguna de les seguents extensions: .gif, .jpg,.ppt, .bmp, .png, .zip, .gz , .ps, .rar, .ace, .mid, .wav, .mp3, .mp2, .exe,.tar, .avi, .mpg, .mpeg, .mov, .swf, .bin i .ram. Es tracta d’extensions defitxers que apareixen frequentment a les pagines web d’Internet i que hande ser descartades ja que no tenen contingut textual util. Les extensionsreconegudes, i que per tant tenen contingut textual que pot ser extret i in-dexat son les seguents: .asp, .cfm, .htm, .html, .jsp, .php, .php3, .phml, .pl,.shml, .pml, .chtml, .aspx, .js, .pdf, .doc, .txt i .rtf. Les extensions sensecontingut HTML son les seguents: .pdf, .doc, .rtf i .txt.

2.5 Estrategies d’exploracio

En aquest apartat, s’expliquen les diferents estrategies d’exploracio que espoden utilitzar en aquest web crawler. Una estrategia d’exploracio ve deter-minada basicament per la manera en que s’insereixen les URLs a la llista denodes pendents d’explorar. Aixı doncs, ens pot interessar explorar primerun determinat tipus de documents, i deixar pel final aquells que no ens in-teressen tant. Les estrategies nomes tenen sentit quan cal fer exploracionsmassives a gran escala, ja que si nomes volem descarregar un conjunt concretde pagines web, aleshores no importa l’ordre en que ho fem.

La problematica que tenen les exploracions a gran escala, com les quefan els grans motor de cerca d’Internet, es que cal explorar una enormequantitat de documents web. Aquestes exploracions no acaben mai, ja queno tenen uns lımits establerts i a mes a mes, han de reexplorar documentsque s’actualitzen periodicament. En aquests casos, cal explorar sempre elsnodes mes importants i descartar o deixar pel final la resta. Cada motorde cerca utilitza una serie de criteris per determinar si una pagina es mesbona que una altra i en aquest sentit, hi tenen molt a veure les estrategiesd’exploracio que s’utilitzin.

En el web crawler implementat d’aquest projecte, s’han desenvolupatvaries estrategies d’exploracio, algunes de les quals son les seguents: es-trategia Breadth-First, Depth-First, Backlink-Count, Batch-Pagerank i Larger-sites-first. Cada estrategia d’exploracio te una serie de caracterıstiques quela fan diferent de les altres, ja que per exemple, algunes utilitzen un menor

Page 37: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 36

consum dels recursos, pero en canvi exploren amb igual preferencia els nodesmenys profunds i els mes profunds. Es important deixar clar en aquest punt,que la fondaria d’un node es el nombre d’enllacos que cal recorrer per ar-ribar fins a ell des de el node inicial. Abans d’iniciar una exploracio calconfigurar-la en funcio de les nostres necessitats.

2.5.1 Breadth-First

Es el tipus d’exploracio que utilitzen practicament la gran majoria de motorsde cerca d’Internet. Consisteix en que l’estructura de nodes pendents d’ex-plorar es una cua, es a dir, es una estructura de dades amb una estrategiade moviments FIFO (el primer que entra es el primer que surt). En una cua,l’operacio d’inserir consisteix en afegir un element a la fi d’aquest, mentreque la d’eliminar es fa sobre el primer element present a la cua (el que vaser inserit fa mes temps).

La cua modela un arbre, i quan es van inserint URLs, tendeix a creixeren amplada i no en fondaria, de manera que cada nivell de l’arbre representaun nivell de profunditat de l’exploracio. Quan tots els nodes d’un nivell sonexplorats, es procedeix a l’eploracio del seguent nivell i per tant, augmentaen una unitat la fondaria de l’arbre. L’avantatge d’aquest sistema es que encada moment sempre s’exploren els nodes menys profunds, es a dir, els nodesmes proxims al node inicial, deixant pel final aquells que son mes profunds,i per tant, tenen menys valor.

Es tracta d’una exploracio completa ja que la profunditat es finita. Te lapeculiaritat que els primers nodes son sempre els primers en ser explorats,la qual cosa vol dir que els nodes repetits sempre es detecten en profun-ditats mes elevades. Aquesta caracterıstica no te cap rellevancia amb elfuncionament de l’algorisme Breadth-First, tanmateix la seva mancanca esun problema en l’algorisme Depth-First tal i com s’explicara en el seguentapartat. Es important destacar el cost espaial de l’exploracio Breadth-First,

ja que te un cost molt elevat d’ordre O

(

bd

)

, on b es l’amplada i d la pro-

funditat. Aixo es degut a que mante en memoria cada node de cada nivellde l’exploracio. Per tant, cal disposar d’una gran quantitat de memoria sies preten realitzar una exploracio de gran escala.

2.5.2 Depth-First

L’exploracio Depth-First o, exploracio en profunditat, consisteix en quel’estructura de nodes pendents d’explorar es una pila, es a dir, es una estruc-tura de dades amb una estrategia de moviments LIFO (el darrer que entraes el primer que surt). Intuıtivament, ens la podem imaginar com una pilade valors en la qual per treure’n un del mig, cal haver tret tots els que te al

Page 38: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 37

Figura 2.13: Exemple FIFO

damunt.

La pila modela un arbre, tal que a mesura que es van inserint URLs,tendeix a creixer en profunditat i no en amplada. L’algorisme explora l’ar-bre de branca en branca, de manera que en cada moment, sempre exploraun node d’una branca fins a arribar al final d’aquesta. Quan arriba al finald’una branca, explora la seguent branca mes proxima. L’avantatge d’aquestsistema es que, en comparacio amb l’exploracio Breadth-First o exploracioen amplada, consumeix molts menys recursos en termes d’espai.

De manera similar al Breadth-First, el Depth-First tambe es complet,pero te dos inconvenients que no el fan gaire util a l’hora d’explorar. Elprimer d’aquests inconvenients es que no te en compte la necessitat d’ex-plorar primer els nodes menys profunds, amb una clara tendencia a donarprioritat als nodes mes allunyats del node inicial, ja que les primeres sub-branques en ser explorades sempre son les mes proximes a les fulles de l’arbre.El segon inconvenient fa referencia al tema dels nodes repetits que s’haviacomentat a l’apartat anterior. Consisteix en que l’algorisme no pot esbrinarmai si el node que esta explorant en cada moment s’el trobara mes enda-vant en una profunditat menor. Aixo no passa amb el Breadth-First, ja queaquest sempre sap que cada node que explora es troba en la profunditatmenor possible.

Page 39: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 38

Figura 2.14: Exemple LIFO

Les consequencies d’aixo perjudiquen seriosament l’exploracio, ja que po-den haver-hi molts nodes que caldrien ser explorats i al final no s’exploren.Suposem que cal explorar en profunditat una pagina web, i que la profun-ditat lımit imposada per la configuracio es de 5 nivells. Durant el transcursde l’exploracio s’arriba a un node del nivell 5 que te molts hipervincles, elsquals no s’afegeixen a la pila perque no es troben dins del lımit permes jaque tenen fondaria 5+1. Mes endavant, l’algorisme d’exploracio detecta unhipervincle a aquest mateix node que ara es troba a una fondaria de 3 nivells,aquest node ara es automaticament descartat ja que ja s’havia explorat ambanterioritat. S’observa que si l’algorisme hagues descobert primer aquestnode en la fondaria 3, s’hagues explorat tot el subarbre que arrelava aquestnode.

Per resoldre aquest problema, cal realitzar uns petits canvis en el fun-cionament de l’algorisme. Cada vegada que l’aplicacio de crawling propor-ciona al gestor de descarregues una URL, cal comprovar si aquesta ja haestat explorada, i per tant descarregada anteriorment, o be si es troba a lacua de descarregues pendents (aixo es facilment comprovable consultant, al’estructura de nodes explorats, si aquell node es troba en estat pendent).En el cas que ja hagi estat explorada, cal consultar la seva profunditat. Sila profunditat quan es va descarregar es superior a l’actual, caldra explorartots els seus hipervincles i canviar la seva antiga profunditat per la nova.En el cas que es trobi a la cua de descarregues pendents, caldra localitzarel node dins de la pila i fer la mateixa comprovacio, es a dir, si l’anterior

Page 40: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 39

profunditat es superior, caldra actualitzar-la per la nova.

2.5.3 Backlink-Count

Aquesta es una estrategia d’exploracio basada en les caracterıstiques de lespagines web, concretament amb el nombre d’hipervincles. Consisteix enexplorar primer, aquelles pagines web tals que existeix un elevat nombred’hipervincles que apunten cap a elles. Aixı doncs, la seguent pagina aexplorar es la mes enllacada des de les pagines web anteriorment explorades.En aquest tipus d’exploracio, es considera que les millors pagines son sempreles mes referenciades per les altres. Aquesta estrategia d’exploracio no haestat implementada en el web crawler desenvolupat.

2.5.4 Batch-Pagerank

Es basa en generar un valor de Pagerank a partir de pagines explorades.El concepte de Pagerank es pot considerar com un indicador de la qual-itat d’una pagina web, vindria a ser allo que en programacio genetica esconeix per fitness. En aquest sentit, interessa tenir en compte unicamentaquelles pagines que tenen un bon Pagerank. Aquesta estrategia calculauna estimacio de Pagerank, a partir de les pagines explorades recentment,concretament aixo es realitza cada K pagines descarregades. Les seguents Kpagines web a descarregar son aquelles que tenen un Pagerank estimat mesgran. Aquesta estrategia es considera millor que l’estrategia Backlink-count.

Una variant del Batch-Pagerank es el Partial-Pagerank. Aquest es sim-ilar al mencionat anteriorment, pero amb la diferencia que entre recalculsde Pagerank, s’assigna un Pagerank temporal a les noves pagines web, apartir de la suma dels Pagerank de les pagines que tenen hipervincles queapunten cap a ella, dividit pel nombre d’hipervincles de sortida d’aquestespagines. Ambdos estrategies no han estat implementades en el web crawlerdesenvolupat.

2.5.5 Larger-sites-first

Tal i com el seu nom indica, l’objectiu d’aquesta estrategia es evitar tenirmassa pagines d’un lloc web pendents de descarregar. Amb aixo es pretenevitar haver de deixar pel final grans llocs web, de manera que es milloranar-los descarregant de mica en mica que de cop. El web crawler utilitza elnombre de pagines sense explorar d’un mateix lloc web com a indicador deprioritat, i per tant, comenca primer per aquells que tenen major nombre depagines pendents. Es considera que es millor que l’estrategia Breadth-First.Aquesta estrategia d’exploracio no ha estat implementada en el web crawlerdesenvolupat.

Page 41: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 40

2.6 Exploracions d’arees restringides

Una exploracio en una area restringida consisteix en explorar un conjuntde nodes web, el contingut dels quals nomes esta disponible si previaments’ha efectuat amb exit un proces d’autoritzacio mitjancant la completacio ienviament d’un formulari web. Quan un servidor web no accepta (dona pervalides) les dades enviades en el formulari, l’acces a la zona restringida con-tinua essent restringit, tot i que no hi ha una forma concreta d’averiguar-ho.

Existeixen diferents formes d’autentificar-se davant d’un servidor web,entre aquestes hi ha el metode convencional implementat en el protocolHTTP, en el qual s’insereix unicament un login i una contrasenya. Tanmateix,la presencia de formularis web amb multiples camps addicionals, generatsi omplerts automaticament mitjancant el comportament dinamic d’algunsservidors, fa necessari emprar la metodologia POST per enviar els formularisal servidor. La idea que cal extreure de tot aixo es que primer cal obtenirun formulari, omplir-lo amb unes dades d’autentificacio valides i finalmentenviar-lo al servidor. Els dos primers passos d’obtencio i completacio deformularis es fan mitjancant l’eina d’Auto-LogIn implementada i adjunta alweb crawler proposat. L’ultim pas del proces es fa just abans de descarregarla URL d’acces, que en aquests casos sempre sera la URL d’accio.

Per a l’obtencio d’un formulari web, l’usuari ha d’indicar la URL onhi ha el formulari. L’aplicacio descarrega, aplicant el proces habitual dedescarrega HTTP, el contingut HTML de la URL especificada. Com que elsformularis d’autentificacio no segueixen un patro concret i en una mateixapagina web hi poden haver varis formularis, s’extreuen tots els formularis deldocument. Aquest proces s’efectua aplicant una analisi lexica i sintacticadel document HTML, que es realitza emprant la classe FiltreHTML (imple-mentada a la vegada utilitzant la llibreria JTidy).

De cada formulari s’extreu la URL d’accio i els seus camps i correspo-nents valors. Es important remarcar que hi ha camps que no tenen efectevisual en els clients web ja que son de tipus hidden. Els camps hidden acos-tumen a ser camps omplerts automaticament pel propi servidor web i sonutilitzats en llocs web dinamics per emmagatzemar identificadors de sessioi altra informacio utilitzada per al correcte funcionament de la pagina web.Aquests camps cal deixar-los intactes. La URL d’accio determina l’adrecaon s’ha de fer el POST del formulari. Com que en una pagina web hi podenhaver multiples formularis, l’aplicacio es limita a llistar tots els formularisper pantalla, per tal que sigui el propi usuari el qui esculli quin sera el for-mulari que caldra usar.

Un cop l’usuari escull el formulari, l’aplicacio mostra en una taula els

Page 42: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 2. EXPLORACIO WEB 41

camps del formulari juntament amb els respectius valors, si es que ja entenen. Per a cada camp es mostra tambe el seu nom, normalment els de-senvolupadors de pagines web posen noms adequats als camps, de maneraque no ha de suposar cap problema per a l’usuari identificar en quin campcal posar el login i en quin la contrasenya. Un cop finalitzada l’edicio d’unformulari, aquest s’emmagatzema al disc per al seu posterior us, de maneraque un formulari emmagatzemat al disc pot ser utilitzar en futures explo-racions.

La diferencia entre una exploracio normal i una que es fa en una arearestringida, es que en la primera es descarreguen els nodes web seguint elprocediment convencional de descarrega, mentre que en el segon, el primernode que es descarrega es la resposta del servidor web despres de fer elposting del formulari d’autentificacio, i tots els nodes de l’exploracio s’ex-ploren tenint en compte les cookies. Per tenir en compte les cookies s’hautilitzat la llibreria HTTPClient, que entre d’altres coses ofereix classes pera la composicio i enviament de formularis web.

Page 43: TOKE: Eina de suport als processos de webmining basada en programari lliure

Capıtol 3

Extraccio i indexacio

d’informacio

Aquesta part s’encarrega d’extreure la informacio util dels documents descar-regats mitjancant l’eina d’exploracio web. Amb tota la informacio que s’ex-treu, es crea un ındex que permetra localitzar de forma rapida en quinsdocuments existeix una major frequencia de les paraules que volguem cer-car. Per a la creacio dels ındexs s’usa la llibreria Lucene per a Java. Lucenees el que es coneix per Information Retrievaler, una llibreria escalable id’alt rendiment per a recollir i analitzar informacio.

3.1 Extraccio d’informacio

De cada document descarregat i emmagatzemat a la Intranet durant elproces d’exploracio, cal extreure’n la informacio util. La informacio utiles el text en pla dels documents, de manera que cal filtrar tot allo que sonmarques de format, del que es text. Els tipus de documents dels quals s’ex-treu informacio son els que tenen format HTML, PDF, RTF, TXT i DOC. D’aquestss’obte meta-informacio addicional, com son el tıtol del document, el nom delseu autor, la seva descripcio o resum, i les paraules clau.

La meta-informacio que s’extreu es tracta d’informacio que contenentots els tipus de documents indicats, excepte en el cas dels fitxers TXT queno tenen cap meta de meta-informacio. Per a extreure aquesta informacios’han utilitzat paquets i llibreries especıfiques per al tractament d’aquestsformats: JTidy per als documents HTML, PDFBox per als documents PDF,javax.swing.text.rtf per als documents RTF, POI per als documents deMicrosoft Word, i per als documents TXT s’utilitzen els procediments con-vencionals de Java per a la lectura de fixers de text.

S’han implementat un conjunt de filtres per a cada format. Aixı doncs,

42

Page 44: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 43

s’ha utilitzat el polimorfisme que ofereix Java per a filtrar els documentsmitjancant les classes FiltreHTML, FiltrePDF, FiltreRTF, FiltreDOC i Fil-treTXT, totes elles son subclasses de la classe Filtre. L’eleccio d’un filtre oun altre depen unicament de l’extensio del document que cal filtrar en cadamoment. No sempre es pot extreure la informacio dels documents, ja quees frequent trobar documents mal formats. Les llibreries mencionades an-teriorment proporcionen classes per corregir documents, tot i que no s’hanutilitzat ja que exigeixen un cost addicional. Mirar la figura 3.1.

Juntament amb la meta-informacio de cada document, s’extreu el seucos. Cal dir que la meta-informacio son camps d’informacio opcionals, demanera que la informacio important es la que conte el propi cos del docu-ment. En els documents HTML el cos es troba dins de les marques <body> i</body>, per tant, si extraiem la informacio del seguent document, obtin-drem el text que es mostra al final:

<html>

<head>

<title>MP3.com - the source for digital music!</title>

<meta name="author"> content="MP3.com">

<meta name="keywords"> content="mp3.com, mp3, music, Robert Walter">

</head>

<body>

<dl><dd><div style="text-align: center"><div class="pad-5-bottom">

<a href="http://www.mp3.com/robert-walter/artists/194751/reviews.html&amp">

<dd><img src="http://image.com.com/mp3/images/artist/p24047pupb6.jpg"

width="50" alt=" Robert Walter"></a> </dd>

</div><dd><br/><a href="http://www.mp3.com/robert-walter/reviews.html">

<strong>Robert Walter</strong></a> <br/>

<img style="padding-top:5px;"src="http://www.mp3.com/style/stars_5.0.gif"/>

</dd></div><p class="f-small"><br/>Robert Walter Is unfortunatly in that

class of musicans that is so good, that most people will probably never be

lucky enough to stumble across. He’s a keyboarder from NewYork, one of the

little...&quot; <br/><span class="f-grey">Reviewed by</span> <a

href="http://www.mp3.com/users/magookie/review.php"><strong>magookie</strong>

</a></p></dd></dl>

</body>

</html>

Tıtol MP3.com - the source for digital music!

Autor MP3.com

Keywords mp3.com, mp3, music, Robert Walter

Resum

Cos Robert Walter "Robert Walter Is unfortunatly in that class of

Page 45: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 44

Figura 3.1: Filtres implementats

Page 46: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 45

musicans that is so good, that most people will probably never

be lucky enough to stumble across. He’s a keyboarder from NewYork,

one of the little..." Reviewed by magookie

El seguent exemple mostra un simple document RTF i la seva correspo-nent informacio extreta. S’observa que es facil extreure la meta-informacioja que aquesta esta emmarcada clarament:

{\rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl

{\f0\froman\fcharset0 Times New Roman;}{\f1\fswiss\fcharset0 Arial;}}

{\info {\title What is Artificial Life?}{\author Chris G. Langton}}

\viewkind4\uc1\pard\sb100\sa100\f0\fs24 In order to derive general

theories about life, we need an ensemble of instances to generalize

over. Since it is quite unlikely that alien lifeforms will present

themselves to us for study in the near future, our only option is to

try to create alternative life-forms ourselves - Artificial Life -

literally ‘‘life made by Man rather than by Nature.’’\par

\pard\f1\fs20\par}

Tıtol What is Artificial Life?

Autor Chris G. Langton

Keywords

Resum

Cos In order to derive general theories about life, we need an ensemble

of instances to generalize over. Since it is quite unlikely that alien

lifeforms will present themselves to us for study in the near future,

our only option is to try to create alternative life-forms ourselves

- Artificial Life - literally ‘‘life made by Man rather than by Nature.’’

La informacio que s’extreu es la informacio util que interessa als usuaris.No es facil classificar aquest tipus d’informacio ja que no satisfa cap pa-tro concret mitjancant el qual es puguin realitzar cerques amb exit. Enels proxims apartats s’explica com crear ındexs generats amb Lucene, mit-jancant els quals es poden realitzar cerques rapides de continguts.

3.2 Crear un ındex

La creacio d’ındexs es realitza amb Lucene, la qual proporciona classes es-pecıfiques per crear ındexs d’informacio textual, sense tenir en compte elseu origen, el seu format, i el seu idioma. Aixo significa que es pot usarLucene per indexar i cercar informacio emmagatzemada en fitxers: paginesweb de servidors web, documents emmagatzemats en sistemes de fitxers lo-cals, fitxers de text, documents de Microsoft Word, documents HTML o PDF,

Page 47: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 46

o qualsevol altre format d’on es pugui extreure informacio textual. En aque-st sentit, a mes a mes, es poden indexar i cercar correus electronics, llistesde correu, conversacions d’aplicacions de missatgeria instantania, etc. Enaquesta aplicacio, s’ha utilitzat Lucene per indexar la informacio extretadels documents explorats i descarregats mitjancant l’aplicacio d’exploraciodescrita a l’apartat 2 sobre l’exploracio web.

Al nucli dels motors de cerca existeix el concepte d’indexar. Consisteixen processar la informacio original dels documents per generar vistes molteficients de referencies creuades, amb l’objectiu de facilitar la cerca d’infor-macio. Suposem que cal realitzar una cerca sobre un gran nombre de doc-uments, i que volem trobar aquells documents que contenen determinadesparaules o frases. Una forma molt convencional seria realitzar una cercasequencial sobre cada fitxer per tal de localitzar la paraula o frase desitja-da. Aquest sistema presenta molts problemes, ja que per una banda podemtenir molts documents i per l’altra, aquests documents poden ser molt grans.

Es en aquest punt on entra en joc el concepte d’indexar. Per cercargrans quantitats de text rapidament, primer cal indexar el text extret decada document i convertir-lo en un format que permeti realitzar-hi cerqueseficientment, evitant el lent i ineficient proces d’escaneig sequencial. Aquestproces de conversio s’anomena indexacio i la seva sortida o resultat s’anom-ena ındex. Un ındex es pot interpretar com una estructura que permetaccessos aleatoris rapids a paraules emmagatzemades en aquesta. En el casde Lucene, un ındex es una estructura de dades especialment dissenyada,tıpicament emmagatzemada al sistema de fitxers en forma d’un conjunt defitxers.

Entendre el funcionament de l’aplicacio d’indexacio implica entendre laseparacio o barrera que hi ha entre l’aplicacio desenvolupada i Lucene, aixıcom les tasques que realitza cadascuna d’aquestes dos parts. Aquesta sepa-racio queda reflexada clarament mitjancant la figura 3.2. Es recorren, un aun, els documents de l’exploracio que cal indexar. Es tracta de documentsdescarregats mitjancant l’eina d’exploracio, i emmagatzemats a la Intranetdel disc. Aquesta tasca es du a terme recorrent les URLs del fitxer d’explo-racio seleccionat per l’usuari, per a cada URL s’obte la corresponent adrecadel fitxer al disc. De cada document s’extreu la seva informacio textualaplicant el corresponent filtre en funcio de la seva extensio. El text extretes el que s’utilitza per a crear l’ındex.

Les classes de Lucene que cal destacar son les seguents:

IndexWriter es el component central del proces d’indexacio. Aquesta classe crea unnou ındex i afegeix documents a ındexs ja existents. Es pot interpretar

Page 48: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 47

Figura 3.2: Separacio entre Lucene i el nivell d’aplicacio

la classe IndexWriter com un objecte que ofereix acces d’escriptura al’ındex, pero no ofereix operacions de lectura ni de cerca.

Directory Aquesta classe representa la localitzacio fısica d’un ındex de Lucene.Podem preferir mantenir un ındex en memoria, o be al disc. Permantenir un ındex al disc hi ha la classe FSDirectory. Es tracta d’unasubclasse de la classe Directory que mante una llista de fitxers reals alsistema de fitxers del disc. L’altra implementacio de la classe Directoryes RAMDirectory. Aquesta proporciona una interfıcie identica a la dela classe FSDirectory, pero en aquest cas l’ındex s’emmagatzema enmemoria. RAMDirectory es util quan cal crear ındexs petits que podenser emmagatzemats completament en memoria i poden ser eliminats alfinalitzar l’aplicacio. L’us d’ındexs en memoria proporciona una majorvelocitat d’acces que els ındexs emmagatzemats al disc. La tendencianatural es utilitzar ındexs en memoria i guardar-los a disc quan essupera un tamany o lımit concret.

Analyzer Abans que el text sigui indexat, aquest passa per objecte de la classeAnalyzer. La classe Analyzer extreu tokens de sortida del text que hade ser indexat. Si el contingut que ha de ser indexat no es text pla,aquest ha de ser filtrat.

Document La classe Document representa una coleccio de camps. Podem interpretar-ho com un bloc d’informacio, com ara una pagina web, un missatge decorreu electronic o un fitxer de text. Els camps d’un document rep-

Page 49: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 48

resenten la meta-informacio associada a aquest document. L’origende la informacio es completament irrellevant per Lucene. La meta-informacio com l’autor, el tıtol, el resum, la data, entre d’altres, sonindexats i emmagatzemats per separat com a camps del document.

Field Cada objecte de la classe Document en un ındex conte un o mes camps,encapculats en objectes de la classe Field. Cada camp correspon a unapart d’informacio que pot ser consultada a traves de l’ındex durant unproces de cerca.

Lucene ofereix quatre tipus diferents de camps que poden ser utilitzats.Tots els camps consisteixen en una parella de nom i valor. El tipus decamp que cal usar depen de l’us que se’n vulgui fer. Els tipus de campsdifereixen entre ells per les seves caracterıstiques. Alguns son analitzats,pero d’altres no; alguns son indexats mentre que d’altres son emmagatzematscompletament. Els tipus de camps que ofereix Lucene son els que s’expliquena continuacio:

Keyword No es analitzat, pero es indexat i emmagatzemat literalment a l’ındex.Aquest tipus s’acostuma a usar en aquells valors que han de ser preser-vats, aixı com URLs, rutes de sistemes de fitxers, dates, noms propis,numeros de telefon, etc.

UnIndexed Es analitzat i no indexat, pero el seu valor es emmagatzemat literal-ment a l’ındex. Aquest tipus s’acostuma a usar en aquells valors quehan de ser visualitzats al mostrar els resultats de les cerques, com araURLs o claus primaries, pero en canvi els seus valors no poden ser cer-cats directament. No s’ha d’usar per emmagatzemar valors molt grans,ja que poden fer incrementar excesivament el tamany de l’ındex.

UnStored Es el contrari del tipus UnIndexed. Aquest tipus de camp es analitzat iindexat, pero no es emmagatzemat a l’ındex. Aquest tipus s’acostumaa usar per indexar una gran quantitat de text que no necessita serproporcionada en la seva forma original, aixı com el cos de paginesweb, o el cost de qualsevol tipus de document de text.

Text Es analitzat i indexat. Aixo implica que els camps d’aquest tipuspoden ser cercats, pero cal vigilar amb el seu tamany. Si la informa-cio a indexar es una cadena de caracters, aleshores s’emmagatzema,pero si la informacio prove d’un flux de dades qualsevol, aleshores nos’emmagatzema.

A l’ındex s’han tingut en compte els camps anterioment mencionats:tıtol, autor, keywords, resum i cos. Aquests son els camps que contenenmeta-informacio extreta dels documents web descarregats. A mes a mes

Page 50: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 49

d’aquests cinc camps, cal tenir en compte tres camps per proporcionar in-formacio funcional addicional dels documents a indexar: la URL del docu-ment, la ruta del document al sistema de fitxers i el tamany del document.En total, cada document que cal indexar contempla vuit camps. Els resul-tats d’una cerca entreguen la url, el tıtol, l’autor, el resum i el tamany delsdocuments trobats.

doc.add(Field.UnStored("cos",filtre.obtenirCos()));

doc.add(Field.Keyword("keywords",filtre.obtenirKeywords()));

doc.add(Field.UnIndexed("url",url));

doc.add(Field.UnIndexed("autor",filtre.obtenirAutor()));

doc.add(Field.UnIndexed("cache",ruta));

doc.add(Field.UnIndexed("tamany",(new Long(tamany)).toString()));

doc.add(Field.Text("resum",filtre.obtenirDescripcio()));

doc.add(Field.Text("titol",filtre.obtenirTitol()));

Despres que el text entrant dels documents hagi estat analitzat, aquestesta llest per ser afegit a l’ındex. Lucene emmagatzema les entrades en unaestructura de dades coneguda com ındex invertit. Aquesta estructura faun us eficient de l’espai del disc mentre permet realitzar cerques rapides.El que fa que aquesta estructura sigui invertida es que utilitza els tokensextrets de les entrades dels documents com si fossin claus de cerca, enllocd’utilitzar els documents com si fossin entitats centrals. En altres paraules,no preten localitzar quines paraules hi ha en un determinat document, sinoquins documents contenen determinades paraules.

3.3 Esquema general de l’indexador

El funcionament de l’eina d’indexacio es forca simple. S’usa una combinaciod’ındexs RAMDirectory i FSDirectory, de manera que es preten aprofitarels beneficis que aporta cadascun dels dos. Es realitzen multiples processosd’indexacio simultanis mitjancant l’us de fils d’execucio, d’aquesta maneras’aconsegueix accelerar notablement la velocitat de la indexacio total, ja queaixı les indexacions fallides no entorpeixen les indexacions exitoses. S’entenper indexacio fallida d’un document, aquella que, per exemple, no s’ha pogutextreure el text pla del document.

Els fils d’execucio concurrents treballen unicament amb ındexs RAMDi-rectory, es a dir, amb ındexs emmagatzemats temporalment en memoria.Quan la indexacio individual d’un document finalitza, aquest ındex s’afegeixa l’ındex final emmagatzemat al disc mitjancant la classe FSDirectory. Elfet que cada fil d’execucio treballi amb un ındex propi emmagatzemat enmemoria evita que hi puguin haver problemes de bloqueig entre fils d’exe-cucio diferents en el cas d’usar un ındex compartit. A mes a mes, s’evita

Page 51: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 3. EXTRACCIO I INDEXACIO D’INFORMACIO 50

Figura 3.3: Esquema general de l’indexador

realitzar accessos continuats al disc, ja que l’ındex final nomes s’amplia quanfinalitza la indexacio realitzada per alguns dels fils d’execucio. Mirar figura3.3.

Page 52: TOKE: Eina de suport als processos de webmining basada en programari lliure

Capıtol 4

Diagrames de classe

4.1 Aplicacio exploradora

A continuacio es mostren els diagrames de cada classe implementada a l’apli-cacio d’exploracio. La seguent llista detalla cadascuna d’aquestes classes:

• AplicacioPrincipal : Constitueix la classe principal de l’aplicacio.Carrega el menu d’inici rapid.

• AplicacionsDeCerca : S’encarrega de visualitzar el menu d’eines decerca.

• WebCrawler : Es la classe base del web crawler. Carrega la interfıciei executa l’aplicacio de crawling.

• Aranya : Es la classe que implementa l’aplicacio de crawling explicadaen apartats anteriors.

• GestorDescarregues: Es la classe que implementa el gestor de de-scarregues explicat en apartats anteriors.

• GestorIntranet : La seva tasca es mantenir i gestionar els fitxers idirectoris de la intranet del disc.

• GestorArbresWeb: Classe que implementa el manteniment de lesestructures de nodes explorats dels hosts.

• ArbreWeb: Classe que implementa l’estructura de nodes exploratsd’un host.

• NodeWeb: Implementa l’estructura node utilitzada per la classe Ar-breWeb.

• ContenidorDescarregues: Classe abstracta que modela els metodesde l’estructura de nodes pendents.

51

Page 53: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 52

• ContenidorDescarreguesFIFO : Implementacio FIFO de l’estruc-tura de nodes pendents.

• ContenidorDescarreguesLIFO : Implementacio LIFO de l’estruc-tura de nodes pendents.

• ThreadDescarregadorUrl : Implementacio del fil d’execucio de de-scarregues simples via HTTP.

• ThreadDescarregadorUrlPost : Implementacio del fil d’execucio dedescarregues HTTP amb POST previ.

• ThreadDescarregadorUrlAmbCookies: Implementacio del fil d’ex-ecucio de descarregues HTTP amb us de cookies.

• Logger : Classe que implementa l’analisi d’incidencies produıdes du-rant les descarregues HTTP.

• ExtractorFormularisWeb: S’encarrega de descarregar i extreureformularis web de les pagines web.

• FormulariWeb: Classe que emmagatzema informacio relativa a unformulari web.

• ContenidorFormularisWeb: Classe contenidor que emmagatzemaformularis web.

• GraficEstadistic: Implementacio del grafic de velocitats de descarrega.

• InterficieGrafica : Implementacio de la interfıcie d’usuari de l’einad’exploracio.

• GeneradorGrafs: Classe que s’encarrega de generar grafs a partirde l’estructura de nodes explorats.

• InterficieGraficaMapaNodes: Implementacio de la interfıcie d’usuaride l’eina visualitzadora de grafs web.

4.2 Aplicacio indexadora

A continuacio es mostren els diagrames de cada classe implementada a l’apli-cacio d’indexacio. La seguent llista detalla cadascuna d’aquestes classes:

• AplicacioIndexadora : Es la classe que executa l’aplicacio d’indexacio.Permet la interaccio entre la interfıcie d’usuari i l’indexador.

• IndexadorExploracions: Implementa el nucli del proces d’indexacio.

Page 54: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 53

Figura 4.1: AplicacioPrincipal.java

Figura 4.2: AplicacionsDeCerca.java

Page 55: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 54

Figura 4.3: WebCrawler.java

Page 56: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 55

Figura 4.4: Aranya.java

Page 57: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 56

Figura 4.5: GestorDescarregues.java

Page 58: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 57

Figura 4.6: GestorIntranet.java

Page 59: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 58

Figura 4.7: GestorArbresWeb.java

Page 60: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 59

Figura 4.8: ArbreWeb.java

Page 61: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 60

Figura 4.9: NodeWeb.java

Page 62: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 61

Figura 4.10: ContenidorDescarregues.java ContenidorDescarreguesFI-FO.java ContenidorDescarreguesLIFO.java

• EstatIndexadorExploracions: Classe que conte informacio relativaa l’estat de l’indexacio en cada moment.

• HistogramaFrequenciaParaules: Classe que implementa els pro-cediments per generar i processar histogrames de frequencia de pa-raules.

• GestorHistogramesFrequenciaParaules: Classe contenidor queemmagatzema histogrames de frequencia de paraules. Genera el fitxerde frequencies de paraules.

• InterficieGraficaIndexador : Implementacio de la interfıcie d’usuaride l’eina d’indexacio.

4.3 Aplicacio de cerca

A continuacio es mostren els diagrames de cada classe implementada a l’apli-cacio de cerca. La seguent llista detalla cadascuna d’aquestes classes:

• AplicacioCercadora : Es la classe que executa l’aplicacio per re-alitzar cerques. Permet la interaccio entre la interfıcie d’usuari i elcercador.

Page 63: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 62

Figura 4.11: ThreadDescarregadorUrl.java ThreadDescarregadorUrl-Post.java ThreadDescarregadorUrlAmbCookies.java

Page 64: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 63

Figura 4.12: Logger.java

• AplicacioServidorCerques: Es la classe que executa l’aplicacio servi-dora de cerques.

• Cercador : Implementa el nucli del proces que realitza cerques.

• MissatgeCercaRemota : Classe utilitzada per definir els missatgesde cerca.

• MissatgeRespostaCercaRemota : Classe utilitzada per definir elsmissatges de resposta de cerca.

• CercaRemota : Classe utilitzada per indicar els parametres de cercaremota.

• ResultatCerca : Classe utilitzada per emmagatzemar els resultats dela cerca.

• InterficieGraficaCercador : Implementacio de la interfıcie d’usuaride l’eina de cerca.

• InterficieGraficaServidorCerques: Implementacio de la interfıcied’usuari del servidor de cerques.

Page 65: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 64

Figura 4.13: ExtractorFormularisWeb.java

Figura 4.14: ContenidorFormularisWeb.java

Page 66: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 65

Figura 4.15: FormulariWeb.java

Figura 4.16: GraficEstadistic.java

Page 67: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 66

Figura 4.17: InterficieGrafica.java

Page 68: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 67

Figura 4.18: InterficieGraficaMapaNodes.java

Figura 4.19: AplicacioIndexadora.java

Page 69: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 68

Figura 4.20: IndexadorExploracions.java

Page 70: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 69

Figura 4.21: EstatIndexadorExploracions.java

Figura 4.22: HistogramaFrequenciaParaules.java

Figura 4.23: GestorHistogramesFrequenciaParaules.java

Page 71: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 70

Figura 4.24: InterficieGraficaIndexador.java

Page 72: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 71

Figura 4.25: AplicacioCercadora.java

Figura 4.26: AplicacioServidorCerques.java

Page 73: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 4. DIAGRAMES DE CLASSE 72

Figura 4.27: Cercador.java

Figura 4.28: MissatgeCercaRemota.java

Figura 4.29: MissatgeRespostaCercaRemota.java

Page 74: TOKE: Eina de suport als processos de webmining basada en programari lliure

Capıtol 5

Llibreries utilitzades

Per al desenvolupament d’aquest projecte s’han utilitzat llibreries conegudesper a Java. Es tracta de llibreries gratuıtes i de codi obert, que proporcionenclasses per a realitzar tasques concretes de filtratge de documents, extracciod’hipervincles, descarrega de continguts web emprant cookies, indexacio detext, creacio de grafs, etc. En els proxims apartats s’expliquen les llibreriesutilitzades mes destacades d’aquest projecte.

5.1 Lucene

Jakarta Lucene es un motor de cerca implementat en Java. Va ser creatper Doug Cutting al 1997 i distribuıt com a software lliure a l’any 2000. Potser utilitzat en qualsevol aplicacio que requereixi realitzar cerques de text,des de cerques en pagines web fins a gestors de correu. L’ultima versio haestat arreglada i aporta millores, com ara un filtre sobre el que es realitzenles cerques o una API mes oberta que permet a l’usuari crear el seu propisistema de puntuacio de documents. Per a mes informacio es recomanaconsultar l’apartat 3 sobre extraccio i indexacio d’informacio.

5.2 Jung

Jung es una llibreria que ens proporciona un llenguatge comu i estes per ala modelacio, analisi i visualitzacio de dades que poden ser representades enforma de grafs o en forma de xarxa. Jung esta desenvolupat en Java.

L’arquitectura de Jung esta designada per soportar una gran varietatde representacions d’entitats i les seves relacions com els grafs directes i in-directes, els grafs mutimodals, grafs amb camins paral·lels i els hipergrafs.Aixo proporciona un mecanisme d’anotacio de grafs, entitats i relacions ambmeta-informacio. Aixo facilita la creacio d’eines analıtiques de dades com-plexes que poden examinar les relacions entre les entitats tan be com les

73

Page 75: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 74

dades adjuntes per cada entitat i relacio. La distribucio actual de Jung in-clou les implementacions d’un gran nombre d’algorismes de la teoria de grafs,exploracio de dades, analisi de la xarxa, com les rutines per al clustering,la descomposicio, l’optimitzacio, la generacio de grafs aleatoris, l’analisi es-tadıstic, el calcul de distancies entre nodes d’una xarxa, fluxos, i mesuresimportants (centralitat, PageRank, HITS, etc.).

Jung proporciona un framework visual que fa facil la tasca de desenvolu-par eines per a l’exploracio interactiva d’informacio en forma de xarxa. Elsusuaris poden usar alguns dels algorismes de representacio proporcionats, outilitzar el framework per crear les seves propies representacions. A mes ames, ofereix mecanismes de filtratge que permeten centrar l’atencio, o l’usd’algorismes en parts especıfiques dels grafs.

Tractant-se d’una llibreria de codi obert, Jung proporciona un frameworkper a l’analisi i visualitzacio de grafs i xarxes. Jung facilita el desenvolupa-ment d’aplicacions que treballen amb informacio relacional, ja que permetla reutilitzacio de codi ja existent i evitar aixı implementar codi ja existent.Les operacions basiques que es poden realitzar sobre els grafs es mostren acontinuacio:

• newInstance(): Retorna un graf del mateix tipus que el graf en elque s’ha invocat el metode.

• addVertex(v): Afegeix el vertex v al graf i retorna una referencia alvertex afegit.

• addEdge(e): Afegeix l’aresta e al graf i retorna una referencia al’aresta afegida.

• getVertices(): Retorna el conjunt de vertexs del graf.

• getEdges(): Retorna el conjunt d’arestes del graf.

• numVertices(): Retorna el numero de vertexs del graf.

• numEdges(): Retorna el numero d’arestes del graf.

• removeVertex(v): Elimina el vertex v del graf.

• removeEdge(e): Elimina l’aresta e del graf.

• removeVertices(s): Elimina els vertexs s del graf.

• removeEdges(s): Elimina les arestes s del graf.

• removeAllEdges(): Elimina totes les arestes del graf, deixant elsvertexs intactes.

Page 76: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 75

• removeAllVertices(): Elimina tots els vertexs del graf i arestes delgraf.

• copy(): Realitza una copia exacta del graf i de tots els seus continguts.

Les operacions basiques que es poden realitzar sobre els vertexs es mostrena continuacio:

• getGraph(): Retorna una referencia del graf que conte aquest vertex.

• getNeighbors(): Retorna el conjunt de vertexs que estan connectatscap aquest vertex.

• getIncidentEdges(): Retorna el conjunt d’arestes que incideixen capaquest vertex.

• degree(): Retorna el numero d’arestes incidents cap aquest vertex.

• getEquivalentVertex(g): Retorna el vertex del graf g, o qualsevolque sigui equivalent.

• isNeighbor(v): Retorna cert si el vertex v i aquest vertex son inci-dents en almenys una aresta, retorna fals altrament.

• isIncident(e): Retorna cert si l’aresta e i aquest vertex son incidents,retorna fals altrament.

• removeAllIncidentEdges(): Elimina totes les arestes que son inci-dents cap aquest vertex.

• copy(g): Realitza una copia d’aquest vertex en el graf g.

Les operacions basiques que es poden realitzar sobre les arestes es mostrena continuacio:

• getGraph(): Retorna una referencia del graf que conte aquesta ares-ta.

• getIncidentVertices(): Retorna el conjunt de vertexs que son inci-dents cap aquesta aresta.

• getEquivalentEdge(g): Retorna l’aresta del graf g, o qualsevol quesigui aquivalent.

• numVertices(): Retorna el numero de vertexs que son incidents capaquesta aresta.

• isIncident(v): Retorna cert si el vertex v es incident cap aquestaaresta, retorna fals altrament.

Page 77: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 76

• copy(g): Realitza una copia d’aquesta aresta en el graf g.

El paquet de visualitzacio de Jung ofereix mecanismes per renderitzari superposar grafs. Les implementacions actuals del renderitzador utilitzenl’API Swing de Java per mostrar grafs, pero els renderitzadors han de serimplementats utilitzant altres eines. En general, una visualitzacio es com-plementa amb els seguents components:

• Una capa(Layout) que conte un graf i determina la posicio de cadavertex que ha de ser pintat.

• Un component(Swing) on la informacio es renderitzada. Les imple-mentacions actuals utilitzen el component VisualizationViewer, estracta d’una extensio de la classe JPanel de Swing.

• Un renderitzador(Renderer) que obte la informacio proporcionada perla capa que conte el graf i pinta els vertexs i arestes sobre el component.

5.3 JTidy

JTidy es l’adaptacio per a Java de l’aplicacio HTML Tidy, un analitzadorsintactic del llenguatge HTML. JTidy pot ser utilitzat com una eina per cor-regir documents HTML mal implementats. A mes a mes, JTidy proporcionauna interfıcie de tipus DOM per al tractament dels documents HTML, el qualpermet permet utilitzar JTidy tal i com si es tractes d’un parser DOM.

5.4 PDFBox

PDFBox es una llibreria per a Java per treballar amb documents PDF. Per-met la creacio de nous documents PDF, la manipulacio de documents exis-tents i la capacitat per extreure contingut dels documents, a mes a mes,PDFBox tambe inclou algunes utilitats a trabes de la lınia de comandes.

• Extraccio de text dels documents PDF.

• Combinar documents PDF.

• Xifratge i desxifratge de documents PDF.

• Permet una facil integracio amb Lucene.

• Creacio de documents PDF a partir de fitxers de text.

• Creacio d’imatges a partir de documents PDF.

Page 78: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 77

Una de les principals caracterıstiques de PDFBox es la capacitat d’ex-treure text de grans varietats de documents PDF. Aquesta funcio la trobemal paquet org.pdfbox.util.PDFTextStripper i pot ser facilment executa-da amb l’eina org.pdfbox.ExtractText.

Els documents PDF poden tenir meta-informacio XML associada amb propositsconcrets amb un document PDF. Per exemple, el PD Model te la capacitatper contenir aquesta meta-informacio:

• PDDocumentCatalog

• PDPage

• PDXObject

• PDICCBased

• PDStream

Aquesta meta-informacio s’emmagatzema en objectes PDF, i compleix lesespecificacions XML. Actualment no hi ha cap API d’alt nivell que maneguia meta-informacio XML, PDFBox utilitza els procediments InputStream /

OutputStream de Java per recuperar o emmagatzemar la meta-informacioXML. PDFBox tambe permet afegir fitxers adjunts als documents PDF.

5.5 Jakarta POI

El projecte POI es el projecte principal per al desenvolupament d’adapta-cions en Java pur dels formats de fitxer basats en el Format de DocumentCompost OLE 2 de Microsoft. El format de Documents Compost OLE 2l’utilitzen els documents d’Office de Microsoft, aixı com els programes queutilitzen conjunts de propietats MFC per serialitzar els seus objectes de tipusdocument.

El projecte POI consisteix en APIs per manipular varis formats de fitxerbasats en el format de Document Compost OLE 2 de Microsoft, utilitzantJava pur. Concretament, es poden llegir i escriure fitxers Microsoft Excelutilitzant Java. Aviat es podra llegir i escriure fitxers Word utilitzant JavaWord. En qualsevol cas, hi ha una API completa per portar altres formatsde Document Compost OLE 2.

Entre els fitxers basats en OLE 2 de Microsoft, s’inclouen la major partdels fitxers de Microsoft Office tals com XLS i DOC, aixı com formats de fitxerbasats en l’API de serialitzacio MFC.

Page 79: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 78

POIFS es la part mes antiquada i mes estable del projecte. Es l’adaptaciodel Format de Document Compost OLE 2 a Java pur. Suporta funcionalitatde lectura i escriptura. Tots els components es serveixen d’ell per definicio.

HSSF es l’adaptacio del format de fitxer de Microsoft Excel 97(-2002)(BIFF8) a Java pur. Soporta lectura i escriptura. HWPF es l’adaptacio delformat de fitxer de Microsoft Word 97 a Java pur. Suporta lectura i escrip-tura.

HPSF es l’adaptacio del format de conjunt de propietats OLE 2 a Java pur.Els conjunts de propietats s’utilitzen principalment per emmagatzemar lespropietats d’un document (tıtol, autor, data de l’ultima modificacio, etc.),pero tambe poden ser utilitzats per a proposits especıfics d’una aplicacio.Actualment HPSF suporta nomes la funcionalitat de lectura.)

5.6 IR-Webutils

Es tracta d’una llibreria formada per un conjunt de classes per descarregardocuments HTML dels servidors web, i extreure els seus hipervincles de sor-tida. A continuacio es mostra un resum de les seves classes:

• DirectorySpider : Es tracta d’un web crawler que explora a travesdels subdirectoris de l’ordinador.

• Graph : Estructura per generar grafs.

• HTMLPage : Es una representacio d’informacio sobre una paginaweb.

• HTMLPageRetriever : Permet als clients descarregar pagines weba partir d’URLs.

• HTMLParserMaker : Permet als clients carregar una instancia deHTMLEditorKit.Parser.

• Link : Es una classe que conte una URL.

• LinkExtractor : Extreu els enllacos de sortida d’una pagina web don-ada.

• Node : Es tracta d’una estructura node per a la generacio de grafs.

• RobotExclusionSet : Proporciona funcionalitats per complir el pro-tocol d’exclusio Robots Exclusion Protocol.

• RobotsMetaTagParser : Extreu meta-informacio dels documentsHTML.

Page 80: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 79

• SafeHTMLPage : Proporciona informacio relativa al contingut quecal indexar, o no, d’un document web.

• SafeHTMLPageRetriever : Classe per respectar el protocol d’ex-clusio.

• SiteSpider : Classe simple per a explorar llocs web.

• Spider : Framework per elaborar web crawlers.

• URLChecker : Classe per validar adreces URL.

• WebPage : Classe estatica que proporciona operacions per descar-regar pagines web.

• WebPageViewer : Classe que conte utilitats per descarregar i mostrarpagines HTML.

5.7 HTTPClient

Aquest paquet proporciona eines per desenvolupar i utilitzar clients HTTP.Implementa el protocol HTTP/1.0 i HTTP/1.1, incloent els metodes HEAD,GET, POST i PUT. Manega automaticament autoritzacions, redireccions, icookies. A mes a mes, inclou codecs per codificar i decodificar en base 64,manegar formularis web, etc. Totes aquestes funcionalitats son lliures i estanregides per una llicencia GNU Lesser General Public License (LGPL).

Si un servidor requereix autoritzacio basica, el client HTTP mostra unacaixa de dialeg demanant la informacio desitjada (normalment un nomd’usuari i un password), tal i com ho fan els clients web convencionals.Aquesta informacio inserida per l’usuari es emmagatzemada en una cachei utilitzada mes endavant de manera automatica. Si com a programadorsconeixem el nom d’usuari i la contrasenya per avancat, podem configurarles aplicacions per tal que utilitzin aquestes dades mitjancant els metodesaddBasicAuthorization() i addDigestAuthorization de la classe HTTP-Connection, o mitjancant els corresponents metodes de la classe Authoriza-tionInfo.

Les redireccions (amb codis de retorn 301, 302, 303, 305 i 307) sonmanegades automaticament quan s’utilitzen els metodes GET i HEAD. Lescookies son manegades automaticament. Quan una resposta conte el mis-satges Set-Cookie o Set-Cookie2 a la capcalera, les cookies son filtradesi emmagatzemades; quan una peticio es enviada, aquesta es escanejada percomprovar si cal aplicar l’us de les cookies.

Page 81: TOKE: Eina de suport als processos de webmining basada en programari lliure

CAPITOL 5. LLIBRERIES UTILITZADES 80

A causa de questions de privacitat amb l’us de les cookies, s’utilitza unapolıtica de privacitat per permetre a l’usuari acceptar o refusar l’enviamentde cookies. Per defecte, quan un servidor solicita una cookie s’obre una caixade dialeg per preguntar a l’usuari si vol acceptar-la o no.

La classe Util ofereix un conjunt de metodes per manegar els camps deles capcaleres HTTP. Aixo es possible amb l’us del metode parseHeader(),que s’encarrega d’analitzar la sintaxi del protocol. Cal remarcar que aquestanalitzador no manega l’autentificacio de les capcaleres WWW-Authenticate

o Proxy-Authenticate.

5.8 JFreeChart

JFreeChart es una llibreria lliure per a Java per generar grafics de dades,que inclou les seguents funcionalitats:

• Pie Charts (2D i 3D).

• Grafics de barres (regulars i empilats, amb efecte 3D opcional).

• Grafics de lınia i d’area.

• Scatter Plots i grafics de bombolla.

• Series de temps i grafiques Candle Stick.

• Grafiques combinades.

• Grafiques de Pareto.

• Diagrames de Gantt.

• Grafics de vent i grafiques de sımbols.

• Grafiques Wafer Map.

JFreeChart pot ser utilitzat en aplicacions Java, applets, servlets i JSP.

Page 82: TOKE: Eina de suport als processos de webmining basada en programari lliure

Bibliografia

[1] Otis Gospodnetic i Erik Hatcher. Lucene in action (A guide to the Javasearch engine). Manning Publications Co. 2005.

[2] Vladislav Shkapenyuk i Torsen Suel. Design and Implementation of aHigh-Performance Distributed Web Crawler. Polytechnic University ofBrooklyn, 2001.

[3] Dustin Boswell. Distributed High-performance Web Crawlers: A Surveyof the State of the Art. 2003.

[4] Marc Najork i Janet L. Wiener. Breadth-First Search Crawling YeldsHigh-Quality Pages. Compaq Systems Research Center, 2001.

[5] Joan Gimbert, Ramiro Moreno, Josep Maria Ribo i Magda Valls. Apropa-ment a la teoria de grafs i als seus algorismes. Universitat de Lleida,1998.

[6] HTML 4.01 Specification W3C Recommendation 24 desember 1999.

[7] Carlos Castillo i Ricardo Baeza-Yates. Practical Issues of Crawling LargeWeb Collections. Center for Web Research, University of Chile, 2005.

[8] Carlos Castillo. Effective Web Crawling. University of Chile, 2004.

81

Page 83: TOKE: Eina de suport als processos de webmining basada en programari lliure

Apendix A

Manual d’aplicacio per a

l’usuari

A.1 Requeriments

L’aplicacio ha estat compilada i executada amb exit utilitzant la versio deJava(TM) 2 JDK1.5.0 01, tot i que amb la versio 1.4 tambe s’ha pogutprovar que funciona correctament. Es pot comprovar la versio de Java delnostre sistema executant la seguent comanda desde la lınia de comandes:

java -version

La seva execucio hauria de mostrar una cosa com la seguent:

java version "1.5.0_01"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)

Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode)

Els requeriments mınims de hardware depenen en gran part de l’us que esfaci de l’aplicacio, tot i que es recomana disposar d’un equip amb processadorPentium 3 800MHz amb 128MBytes de memoria RAM com a mınim.

A.2 Instal·lacio

El programa disposa d’un sistema d’instal·lacio tıpic per a Windows, mit-jancant el qual s’instal·la automaticament tota l’aplicacio a traves d’un assis-tent. L’instal·lador ofereix la possibilitat d’afegir un acces directe a l’escrip-tori o a la barra d’inici si l’usuari ho desitja, de la mateixa manera tambe pro-porciona un sistema de desinstal·lacio de tot el conjunt. Un cop instal·ladal’aplicacio, tindrem acces a tres opcions: editar el fitxer rutes.cfg, restau-rar i recompilar tota l’aplicacio, i executar l’aplicacio.

82

Page 84: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 83

Tots els fitxers descarregats durant les exploracions s’emmagatzemen enun directori de l’ordinador, per defecte aquest directori es \intranet. De lamateixa manera, tots els ındexs generats per l’aplicacio d’indexacio s’em-magatzemen tambe en un directori, per defecte aquest directori es \indexs.Aquests dos directoris son creats automaticament al moment d’executarl’aplicacio, pero hi ha la possibilitat de canviar-los. Per fer-ho, cal editar elfitxer rutes.cfg que es troba al mateix directori de l’aplicacio i substituırles configuracions per les desitjades:

### Fitxer de rutes ###

## Ruta de la Intranet ##

c:\\intranet\\

## Ruta de la carpeta d’indexs ##

c:\\indexs\\

Si es desitja, es pot efectuar una instal·lacio manual de l’aplicacio, jaque per exemple, pot resultar necessari executar l’aplicacio en un sistemaLinux. En aquest cas, cal utilitzar la distribucio que ve empaquetada en unsimple fitxer comprimit i descomprimir-ho en un directori de l’ordinador.L’aplicacio sempre ve acompanyada de dos fitxers de processament per lots(fitxers .bat). El fitxer build.bat s’encarrega de restaurar i recompilar totel conjunt deixant l’aplicacio en el seu estat inicial, tot i que aquesta operaciono es estrictament necessaria ja que l’aplicacio ja es distribueix compilada.El fitxer Toke.bat simplement executa l’aplicacio. Per a Linux aquestsdos fitxers no serveixen, tot i que de moment, tampoc s’han elaborat elscorresponents scripts, per tant cal fer-ho manualment a traves d’un interpretde comandes o shell. La corresponent compilacio es fa seguint el seguentexemple des de el directori on s’ha descomprimit la distribucio simple:

"javac.exe" -O -classpath "src\;lib\ir.jar;lib\lucene-1.4.3.jar;

lib\Multivalent.jar;lib\commons-collections-3.1.jar;lib\jung-1.6.0.jar;

lib\PDFBox-0.7.1.jar;lib\Tidy.jar;lib\jcommon-1.0.0-rc1.jar;

lib\jfreechart-1.0.0-rc1.jar;lib\jfreechart-1.0.0-rc1.zip;

lib\log4j-1.2.9.jar;lib\xercesImpl.jar;lib\poi-2.5.1-final-20040804.jar;

lib\poi-scratchpad-2.5.1-final-20040804.jar;lib\HTTPClient.zip"

-d "classes" "src\AplicacioPrincipal.java"

Aquest procediment de compilacio no s’ha provat en Linux, tanmateix elresultat tambe hauria de concloure amb exit. Un cop finalitzada la compi-lacio, cal crear el contenidor Toke.jar que acompanya l’aplicacio i contindraels fitxers .class generats durant la compilacio i un fitxer amb el classpathnecessari per executar el conjunt.

cd classes

jar cmf ..\manifest.txt ..\Toke.jar *.class

Page 85: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 84

Figura A.1: Sel·leccio de l’eina d’exploracio

Arribats a aquest punt, tindrem l’aplicacio recompilada i llesta per exe-cutar, pero es important remarcar que totes les distribucions de l’aplicacioja venen compilades i preparades per funcionar. L’execucio manual de l’apli-cacio es fa seguint el seguent exemple, des de el directori on s’ha descom-primit la distribucio simple (si seguim l’exemple anterior, caldria fer cd ..

per tornar al directori inicial):

java -jar Toke.jar

Amb aixo es suficient per executar-ho, pero els qui siguin mes puristestambe poden executar l’aplicacio de la seguent manera, encara que no es lamanera mes elegant:

"java.exe" -classpath "classes\;lib\ir.jar;lib\lucene-1.4.3.jar;

lib\Multivalent.jar;lib\commons-collections-3.1.jar;lib\jung-1.6.0.jar;

lib\PDFBox-0.7.1.jar;lib\Tidy.jar;lib\jcommon-1.0.0-rc1.jar;

lib\jfreechart-1.0.0-rc1.jar;lib\jfreechart-1.0.0-rc1.zip;

lib\log4j-1.2.9.jar;lib\xercesImpl.jar;lib\poi-2.5.1-final-20040804.jar;

lib\poi-scratchpad-2.5.1-final-20040804.jar;lib\HTTPClient.zip"

AplicacioPrincipal

A.3 Explorar

L’execucio del web crawler o eina d’exploracio es fa clicant sobre el boto Ex-plorar del menu d’inici rapid. Aquesta eina ens ofereix un ampli ventall defuncionalitats per explorar grans quantitats de documents web, emmagatzemar-los al disc, realtizar estadıstiques, visualitar pagines web en forma de graf,etc. Es important mencionar que es tracta d’una eina desenvolupada ex-clusivament per a l’exploracio de nodes i per al seu posterior tractament iindexacio.

Page 86: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 85

Figura A.2: Interfıcie grafica de l’eina d’exploracio

Page 87: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 86

Figura A.3: Panells de control

A.3.1 Panells de control

L’eina d’exploracio disposa d’una barra de control a la part superior de lapantalla. En aquesta barra podrem realitzar les seguents tasques: crear unanova exploracio, carregar una exploracio emmagatzemada, desar l’exploracioactual, iniciar l’exploracio, pausar l’exploracio, aturar l’exploracio i sortir del’aplicacio.

Els fitxers d’exploracio s’emmagatzemen automaticament al directori dela intranet, i tenen extensio .exp. Es tracta de fitxers amb contingut ASCIIde manera que poden ser editats amb qualsevol editor de text convencional.Per recuperar una exploracio, cal clicar sobre el boto Obrir, el qual mostratots els fitxers d’exploracio generats en anteriors ocasions. Finalment calclicar sobre el fitxer .exp desitjat.

Per iniciar una exploracio, previament caldra configurar-la mitjancant elpanell de configuracio, i despres cal clicar al boto Iniciar. Aquesta operaciote un comportament diferent amb les exploracions que s’han recuperat desde el disc, ja que en aquests casos l’exploracio continuara des de l’ultim punton es va deixar, a no ser que ja hagues finalitzat. Per pausar o aturar unaexploracio caldra clicar sobre els botons Pausar i Aturar respectivament.El boto Tancar tanca i surt l’aplicacio. L’eina d’exploracio proporciona sispanells amb diferents funcionalitats, des de panells de configuracio fins apanells de monitoritzacio i generacio d’estadıstiques:

Panell de configuracio de l’exploracio Es tracta d’un panell per con-figurar les exploracions. En aquest s’especifiquen aspectes tan importantscom el nom de l’exploracio, la URL inicial, la profunditat maxima d’ex-

Page 88: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 87

Figura A.4: Indicadors d’estat d’exploracio

ploracio, el nombre de descarregues simultanies, nombre de descarreguessimultanies per host, l’estrategia d’exploracio, etc.

Panell de resultats Aquest panell conte un subconjunt de panells dedi-cats a monitoritzar dades generades durant l’exploracio en temps real. Perexemple, velocitats de descarrega de cada fil d’execucio, tamanys de fitxermes frequents, errors de descarrega, tipus de fitxers mes frequents, etc.

Panell de l’arbre de nodes Mostra tots els fitxers descarregats realitzantuna representacio exacta del sistema de fitxers de cada host explorat. Ambaquesta eina es pot obtenir informacio immediata de cada document webexplorat o pendent de ser explorat, navegant a traves de l’arbre de fitxers.

Panell de la cua de pendents Mostra totes les URLs pendents d’explo-rar. La visualitzacio es fa mostrant en una banda les URLs prioritaries i enl’altra les secundaries.

Panell de graf d’enllacos Es tracta d’una eina per generar, visualitzar itractar el graf composat pels hipervincles dels nodes explorats. Permet visu-alitzar nomes els nodes que satisfan determinades condicions, per exemple,visualitzar els nodes d’un determinat host o d’un determinat tipus.

Panell d’Auto-LogIn Ofereix una eina per a obtenir i completar for-mularis web d’autentificacio que ofereixen acces a zones restringides. Elsformularis son emmagatzemats a disc i poden ser usats mes endavant per arealitzar exploracions.

A la part inferior de l’aplicacio d’exploracio es troben els indicadors d’es-tat d’exploracio. Es tracta d’un conjunt d’indicadors que s’actualitzen cada500ms durant el transcurs d’una exploracio, mostren informacio en tempsreal de l’exploracio, aixı com el nombre de threads actius (descarregues ac-tives), pagines web explorades (nombre de documents web descarregats itractats exitosament), tamany total descarregat (tamany en bytes dels doc-uments web descarregats exitosament), descarregues fallides (nombre d’in-tents de descarrega fallits), elements a la cua (nombre total d’URLs pendentsde descarregar), hosts trobats (nombre de hosts descoverts fins al moment),

Page 89: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 88

Figura A.5: Panell de configuracio

ample de banda actual (l’ample de banda en kilobytes per segon usat enaquell instant), l’ample de banda maxim(maxim ample de banda assolitdesde l’inici de l’exploracio en kilobytes per segon) i l’ultim node explorat(ultima URL descarregada exitosament quan s’ha realitzat l’ultima compro-vacio).

A.3.2 Configuracio de parametres d’exploracio

El panell de configuracio permet establir els parametres inicial d’exploracio.El panell es divideix en quatre arees: web inicial, configuracio exploracio,dominis i extensions. A l’area de web inicial, cal sel·leccionar el tipus d’ex-ploracio que es vol fer. Si s’escull explorar una area publica, cal indicar laURL inicial a la part de la dreta. Si s’escull explorar una area restringidacal indicar quin formulari usar. Els formularis es creen mitjancant l’einad’Auto-LogIn.

A l’area de configuracio d’exploracio cal indicar tots aquells parametresque afecten al comportament de l’exploracio. Primerament cal posar un noma l’exploracio. Aquest sera el nom que tindra el fitxer d’exploracio que s’em-magatzemara al disc i tambe sera el nom del directori on s’emmagatzemaranels fitxers descarregats a la Intranet. A continuacio, cal indicar el nombremaxim de documents a descarregar, el nombre maxim de descarregues si-

Page 90: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 89

multanies, el nombre de descarregues simultanies per host (que ha de sermenor o igual que el nombre maxim de descarregues simultanies) i la pro-funditat maxima d’exploracio (el nombre maxim d’enllacos que hi pot haverentre el node inicial i qualsevol altre node a explorar).

Despres, cal indicar els aspectes que afecten a l’estrategia d’exploracio.En aquest sentit, cal indicar si volem realitzar una exploracio en ampladao una en profunditat. Caldra decidir si volem explorar els enllacos externso no. En cas afirmatiu, haurem d’indicar si volem donar prioritat a les de-scarregues de fitxers que pertanyen al host inicial; en l’altre cas, hauremde decidir si volem explorar subdominis del mateix host inicial o no. Detotes maneres, s’ha de decidir si sempre s’haura de provar de descarregar elseguent node disponible o no. Per a mes informacio cal consultar l’apartat2.4.

Hi ha la possibilitat d’actualitzar i visualitzar els grafics estadıstics entemps real, simplement activant l’opcio Actualitzacio automatica d’estadıstiques.Tambe existeix la possibilitat de realitzar operacions d’auto-guardar explo-racions de manera automatica. Aixo es du a terme amb l’opcio de Desardades periodicament, on cal indicar-ne la periodicitat en minuts. Aquestafuncionalitat resulta especialment util quan cal realitzar grans exploracionsde llarga durada.

Cal destacar finalment, la possibilitat d’utilitzar llistes de URLs pro-hibides, es a dir, URLs que no seran explorades. Aquestes llistes s’han deguardar al directori on hi ha la Intranet en format .txt. Aquests fitxers espoden composar amb qualsevol editor de text, de manera que cada lıniadel fitxer ha de contenir una adreca url. Prohibir l’exploracio d’URLs potresultar util, per exemple, per evitar explorar pagines web amb contingutsque no ens interessen.

A l’area de dominis s’escullen els dominis que volem que s’explorin. Enaquest sentit, s’exploren unicament aquelles URLs tals que el seu dominibase no pertany al grup de dominis no seleccionats. El mateix passa a l’aread’extensions, on nomes s’exploren aquelles URLs tals que la seva extensiono pertany al grup d’extensions no seleccionades.

A.3.3 Panells de monitoritzacio i estadıstiques

Els panells de monitoritzacio tenen per objectiu mostrar graficament les es-tadıstiques acumulades de l’exploracio. Es divideixen en sis panells diferents.Si hi ha activada l’opcio d’actualitzar automaticament les estadıstiques,aleshores les visualitzacions de les grafiques s’actualitzen cada 500ms, altra-ment caldra clicar sobre el boto Actualitzar de cada panell per a actualitzar

Page 91: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 90

Figura A.6: Indicadors grafics de les velocitats de descarrega

els grafics.

Threads Mostra els fitxers que descarreguen cada thread. De cada threades visualitza graficament la seva velocitat de descarrega, la URL del fitxerque esta descarregat i la icona associada a l’extensio del fitxer que descarrega.

Tamanys Mostra un histograma de tamanys. Es tracta d’un histogramacreat a partir dels tamanys dels documents web descarregats amb exit.

Incidencies Mostra un grafic de roda indicant els percentatges de cadatipus d’error detectat. El percentatge es basa sobre tots aquells fitxers quehan fallat al descarregar-los. A la taula de la dreta, es mostra el nombreexacte de fallides de cada tipus, la suma de tots els valors es igual al nombrede descarregues fallides.

Dominis Mostra un grafica de roda indicant els percentatges de presenciade fitxers de cada domini. El percentatge es basa sobre tots aquells fitxersque han estat descarregats amb exit. A la taula de la dreta, es mostra elnombre exacte de fitxers explorats de cada domini. La suma de tots elsvalors es igual al nombre de descarregues exitoses.

Extensions Mostra una grafica de roda indicant els percentatges de presenciade fitxers de cada tipus d’extensio. El percentatge es basa sobre tots aquellsfitxers que han estat descarregats amb exit. A la taula de la dreta, es mostra

Page 92: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 91

Figura A.7: Histograma de tamanys

Figura A.8: Grafic d’incidencies

Page 93: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 92

Figura A.9: Grafic de dominis

el nombre exacte de fitxers explorats de cada tipus d’extensio. La suma detots els valors es igual al nombre de descarregues exitoses.

Resum Mostra un resum de tots els grafics en un unic panell. Aixo permetveure l’evolucio en temps real de tots ells en una sola vista.

A.3.4 Exploracio - Operacions basiques

En aquest apartat s’expliquen els passos basics que cal fer per realitzarl’exploracio d’un lloc web public. Per a fer-ho, seguirem un exemple en elqual es preten explorar els nodes web del host www.etse.urv.es i tots elsseus subdominis. Per tant, primer cal executar l’aplicacio i esperar a que escarregui el menu d’inici rapid.

Escollir l’operacio explorar El menu d’inici rapid ens ofereix acces ales tres operacions principals del programa: explorar, indexar i cercar. Es-collirem la primera opcio, explorar, tal i com es mostra a la figura A.1.

Comencar una nova exploracio Un cop carregada l’eina d’exploracio,caldra comencar una nova exploracio. Per fer-ho cal clicar sobre el botoNova exploracio del menu superior, mitjancant el qual apareixeran tots elspanells de control. A partir d’aquest punt caldra comencar a configurarl’exploracio.

Page 94: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 93

Figura A.10: Grafic d’extensions

Figura A.11: Resum de tots els panells de resultats

Page 95: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 94

Figura A.12: Exploracio publica del lloc web www.etse.urv.es

Configurar l’exploracio La configuracio de l’exploracio es fa mitjancantel panell de configuracio. L’acces a cadascun dels panells de control es faclicant sobre les corresponents solapes de la part esquerra de la pantalla.Inicialment ja es visualitza el panell de configuracio, per tant, no caldrarecorrer a l’us de la solapa de configuracio. Realitzarem una exploraciopublica sobre el host www.etse.urv.es tal i com s’ha dit al principi, pertant, cal aplicar els seguents passos:

Indicar la web inicial Indicarem primer que volem realitzar una Ex-ploracio d’una area publica, i inserirem l’adreca URL del lloc web www.etse.urv.es

a l’area de text de la dreta. Es important l’eleccio que fem de la URL d’inici,ja que cal posar sempre l’adreca del node arrel del lloc web que pretenguemexplorar. Mirar la figura A.12.

Posar un nom a l’exploracio Ara cal ajustar els parametres de l’ex-ploracio. Primer de tot, cal posar un nom a l’exploracio, que hauria d’anard’acord amb el tıtol o tema del lloc web a explorar. En aquest cas ETSEseria un nom raonable. Es important usar noms amb lletres exclusivamentalfanumeriques, es a dir, paraules de l’alfabet o nombres sencers, ja quealguns sımbols tipografics poden no ser admesos pel sistema de fitxers delsistema operatiu.

Ajustar els parametres d’exploracio A continuacio, cal especificarels parametres tecnics que afecten indirectament al comportament de l’es-trategia d’exploracio. El valor del nombre total de pagines a descarregar espot deixar intacte, a no ser que ens interessi explorar un nombre concretde documents. El nombre de descarregues simultanies per defecte es cinc,encara que si disposem d’una connexio amb un ample de banda consider-able podem posar el valor a deu, o fins i tot a quinze si el host a explorares troba a la mateixa LAN. El nombre de descarregues simultanies per hostes dos per defecte. Decidir aquest valor no es facil, ja que depen del hosta explorar, tanmateix usar valors entre dos i quatre pot ser acceptable. Laprofunditat d’exploracio dependra de si volem fer una petita exploracio o beuna exploracio a gran escala. En el primer cas una profunditat entre tresi cinc es suficient, en el segon cal usar profunditats majors o iguals a set.

Page 96: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 95

Figura A.13: area de configuracio d’exploracio

Page 97: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 96

Es important recordar que normalment els nodes mes profunds acostumena ser els que menys ens interessen. Mirar la figura A.13.

Ajustar els parametres estrategics A continuacio, cal especificarels parametres tecnics que afecten directament al comportament de l’es-trategia d’exploracio. La funcionalitat dels seguents parametres, s’explicadetalladament a l’apartat 2.4 referent als parametres i configuracions del’exploracio web. La casella Explorar enllacos externs la desmarquem, jaque ens interessara explorar unicament aquells documents que pertanyenal host www.etse.urv.es. Aixı doncs, deixarem marcada la casella Ex-plorar hosts del domini ja que tambe volem explorar documents que per-tanyen a subdominis del host inicial, com ara, www.subdomini.etse.urv.eso www.subsubdomini.subdomini.etse.urv.es. Deixarem tambe marcadala casella Sempre explorar el seguent disponible. Finalment, escollirem l’es-trategia d’exploracio basada en la Cerca Depth-First. Mirar la figura A.13.

Ajustar els parametres funcionals Si marquem la casella Actual-itzacio automatica d’estadıstiques, ens estalviarem haver de clicar sobre elsbotons d’actualitzar dels panells de monitoritzacio i estadıstiques durantl’exploracio, ja que aleshores s’actualitzarien automaticament cada 500ms.Ens pot resultar interessant per veure l’evolucio dels resultats en temps re-al, pero la deixarem desactivada. Es important remarcar que l’actualitzacioautomatica suposa un cost addicional important de l’us de CPU en maquineslentes. El que si que activarem sera l’opcio de desar automaticament l’ex-ploracio, d’aquesta manera l’aplicacio anira desant al disc l’estat actual del’exploracio en cada moment. En exploracions llargues cal posar una peri-odicitat alta superior a quinze o vint minuts, mentre que amb exploracionsde curta durada es poden posar periodicitats d’entre dos i cinc minuts. Peracabar, podem decidir usar una llista amb URLs prohibides, tanmateix enaquest exemple no n’usarem cap. Mirar la figura A.13.

Escollir els dominis i les extensions Ara cal seleccionar els dominisi extensions dels fitxers que volem que s’explorin, de manera que els que nos’escullin no seran explorats. Mirar la figura A.14.

Iniciar l’exploracio En aquests moments ja podem iniciar l’exploracio.Cal clicar sobre el boto Iniciar del menu superior; una caixa de missatgeens avisara que l’exploracio comencara. En aquest moment l’exploracio esposara en marxa i podrem observar com tots els documents descarregatss’emmagatzemen a la carpeta \intranet\ETSE de l’ordinador. En qualsevolmoment podem pausar o aturar l’exploracio fent us del menu superior. L’ex-ploracio finalitza sense avisar, de manera que sabrem que aquesta ha acabat

Page 98: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 97

Figura A.14: arees de dominis i extensions

Page 99: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 98

quan els indicadors de la part inferior de la pantalla indiquin que hi ha zerothreads actius.

Visualitzar l’arbre d’exploracio L’arbre d’exploracio permet visual-itzar tots els nodes explorats en forma d’arbre, simulant el sistema de fitxersde cada host explorat. Consta d’una llista de hosts a la part esquerra i unarbre de directoris i fitxers a la part dreta. Per poder disposar en qualsevolmoment dels ultims estats dels arbres, caldra clicar sobre el boto Actual-itzar llista de la part inferior del panell. Un cop hi haguem clicat tindremla llista actualitzada i llesta per usar, aixı doncs, clicant sobre algun delshosts d’aquesta, es visualitzara a la dreta el corresponent arbre. Podemdesplegar directoris de l’arbre per poder veure’n els seus continguts, de lamateixa manera, clicant sobre cada node de l’arbre obtindrem informaciod’aquests als indicadors inferiors. Mitjancant els filtres de la part superiordel panell podrem visualitzar tots els nodes, els nodes que han fallat, elsnodes explorats o els nodes pendents de descarregar respectivament. Quans’escull un filtre cal tornar a escollir el host de la llista de l’esquerra. Mirarla figura A.15.

Visualitzar la cua de pendents La cua de pendents permet visualitzarles URLs que resten pendents de ser explorades. A la banda esquerra esmostren les URLs prioritaries, mentre que a la banda dreta es mostren lesURLs secundaries o no prioritaries.

A.3.5 Explorar una area restringida

Les exploracions en arees restringides difereixen de les publiques, en el fetque cal completar un formulari previ d’autentificacio i enviar-lo abans dedescarregar la URL d’accio. Per a la tasca d’obtencio i completacio del for-mulari s’ha d’utilitzar l’eina d’Auto-LogIn que inclou el programa. L’accesa aquesta eina es fa clicant sobre la solapa Auto-LogIn. En aquest cas,provarem d’explorar un compte de correu d’usuari a traves del servei dewebmail que ofereix el lloc web www.queenzone.com.

Indicar la URL del formulari d’identificacio Primer cal inserir laURL on hi ha el formulari d’identificacio. Cal estar segur que la URL in-serida es realment la URL que conte el formulari, ja que es habitual trobarpagines web autoredireccionades cap a altres URLs, i per tant, es facil pen-sar que la URL que conte el formulari es la que es apareix a la barra dedireccio dels clients web. Un cop inserida la url, caldra clicar sobre el botoExtreure formularis.

Seleccionar el formulari Despres de clicar sobre el boto d’extraccio deformularis, l’aplicacio descarregara la pagina web i despres extreura tots els

Page 100: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 99

Figura A.15: Arbre d’exploracions

Page 101: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 100

formularis que pugui contenir. Un cop finalitzi l’extraccio, apareixeran elsnoms de tots els formularis extrets a la llista de la part esquerra. A la partinferior de la llista apareix el nombre de formularis trobats. No existeix unaforma concreta de saber quin es el formulari que cal utilitzar, per tant, calclicar sobre dels formularis per poder veure els seus continguts a la taula dela part central.

Inserir el login i la contrasenya Saber quin es el formulari que cal om-plir no es trivial, a no ser que nomes hi hagi un sol formulari. Al clicar asobre del formulari desitjat de la llista, podrem veure’n el seu contingut a lataula central de l’aplicacio. En aquesta tindrem a la columna de l’esquerraels noms dels camps, mentre que a la columna de la dreta tindrem els cor-responents valors. Els noms dels camps els assignen els desenvolupadors depagines web, de manera que el camp del login i de la contrasenya hauriende tenir noms abreviats relacionats. Hi poden haver camps que ja portin unvalor, en aquests casos no s’ha de modificar el valor ja que es pot tractard’identificadors de sessio. Ja que l’aplicacio no te manera d’averiguar quines el camp de la contrasenya, l’usuari escriura aquesta sabent que pot servisualitzada a traves del monitor al moment d’inserir-la.

Posar un nom al formulari i desar-lo Un cop s’han omplert els camps,cal posar un nom al formulari a l’area de text Nom per al formulari. Calposar un nom adequat, en aquest exemple Compte de correu Queenzoneseria el mes adient. Un cop fets tots els passos anteriors, caldra desar elformulari al disc clicant sobre el boto Desar formulari. Si tot ha anat be,ens apareixera una caixa de missatge indicant-ho.

Configurar i iniciar l’exploracio En aquest punt es moment de con-figurar i iniciar l’exploracio. Caldra accedir al panell de la pestanya deconfiguracio. A l’area Web inicial haurem d’indicar que volem realitzaruna exploracio en una area restringida. Aleshores, haurem de seleccionar elformulari d’acces que hem composat amb l’eina d’Auto-LogIn. Com que po-drem composar varis formularis, haurem d’escollir el que te el nom Comptede correu Queenzone. La resta de passos de configuracio seran exactamentels mateixos que cal realitzar amb l’exemple de l’exploracio publica ante-rior. Un cop s’hagin definit tots els parametres de configuracio, iniciareml’exploracio clicant sobre el boto Iniciar.

Acceptar les Cookies Els llocs web que disposen de zones d’acces re-stringit, acostumen a requerir l’us de les cookies, ja sigui per emmagatzemari recollir informacio de sessio o d’altre tipus. El seu us ha d’estar autoritzatper l’usuari, exactament tal i com passa amb la resta de clients web. Es peraixo que durant la fase inicial de l’exploracio poden apareixer questionaris

Page 102: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 101

preguntant a l’usuari si vol acceptar o refusar l’acces a les cookies. Per anarbe, cal acceptar totes les solicituts que apareguin. Una mostra seria la queapareix a la figura .

A.3.6 Visualitzacio de grafs

Una de les principals funcionalitats de l’aplicacio es la composicio i visual-itzacio de les exploracions en forma de graf. Consisteix en generar un grafa partir dels nodes web descoberts i els hipervincles que hi ha entre ells.Es important remarcar que es tracta d’una eina per a la visualitzacio degrafs de petita escala, ja que pel tractament de grafs de grans dimensions fafalta disposar d’un ordinador amb una elevada velocitat de processament.Seguint amb l’exemple de l’exploracio del lloc web www.etse.urv.es, po-drem generar i visualitzar el graf accedint al panell de la pestanya Grafenllacos i clicant sobre el boto Mapa de nodes.

Actualitzacio, visualitzacio i renderitzacio del graf

Al clicar sobre el boto Mapa de nodes, s’obrira una nova finestra on podremtreballar amb el graf, de manera que podem obrir tantes finestres de grafscom convingui. Inicialment, caldra obtenir i carregar el graf. Aixo es faclicant sobre el boto Actualitzar graf. Aquest proces obte les ultimes dadesnecessaries per composar el graf i visualitzar-lo a l’area de visualitzacio cen-tral. L’actualitzacio del graf es pot fer multiples vegades durant el transcursd’una exploracio, de manera que sempre podrem treballar amb els ultimsnodes descoberts.

La visualitzacio i estabilitzacio del graf es una tasca molt lenta i costosa,a mes a mes, es facil deduir-ho ja que el consum de CPU es dispara. Aquestatasca no finalitza mai, es per aixo que l’usuari ha de decidir quan vol aturar larenderitzacio del graf per alliberar el consum continu de CPU, clicant sobre elboto Aturar. Si no agrada com ha quedat posicionat el graf, podem saccejar-lo de nou, ja sigui recarregant-lo clicant sobre el boto Actualitzar graf o beclicant sobre el boto Repintar graf que es lleugerament mes rapid.

Informacio dels nodes i significat dels colors

Cada node te un color en funcio del host al qual pertany, de manera queper a cada host hi ha assignat un color a l’atzar. Els nodes amb ratllesverdes son nodes pendents d’explorar, es a dir, encara estan a la cua denodes pendents. Una peculiaritat d’aquests nodes es que no tenen arestesde sortida. Els nodes amb ratlles vermelles son nodes que han fallat alhorade descarregar-los.

Page 103: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 102

Podem obtenir informacio inmediata d’un node simplement, posicionantel cursor del ratolı sobre d’ell. Fent aixo apareixera un missatge flotant alcostat del node, on s’hi mostra la URL, l’estat, els enllacos sortints i entrants,i el tipus del node en questio. A mes a mes, podem veure la URL senceradel node a la part inferior de la finestra. Al costat de l’indicador d’URL,tenim a disposicio dos indicadors numerics que ens indiquen el nombre denodes que hi ha al graf i el nombre d’arestes que te, tot i que es importantremarcar que el contingut d’aquests indicadors fan referencia al graf senceroriginal i no varien encara que apliquem filtres visuals sobre el graf.

Llista de hosts

A la part superior dreta de la pantalla, hi ha a disposicio de l’usuari una llistaamb tots els hosts descoberts. Es tracta de la mateixa llista que apareix alpanell d’arbre de nodes, pero en aquesta llista el primer element, anomenat[ Tots ], sempre fa referencia a tots els hosts. Clicant sobre un host estemaplicant un filtre visual sobre tot el graf, de manera que nomes es visualitzenels nodes del host seleccionat.

Efectes visuals

La pestanya Visual de la part dreta permet accedir al panell d’efectes visu-als. Amb aquest panell podem aplicar efectes visuals sobre el graf. Marcantla casella Mostrar URLs es visualitzen les URLs de cada node del graf alcostat d’aquests, resulta util quan el graf te pocs nodes. La casella Mostrarpesos dels enllacos permet visualitzar el pes de cada aresta del graf. El pesd’una aresta es la profunditat d’aquesta respecte el node inicial.

Mitjancant el subpanell Forma de les arestes podrem canviar la forma deles arestes, ja sigui en forma linial, corba simple, doble linial i doble corba.Amb el subpanell Zoom, podem ampliar i reduır la visualitzacio del graf.Aquesta funcionalitat tambe es pot realitzar amb la rodeta del ratolı. Demanera similar, amb el ratolı podem desplacar la posicio del graf arrastrant-lo, es a dir, clicant sobre una part del graf no ocupada per nodes ni arestesi movent alhora el cursor de ratolı.

Filtres URL

Els filtres URL son filtres visuals per visualitzar nomes aquells nodes talsque la seva URL satisfa unes condicions. Per accedir a aquests filtres, caldraclicar sobre la pestanya Filtre URL. En aquesta panell tenim acces quatrefiltres diferents. Els filtres es poden usar de forma combinada, de maneraque, per exemple, podrem filtrar els nodes en funcio dels seus hosts i ex-tensions alhora. Per usar un filtre, cal marcar la seva corresponent casella i

Page 104: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 103

depres omplir l’area de text de la seva dreta.

El filtre de hosts permet visualitzar nomes aquells nodes tals que elseu host es troba a larea de text. Podem inserir tans elements a les areesde text com volguem, pero han d’anar separats per espais. Per exemple,si volem visualitzar nomes els nodes que pertanyen als hosts www.gnu.org,www.etse.urv.es i www.domini.etse.urv.es, primer caldra marcar la casel-la dels hosts i despres inserir els hosts a la corresponent area de text separatsper espais. El procediment es identic amb els filtres de ruta, fitxer i extensio.El filtre de ruta permet visualitzar els nodes tals que el seu fitxer es trobadins d’una ruta concreta del seu host, per exemple, /a/b/c/. El filtre defitxer funciona igual que l’anterior pero cal indicar un o varis fitxers, perexemple, index.html o login.php. El filtre d’extensio es similar, en aquestcas cal indicar les extensions que volem que tinguin els nodes que volemvisualitzar, per exemple, .pdf o .txt.

A.4 Indexar

L’acces a l’eina d’indexacio es fa clicant sobre la icona Indexar del menud’inici rapid, tal i com es mostra a la figura A.20. Aquesta part de l’aplicacios’encarrega de generar ındexs seguint els procediments explicats a l’apartat3 referent a l’extraccio i indexacio d’informacio.

A.4.1 Configuracio dels parametres d’indexacio

L’eina d’indexacio es divideix en quatre arees. A l’area d’exploracions hiha llistades totes les exploracions emmagatzemades a la Intranet del disc,es a dir, a la ruta d’Intranet definida al fitxer rutes.cfg. A l’area de con-figuracio es on cal configurar previament l’indexacio i cal definir el nom del’ındex a crear, el nombre de fils d’execucio simultanis, seleccionar les explo-racions que volem que quedin indexades, indicar si volem crear un fitxer defrequencies de paraules, indicar si volem utilitzar un fitxer d’StopWords, ifinalment cal indicar les extensions de fitxers que volem que s’indexin.

A l’area d’ındexs actuals hi trobarem la llista d’ındexs que s’han creatfins al moment, i que es troben emmagatzemats al directori d’ındexs definital fitxer rutes.cfg. Mitjancant el boto Eliminar ındex podrem eliminarl’ındex que nosaltres marquem, sense previ avıs de confirmacio. Finalment,a l’area d’estat de la indexacio s’hi troben els indicadors. Aquests indicadorsmostren informacio relativa al transcurs de la indexacio, aixı com el nombrede fils d’indexacio actius, el nombre de documents indexats, la quantitatindexada, etc.

Page 105: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 104

Figura A.16: www.etse.urv.es

Page 106: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 105

Figura A.17: www.cnn.com

Page 107: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 106

Figura A.18: www.udl.es

Page 108: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 107

Figura A.19: surf.de.uu.net

Page 109: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 108

Figura A.20: Seleccio de l’eina d’indexacio

La barra de progres de l’area d’estat es la que es troba a la part inferiorde la finestra. Mostra visualment l’evolucio de la indexacio i reflexa laproporcio de documents indexats i la proporcio de documents que resten.Durant una indexacio, la barra de progres es reinicia a zero en funcio delnombre d’exploracions que s’indexin, es a dir, si estem creant un ındex apartir de tres exploracions que hem seleccionat, la barra es reiniciara tresvegades, i per a cada exploracio la barra incrementara del zero al cent percent. Aixo es pot observar mitjancant els indicadors numerics que conte ala seva part central.

A.4.2 Indexar - Operacions basiques

En les proximes lınies, es seguira amb el mateix exemple de l’apartat A.3.4,en el que s’explica detalladament els procediments que cal seguir per explorarel lloc web www.etse.urv.es. Ara s’indicaran els passos per a realitzar-ne elcorresponent ındex, tenint en compte que voldrem generar, a mes a mes, unfitxer de frequencies de paraules amb les vint paraules mes frequents a tot elconjunt de documents que conformen l’exploracio o exploracions escollides.

Crear un nou ındex Per comencar a configurar un nou ındex cal clicarsobre el boto Nou ındex del panell de botons de la part superior de la finestra.Un cop fet aixo ja podem comencar a configurar-ho.

Anomenar l’ındex i escollir les exploracions Primer de tot cal posarun nom al nou ındex, caldra inserir el nom a l’area de text indicada per Nomındex. El nom d’un ındex ha de contenir text alfanumeric, es a dir, nomeslletres i numeros, ja que es creara al directori d’ındexs un subdirectori ambel nom que posem, i per tant, cal utilitzar caracters suportats pel sistemade fitxers del sistema operatiu. En aquest exemple podem posar ETSE com

Page 110: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 109

Figura A.21: Interfıcie grafica de l’eina d’indexacio

Page 111: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 110

biblioteca urv servei document recursos documents informacio revistes cap fons

0 0 0 0 0 0 0 0 0 0 www.etse.urv.es

0 0 0 0 0 0 1 0 0 0 www.etse.urv.es/InfoEscola/InfoGeneral/general.htm

1 21 0 0 1 0 1 0 0 0 www.etse.urv.es/InfoEscola/Directori/directoriVell.htm

0 1 0 0 0 0 1 0 0 0 www.etse.urv.es/InfoEscola/InfoAcademica/general.htm

0 1 0 0 0 0 0 0 0 0 www.etse.urv.es/InfoEscola/recerca/recerca.htm

2 2 1 36 2 0 3 2 0 2 www.etse.urv.es/bibweb

2 1 1 0 0 0 2 0 0 0 www.etse.urv.es/bibweb/pages/informacio_general/ig_3.php

3 1 1 0 0 0 2 0 0 0 www.etse.urv.es/bibweb/pages/informacio_general/ig_1.php

3 2 1 0 0 0 2 0 0 0 www.etse.urv.es/bibweb/pages/informacio_general/ig_2.php

5 17 1 0 0 0 2 0 6 0 www.etse.urv.es/bibweb/pages/informacio_general/ig_5.php

7 3 3 0 0 0 3 0 0 0 www.etse.urv.es/bibweb/pages/informacio_general/ig_8.php

191 85 106 22 4 78 7 2 70 34 www.etse.urv.es/bibweb/pages/informacio_general/ig_6.php

9 2 0 0 2 0 2 2 0 0 www.etse.urv.es/bibweb/pages/informacio_general/hist_engiweb/historia.html

1 0 0 0 4 0 3 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio.php

2 1 1 0 4 0 2 3 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_2.php

1 0 0 0 3 0 2 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_7.php

2 0 0 0 3 0 2 2 0 6 www.etse.urv.es/bibweb/pages/recursos_informacio/fons_antic.php

2 0 0 0 3 0 2 2 0 4 www.etse.urv.es/bibweb/pages/recursos_informacio/fons_infantil.php

2 0 0 0 3 0 3 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/llibres_text.php

1 1 0 0 3 0 2 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_5.php

3 0 0 0 4 0 2 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_6.php

5 1 0 0 3 0 2 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_9.php

1 0 0 0 3 0 2 2 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_4.php

1 0 0 0 3 0 2 8 0 2 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_3.php

5 4 0 0 3 0 2 18 0 3 www.etse.urv.es/bibweb/pages/recursos_informacio/ri_8.php

1 0 0 0 0 0 0 0 0 0 www.etse.urv.es/bibweb/pages/assignatures.php

2 1 1 0 0 0 3 0 0 0 www.etse.urv.es/bibweb/pages/informacio_general.php

1 0 0 0 0 0 1 0 0 0 www.etse.urv.es/bibweb/pages/utilitats.php

12 3 1 2 3 3 3 7 0 0 www.etse.urv.es/bibweb/pages/utilitats/ut_3.php

3 0 1 3 0 1 2 0 0 0 www.etse.urv.es/bibweb/pages/utilitats/ut_2.php

1 0 0 0 0 0 0 0 0 0 www.etse.urv.es/bibweb/pages/serveis.php

1 0 0 0 0 2 0 0 0 0 www.etse.urv.es/bibweb/pages/serveis/se_1.php

2 2 2 1 0 3 0 0 1 1 www.etse.urv.es/bibweb/pages/serveis/se_2.php

2 0 0 0 0 0 1 3 0 0 www.etse.urv.es/bibweb/pages/serveis/se_6.php

3 0 0 0 0 0 1 0 1 0 www.etse.urv.es/bibweb/pages/serveis/se_8.php

3 0 0 0 0 0 0 0 0 0 www.etse.urv.es/bibweb/pages/serveis/se_5.php

8 4 1 1 0 0 2 0 0 2 www.etse.urv.es/bibweb/pages/garriga_mata/Fundaci%F3_Garriga_de_Mata.php

2 2 1 36 2 0 3 2 0 2 www.etse.urv.es/bibweb/index.php

1 0 0 0 3 0 2 2 0 2 www.etse.urv.es/bibweb/Psicologia/tests.php

6 1 3 0 31 3 8 16 0 0 www.etse.urv.es/bibweb/Psicologia/recursos_temes.htm

0 0 0 0 0 0 9 0 0 0 www.etse.urv.es/avinterna/general.htm

0 0 0 0 6 0 0 0 0 0 www.etse.urv.es/eleccions/calendari_electoral_2005.htm

1 0 3 0 0 0 0 0 0 0 www.etse.urv.es/guia_docent

Figura A.22: Fitxer de frequencies de paraules (www.etse.urv.es)

Page 112: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 111

a nom. A continuacio cal escollir les exploracions de la llista de l’esquerraa la llista d’exploracions escollides de la dreta. Cal clicar sobre l’exploracioETSE que hem realitzat anteriorment, i a continuacio cal clicar sobre elboto Afegir. Seguint aquest ultim procediment varies vegades podrem afegirmultiples exploracions.

Configurar Ara s’ha d’indicar el nombre de fils d’indexacio simultanisque s’utilitzaran. Per defecte n’hi ha quatre, tot i que se’n poden posarmes. Com que volem crear un fitxers de frequencies, marcarem la casellaGenerar fitxers de frequencies de paraules i indicarem que volem que analitziles vint paraules mes frequents en tot el conjunt d’exploracions escollides. Elfitxer que es creara tindra el mateix nom que hem indicat i extencio .txt. Acontinuacio marcarem la casella Usar llista de StopWords ja que el contingutde l’exploracio esta en catala i volem que descarti els StopWords. Un copfet aixo, cal escollir el fitxer clicant sobre el boto Obrir. Podrem veure totesles llistes d’StopWords disponibles que ja venen amb l’aplicacio, les qualses troben al subdirectori stopwords del directori de l’aplicacio. Finalment,caldra indicar les extensions que volem que s’indexin. En aquest cas volemque s’indexin tots els documents i per tant ho deixarem emmarcat tal i comesta.

Iniciar la indexacio En aquest moment l’aplicacio ja esta configurada.Clicarem sobre el boto Indexar del panell de botons de control de la partsuperior de la finestra. Si tot esta be, una caixa de missatge ens indicara queel proces comencara. Quan finalitzi el proces, una nova caixa de missatge ensho fara saber. Observarem que el nou ındex apareixera a la llista d’ındexsactuals de la dreta de la finestra.

A.5 Cercar

L’acces a les eines de cerca es fa clicant sobre la icona Cercar del menud’inici rapid, tal i com es mostra a la figura A.23. Aixo obrira el menud’aplicacions de cerca, mitjancant el qual podem escollir dos operacions:Realitzar cerques locals o remotes, o iniciar el servidor de cerques.

A.5.1 Cercar en un ındex local

Seguint amb l’exemple de l’exploracio del host www.etse.urv.es i el seucorresponent ındex, realitzarem ara una cerca de continguts. Ha de quedarclar que les cerques es realitzen sobre els ındexs creats, i no sobre els fitxersd’exploracio. Primerament cal escollir l’operacio Cerca local o remota delmenu d’aplicacions de cerca, tal i com es mostra a la figura A.24. En aquestexemple, provarem de cercar aquells documents que contenen les paraulessoftware i lliure a l’ındex ETSE.

Page 113: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 112

Figura A.23: Seleccio de l’eina de cerca

Figura A.24: Seleccio de l’eina de cerca local o remota

Page 114: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 113

Marcar els ındexs Cal marcar els ındexs locals sobre els quals es real-itzara la cerca. Per a marcar multiples ındexs cal mantenir la tecla Ctrl.apretada i amb el ratolı cal marcar els ındexs desitjats. En aquest cas nomeses marcara l’ındex ETSE.

Inserir les paraules i realitzar la cerca Cal accedir al panell de cercaclicant sobre la pestanya Cerca. A continuacio, s’insereixen les paraulessoftware i lliure, separades per un espai, a l’area de text i finalment calclicar sobre el boto Cercar.

Interpretacio i visualitzacio dels resultats Si s’han trobat documents,aleshores a la part inferior esquerra de la pantalla, un indicador ens dira elnombre de documents que s’han trobat i les URLs aquest es llistaran ala llista de resultats. Podem veure informacio relativa de cada documentsimplement clicant sobre la seva URL a la llista i finalment clicant sobre elboto Mostrar de la part inferior. De cada document trobat es visualitza laseva URL, el tıtol, l’autor, la seva descripcio, el tamany en bytes, i el seucos o text en pla extret.

A.5.2 Cercar en un ındex remot

Les cerques remotes son cerques que es realitzen sobre servidors de cercaremots. A part d’aquest aspecte, tota la resta d’operacions es realitzenexactament igual que si es tractes d’una cerca local. En aquest sentit, calconeixer l’adreca IP o nom del host on hi ha actiu el servidor i realitzarpassos que s’expliquen a continuacio.

Connectar-se i obtenir la llista d’ındexs remots Al panell d’ındexsde l’eina de cerca, cal marcar l’opcio Usar ındexs remots i inserir l’adrecaIP o nom del host del servidor de cerques. Finalment, caldra clicar sobreel boto de la dreta per a establir la connexio. Si la connexio conclou ambexit, aleshores s’obtindra la llista d’ındexs que ofereix el servidor. En aquestpunt, cal realitzar els mateixos procediments que s’apliquen per realitzarcerques sobre ındexs locals.

A.5.3 Montar un servidor de cerques

L’acces al servidor de cerques es fa clicant sobre la icona Servidor de cerquesdel menu d’aplicacions de cerca, tal i com es mostra a la figura A.26. Abansd’arrencar el servidor cal escollir els ındexs que volem que serveixi, d’aquestamanera, els clients nomes poden veure i realitzar cerques en els ındexs escol-lits al servidor. El funcionament es forca simple, el servidor o be s’arrenca,o be s’atura.

Page 115: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 114

Figura A.25: Interfıcie grafica de l’eina de cerca

Page 116: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX A. MANUAL D’APLICACIO PER A L’USUARI 115

Figura A.26: Seleccio del servidor de cerques

Figura A.27: Interfıcie grafica del servidor de cerques

Page 117: TOKE: Eina de suport als processos de webmining basada en programari lliure

Apendix B

Conclusio i propostes per al

futur

Per concloure aquest treball, explicare breument els motius que m’han con-duıt a desenvolupar un projecte d’aquestes caracterıstiques. Donare tambeel meu punt de vista sobre els diferents aspectes relacionats amb tot el quehe fet, i com ho he fet.

La idea de desenvolupar un conjunt d’eines per explorar, indexar i cercarcontinguts web, havia sorgit inicialment com una proposta de treball plante-jada pel tutor. Aquest projecte m’ha ofert la possibilitat d’aprendre nousconeixements que fins ara desconeixia, aixı com descobrir i utilitzar eines dedesenvolupament de codi obert que no he tingut oportunitat d’utilitzar alllarg de la carrera.

Des del meu punt de vista, valoro molt positivament els resultats ques’han obtingut amb aquest projecte, principalment perque hi ha hagut unalınia de treball constant des de l’inici del cicle de desenvolupament fins alfinal. La primera fase, l’he dedicada completament a l’analisi i disseny del’aplicacio, era molt important definir el funcionament del web crawler, aixıcom les seves estructures de dades i la interaccio entre les diferents classesa implementar.

Totes les decisions de disseny s’han pres despres de passar per un perıodede recoleccio d’informacio i documentacio sobre el tema que calia treballar,aixı com de l’aprenentatge de totes les llibreries que calia utilitzar i que hanestat explicades en apartats anteriors. La segona fase, ha estat dedicadaexclusivament a la implementacio de tot el codi font i a la realitzacio de jocsde proves exhaustius per verificar el correcte funcionament de tot el conjuntdesenvolupat.

116

Page 118: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX B. CONCLUSIO I PROPOSTES PER AL FUTUR 117

L’objectiu inicial s’ha assolit, i crec que s’han creat un conjunt d’einesutils, que poden ser utilitzades per informatics, administradors i desenvolu-padors de llocs web, i en general per aquelles persones que tinguin especialinteres o necessitat en indexar grans quantitats de documents web i real-itzar cerques sobre aquests. Es important remarcar la necessitat que tenenalgunes empreses o entitats en mantenir indexada la informacio, ja que ac-tualment generen grans quantitats de documents i hi ha una forta demandaen realitzar cerques i obtenir resultats rapidament. A continuacio, es derivenun seguit de propostes per a possibles futures versions del programa.

• Permetre l’exploracio d’arees d’acces restringit mitjancant l’us de con-nexions segures a traves del protocol HTTPS.

• Desenvolupar un sistema d’indexacio distribuıt, de manera que espuguin crear ındexs a partir d’exploracions realitzades en diferentsmaquines d’una xarxa.

• Modificar la forma amb que es realitzen les exploracions, de maneraque es reexplorin aquells documents tals que el seu contingut ha cad-ucat o s’ha actualitzat dins d’un perıode de temps determinat.

• Desenvolupar una llibreria o servlet que permeti realitzar consultessobre els ındexs a traves d’interfıcies web.

• Dotar l’eina d’exploracio de noves estrategies d’exploracio.

Les propostes anteriorment mencionades, obren les portes a futures lıniesde treball, les quals no han estat desenvolupades en aquest projecte ja quedes del principi no formaven part dels plans inicial establerts en aquest.Finalment queda dir que tot el material creat s’ha realitzat mitjancant elsseguents recursos i eines d’edicio i desenvolupament:

• Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)

• JCreator Pro v3.10.008

• JFormDesigner v2.0

• MiKTeX-e-TEX 2.4.1700 (2.2) (TEX Version 3.141592)

• Adobe Photoshop v5.0

• Connexio telefonica amb ADSL 512Kbps i modem 56kbps.

• Equip Intel Pentium3(R) 796MHz 64MB de RAM (Windows XP)

• Equip Intel Pentium4(R) 1,5GHz 128MB de RAM (Windows XP)

• Equip Intel Pentium4(R) 3GHz 512MB de RAM (Windows XP)

Page 119: TOKE: Eina de suport als processos de webmining basada en programari lliure

Apendix C

Preguntes mes frequents

Aquesta aplicacio es software lliure. Aixo que significa? Significaque aquesta aplicacio es lliure en el sentit que amb total llibertat es potexecutar, copiar, distribuir, estudiar, modificar i millorar.

El mapa de nodes consumeix molta CPU. Aixo es normal? Sı, esnormal. La renderitzacio i estabilitzacio del graf es un proces que no finalitzamai, pero es l’usuari qui decideix quan cal aturar la renderitzacio, i per tant,poder alliberar l’us de CPU. Per a fer-ho cal clicar sobre el boto Aturar.

Puc visualitzar qualsevol graf amb el mapa de nodes? Tot i quedepen principalment de les prestacions que tingui l’equip on s’executi l’apli-cacio, la resposta es no. Cal tenir en compte que quants mes nodes i arestestingui el graf, mes lenta anira l’aplicacio, fins a cert punt que en alguns casoses practicament impossible poder treballar amb el graf.

A efectes practics, quina estrategia d’exploracio es la millor? L’usd’aquesta aplicacio hauria de ser per a realitzar exploracions de petita escala,en aquests casos resulta mes adequat utilitzar l’estrategia Depth-First jaque consumeix menys recursos i el que interessa es explorar tots els nodessense tenir en compte l’ordre en que es faci. L’estrategia Breadth-First esla mes adequada quan cal realitzar exploracions de mitjana-gran escala, jaque en aquests casos no es pot determinar quan finalitzara l’exploracio i esimportant descarregar primer els nodes mes interessants (els mes propers alnode inicial).

Les exploracions a arees restringides conclouen sempre amb exit?Es difıcil assegurar si una exploracio en una area privada concloura amb exito no, entre d’altres coses, perque tot i que l’enviament del formulari es pothaver realitzat correctament, no es pot determinar si el servidor ha donatper valides les dades enviades. En aquest cas els servidors no responen amb

118

Page 120: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX C. PREGUNTES MES FREQUENTS 119

un codi de retorn que ho indiqui especıficament. El sistema d’exploraciorestringida ha estat provat exitosament amb servidors dinamics que correnusant PHP i Perl.

Mentre exploro una area restringida, arriba un moment en quel’exploracio finalitza, quan en realitat hi ha pagines que crec ques’haurien d’haver explorat i no s’ha fet. Es normal? Es normali acostuma a tenir solucio. Algunes pagines web dinamiques utilitzen unaadreca URL per finalitzar la sessio que s’ha establert en el moment d’enviarel formulari. Aixo es coneix com el proces de logout, en el qual perdemo deixem de tenir acces a les pagines d’acces restringit. Aixo es habitualen pagines amb continguts dinamics generats amb PHP. Solucionar aixo estasca de l’usuari, ja que aquest ha de saber quina es la URL del servidorque realitza el logout. Normalment s’utilitzen URLs amb noms de fitxercom logout.html o logout.php. Per solucionar aixo, cal posar aquestes URLal fitxer d’URLs prohibides i marcar l’opcio d’utilitzar un fitxer d’adrecesprohibides abans d’iniciar l’exploracio.

Alguns servidors em deneguen la connexio. Com ho puc evitar?Alguns servidors, com ara Google, acostumen a refusar les descarreguesde pagines web quan hi realitzem conexions massives. En aquests casosl’exploracio en surt perjudicada ja que no s’han configurat adientment elsparametres de l’exploracio. Cal limitar el nombre de descarregues simultaniesper host, ja que alguns servidors son molt restrictius en aquest aspecte.

Estic explorant un lloc web i n’estic segur que hi ha pagines queno s’han explorat. Falla alguna cosa? En realitat no es que falli res,pero hi ha molts motius pels quals poden haver-hi hipervincles que s’ignorin.Tot i que sembli extrany, Internet esta ple de pagines web amb hipervinclesmal formats, encara que alguns clients web utilitzen metodes forca sofisticatsper corregir aquests vincles. Aquesta aplicacio descarta qualsevol hipervincleque es consideri mal format, aixo es fa per accelerar el proces d’exploracio.

Estic explorant un lloc web amb un elevat contingut de codi Javascript.Per que no s’exploren tots els hipervincles? El proces d’extrac-cio d’hipervincles no te en compte els hipervincles continguts dins de codiJavascript, ja que nomes analitza codi estrictament HTML. Aquesta es unatasca pendent de cara al futur.

Puc explorar llocs web amb seguretat, es a dir, utilitzant el pro-tocol https? De moment no. Les exploracions es realitzen sense utilitzarSecure Socket Layer. Alguns servidors admeten ambdos tipus de connexio,per tant, es recomana inserir la URL d’inici afegint el prefix http://.

Page 121: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX C. PREGUNTES MES FREQUENTS 120

Hi ha disponible una distribucio per a Windows. Existeix una dis-tribucio preparada per al sistema Linux? No s’ha desenvolupat en-cara una distribucio preparada per a Linux, encara que en el manual d’usuarid’aquesta documentacio es descriuen detalladament els procediments que calseguir per compilar i executar l’aplicacio en qualsevol sistema operatiu ones pugui compilar o executar programes en Java.

L’aplicacio indexadora no indexa alguns documents. Es normalaixo? Hi ha casos en els que no es pot extreure el text d’alguns documents.Acostuma a passar amb els documents amb format PDF i DOC. Es habitualtrobar documents PDF mal formats per Internet, mentre que dels documentsde Microsoft Word no sempre se’n poden extreure text ja que es tracta d’unformat propietari. Amb els documents HTML tambe s’acostuma a trobar granquantitat de documents mal formats, i que per tant son descartats durantel proces d’indexacio.

Els fitxers es descarreguen, per defecte, al directori /intranet deldisc. Puc canviar-ho? Sı, es pot canviar. Cal editar el fitxer rutes.cfgque hi ha al directori de l’aplicacio. Es tracta d’un fitxer de text que conteles rutes on s’emmagatzemen els fitxers descarregats i els ındexs generatsamb l’aplicacio indexadora.

Hi ha determinades URLs que no vull que s’explorin. Com hoindico? Cal editar un fitxer de text indicant a cada lınia d’aquest lesURLs que no volem explorar. El fitxer s’ha de guardar en format .txt aldirectori on tinguem definida la intranet al fitxer rutes.cfg. Posteriorment,caldra marcar l’opcio de no explorar URLs prohibides i seleccionar el fitxercreat.

Amb l’eina per realitzar ındexs, puc crear un ındex a partir demultiples exploracions? Sı, es pot. Cal anar afegint de la llista d’ex-ploracions totes aquelles exploracions que volguem a la llista de la dreta, esa dir, a la llista d’exploracions escollides. El proces d’indexacio creara ununic ındex a partir de les exploracions escollides.

Amb l’eina per realitzar cerques puc realitzar una cerca sobre unconjunt d’ındexs? Sı, es pot. Per a fer-ho cal seleccionar varis dels ındexsdisponibles de la llista. La seleccio es fa mantenint apretada la tecla Ctrl.i clicant a sobre dels ındexs amb el cursor del ratolı. Els resultats de lescerques contindran resultats obtinguts a partir dels ındexs marcats.

On puc trobar distribucions, actualitzacions i millores del pro-grama? Les distribucions, actualitzacions, millores, documentacio i altres

Page 122: TOKE: Eina de suport als processos de webmining basada en programari lliure

APENDIX C. PREGUNTES MES FREQUENTS 121

temes relacionats amb aquest conjunt d’eines d’exploracio, indexacio i cercaho trobaras a la web del programa http://toke.sourceforge.net o a laweb del seu autor http://www.telefonica.net/web2/albertng