Memoria IS39 - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Memoria IS39

Description:

Las ara as Web (tambi n conocidas como spiders o Web crawlers) son ... y la URLbase formada podemos llamar a la funci n encargada de descargar los enlaces: ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 22
Provided by: MJ457
Category:
Tags: cargar | is39 | llamar | memoria

less

Transcript and Presenter's Notes

Title: Memoria IS39


1
Memoria IS39
  • Buscador Web

2
Implementación de una araña web
  • 1.- Qué es una araña Web?
  • Las arañas Web (también conocidas como spiders o
    Web crawlers) son programas que inspeccionan las
    páginas del espacio Web (World Wide Web) de
    manera automática, recuperando documentos, y de
    manera recursiva todos los documentos
    referenciados desde los principales.
  • Los programas Web crawler comienzan visitando una
    lista de URLs, en ellas localizan los
    hiperenlaces y los añaden a una lista de URLs a
    visitar. Esta tarea la realizan de manera
    recurrente de acuerdo a determinado conjunto de
    reglas
  • Las páginas Web visitadas posteriormente son
    procesadas por un motor de búsqueda que las
    indexa.
  • Las arañas Web son una de las partes más
    importantes de cualquier buscador.

3
Araña web
  • Funcionamiento ha de descargar recursivamente
    hasta un determinado nivel de profundiad.
  • Tratamiento de la URL
  • path sys.argv1
  • URL path7
  • URL2 URL.split('/',1)
  • Si la web a descargar es una web del tipo
    http//www.uji.es hemos de solicitar el archivo
    index.html
  • if URL21""
  • archivo"index.html"
  • direccion"index.html"
  • web"index.html"
  • else
  • archivoURL2len(URL2)-1
  • nombrewebURL.split('/')
  • webnombreweb-1
  • direccionURL21 //martinej/ix39/p1
    /hola.html

4
Araña web
  • Hay que comprobar si estamos listando un
    directorio para añadir la /
  • if web"" directorio
  • print "le sumo la barra /"
  • direccionURL21'/'
  • else
  • webnombreweb-1
  • direccionURL21
  • Antes de realizar la conexión preparo la petición
    y el host
  • hostURL20 www3.uji.es
  • GET'GET ' '/' direccion ' HTTP\1.0
    \r\n\r\n
  • GET /martinej/ix39/p1/hola.html HTTP 1.0

5
Araña web
  • Fase de conexión y recepción
  • (Conexión con el host , envio de peticion y
    recepcion)
  • s.connect((host,80)) s.send(GET)
  • buff s.recv(1024)
  • encuentrastring.find(buff, '\r\n\r\n')
  • guardarbuffencuentra
  • fichero.write(guardar)
  • while (buff)
  • buff s.recv(1024)
  • fichero.write(buff)
  • s.close()
  • fichero.close()
  • return web devuelvo la web

6
Araña web
  • Crear URLBASE Antes de proceder al siguiente
    paso que sería extraer todos los enlaces de la
    página descargada creo la URLBASE
  • numsys.argv2
  • path sys.argv1
  • URL path7 elimino http//
  • URL2 URL.split('/',1)
  • trozo1URL20 www3.uji.es url1
    /martinej/ix39/p1/hola.html
  • urlBaseURL21.split('/') divido por barras /
    y elimino el ultimo
  • urlBase.pop()
  • urlBasestring.join(urlBase, '/')
  • urlBaseDefinitiva'http//'trozo1'/'urlBase'/'
    http//www3.uji.es/martinej/ix39/p1/
  • Para estructurar mejor el código, todo lo visto
    hasta forma parte de una función llamada
    principal

7
Araña web
  • Una vez tenemos la web descargada y la URLbase
    formada podemos llamar a la función encargada de
    descargar los enlaces
  • numenlacesget_links(web0,urlBaseDefinitiva,num)
  • Ahora la función abre el archivo y procede a
    buscar los enlaces
  • f open(fn)
  • l f.readline()
  • while l // mientras quede fichero
  • Hemos de distinguir dos casos que el enlace sea
    absoluto o relativo.
  • Si el enlace es relativo hemos de sumarle la
    URLbase y es absoluto no.

8
Araña web
  • for link in mi_re.findall(l)
  • sifind(string.join(link,''),"http//")
  • if si
  • linkdefurlstring.join(link,'') //Sumo la
    urlbase
  • else
  • enlacestring.join(link,'') //no sumo nada
  • Una vez descargados cada enlace se procede a
    descargar la web apuntada llamando a la función
    principal

9
BUSCADOR
10
BUSCADOR
  • La página principal del buscador estará formada
    un cuadro de texto en el que introduciremos la
    palabra a buscar, y otro campo de texto en el
    que se nos mostrarán las 5 últimas palabras
    buscadas. Para poder recordar hemos de emplear
    cookies.
  • COOKIES
  • lt?php
  • if(!isset(_COOKIE'ivicookie'))
  • vari""
  • vectorarray("","","","","")
  • else
  • vectorarray("","","","","")
  • foreach (_COOKIE'ivicookie' as num gt
    valor)
  • vectornumvalor
  • varivector0
  • ?gt

11
BUSCADOR
  • Si no existen cookies al cargar el buscador se
    crea un vector vacio que contendrá las futuras
    cookies.
  • Si existen cookies al cargar el buscador creo un
    vector y lo voy rellenando con el contenido de
    cada cookie.
  • Leo la última cookie y la presento en el campo de
    texto de busqueda
  • lttdgtltinput type"text" name"nombre" value"lt?php
    echo vari?gt"gtlt/tdgt

12
BUSCADOR
  • Visualización de las 5 últimas busquedas
  • Creo un menu desplegable en el que incluyo las 5
    busquedas
  • lttdgt ltselect name"dia"gt
  • ltoptiongt lt?php echo vector0?gt lt/optiongt
  • ltoptiongt lt?php echo vector1?gtlt/optiongt
  • ltoptiongt lt?php echo vector2?gt lt/optiongt
  • ltoptiongt lt?php echo vector3?gt lt/optiongt
  • ltoptiongt lt?php echo vector4?gt lt/optiongt
  • lt/selectgtlt/tdgt

13
BUSCADOR
  • ENVIO
  • Indico el modo de envio y el archivo que va a
    recibir los datos
  • ltform action"consulta2b.php" method"POST"gt

14
CONSULTA
  • CONSULTA -gtBD
  • -gtServicio Web Google
  • Este archivo además se encarga de gestionar las
    cookies. Una vez se almacenen 5 se ha de borrar
    la primera cookie almacenada
  • Se crea un nuevo vector y se llena con las
    cookies almacenadas.
  • Posteriormente se cambian de orden de modo que la
    primera almacenada se pierde.
  • if (isset(_COOKIE'ivicookie'))
  • vectorarray("","","","","")
  • foreach (_COOKIE'ivicookie' as num gt
    valor)
  • vectornumvalor
  • setcookie("ivicookie4",vector3)
  • setcookie("ivicookie3",vector2)
  • setcookie("ivicookie2",vector1)
  • setcookie("ivicookie1",vector0)
  • setcookie("ivicookie0",variable)
  • else

15
CONSULTA
  • Conexión a la base de datos
  • Conexion a la base de datos albergada en lynx,
    para ello hemos de usar nuestro usuario y
    password.
  • conexion_bd pg_connect("hostlynx.uji.es
    dbnameix39al059282 useral059282
    password")
  • or die('No pudo conectarse ' .
    pg_last_error())
  • Una vez realizada la conexión procederemos a
    realizar la consulta
  • consulta "SELECT url FROM documents,tf WHERE
    documents.doc_idtf.doc_id AND term'"._POST"nom
    bre"."'ORDER BY CAST (f AS FLOAT)/CAST(length AS
    FLOAT)DESC"

16
CONSULTA
  • Hemos seleccionado los campos que queremos que
    nos muestre la base de datos y además hemos
    indicado que la palabra a buscar es la que nos ha
    llegado mediante post. Una vez realizada la
    consulta procedemos a la mostrar los resultados.
  • Impresión de resultados
  • while (linea pg_fetch_array(resultado, null,
    PGSQL_ASSOC))
  • echo "\tlttrgt\n"
  • foreach (linea as valor_col)
  • ivivalor_col
    http//ivan.html
  • dirsplit("//",ivi,2) elimino
    http//
  • Troceo mediante split el valor devuelto en
    valor_col. Para eliminar http//

17
CONSULTA
  • echo "ltH1gtltpgtlta href\"".'http//www4.uji.es/al0
    59282/'.dir1 ."\"gt" . valor_col .
    "lt/agtlt/H1gt"
  • Concateno el valor obtenido con el split con la
    direccion local donde se encuentra el fichero a
    mostrar. Además añado codigo HTML para que me lo
    muestre como un enlace.
  • Servicio Web Google
  • var_POST"nombre"
  • result client-gtcall('doGoogleSearch',
    params)
  • Llamamos al servicio correspondiente y le pasamos
    una lista de parametros entre ellos la palabra a
    buscar var

18
CONSULTA
  • SI no se producen fallos procedemos a visualizar
    los resultados
  • foreach (result'resultElements' as doc)
  • echo "ltH1gtltpgti.-lta href\"" . doc'URL'
    ."\"gt" . doc'URL' . "lt/agt"
  • echo "ltbr /gt" . doc'title' . "lt/pgt\nlt/H1gt"
  • Mediante un bucle foreach imprimos la url y el
    titulo de cada elemento devuelto.
  • Hojas de estilos
  • Para presentar los resultados he creado una hoja
    de estilo, de este modo todo el texto aparecerá
    del mimo tamaño, color
  • Las definición de la hoja de estlilo es la
    siguiente

19
CONSULTA
  • body
  • SCROLLBAR-FACE-COLORFFCC33
  • SCROLLBAR-HIGHLIGHT-COLOR FFCC33
  • H1
  • front-weight lighter
  • font-size 10pt
  • line-height 16pt
  • font-familyVerdana,Arial
  • lt/stylegt'
  • Una vez definida lo hoja de estilo se puede
    aplicar en cualquier parte del documento,
    escribiendo su nombre antes de las partes donde
    quiera que se aplique
  • echo "ltH1gtltpgti.-lta href\"" . doc'URL'
    ."\"gt" . doc'URL' . "lt/agt"

20
FRAMES
  • Para una mejor visualización y organización he
    decidido dividir la web en frames. EL frame
    izquierdo sera el encargado de albergar algunos
    enlaces a otros sitios web y el formulario de
    alta.
  • El frame central se encargará de mostrarnos la
    página principal del buscador
  • lthtmlgt
  • ltheadgt
  • lttitlegtMi paginalt/titlegt
  • lt/headgt
  • ltframeset cols"19," frameborder"1"
    bordercolor"Green"gt
  • ltframe name"framea" src"a.html"
    marginwidth"10" marginheight"10"
    scrolling"no" frameborder"1"gt
  • ltframe name"frameb" src"buscadorCookiep3b.ph
    p" marginwidth"10" marginheight"10"
    scrolling"auto" frameborder"1"gt
  • lt/frameset gtltnoframesgtlt/noframesgt
  • lt/framesetgt
  • lt/htmlgt

21
FRAMES
  • El campo src no indica quien es el encargado de
    cubrir el frame.
  • Frame izquierdo
  • Para mostrar la información empleo listas. Cabe
    destacar la orden Target que indica donde se va a
    abrir el enlace indicado.
  • ltulgt
  • ltligtltfont size"2" face"Verdana, Arial,
    Helvetica, sans-serif"gtlta href"http//www.uji.es"
    target"frameb"gtltstronggtUJIlt/stronggtlt/agtlt/fontgtlt/
    ligt
  • ltligtltfont size"2" face"Verdana, Arial,
    Helvetica, sans-serif"gtlta href"formulariop3.html"
    target"frameb"gtltstronggtformulariolt/stronggtlt/agtlt/
    fontgtlt/ligt
  • lt/ulgt
Write a Comment
User Comments (0)
About PowerShow.com