Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2012, 11:02
Naica
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 3
Información [Ayuda]Webcrawler casi terminado

Hola!, ya tengo mi webcrawler practicamente terminado, lo único que me falta es conectarlo a una base de datos para probar como funciona. El problema es que no se como lograrlo.

El código se los regalo para todos los que quieran desarrollarlo un poco más, si alguien puede ayudarme a conectarlo con una DB se lo agradezco mucho.

El webcrawler tiene la siguiente función: busca en el código de la página un enlace, luego sigue los enlaces que contiene esa página y se le asigna a cada página una keyword. Así si uno busca "sandía" le aparecerán todas las páginas que tengan asignada la keyword "sandía".

Código Python:
Ver original
  1. def get_next_target(page):
  2.     start_link = page.find('<a href=')
  3.     if start_link == -1:
  4.         return None, 0
  5.     start_quote = page.find('"', start_link)
  6.     end_quote = page.find('"', start_quote + 1)
  7.     url = page[start_quote + 1:end_quote]
  8.     return url, end_quote
  9.  
  10. def get_all_links(page):
  11.     links = []
  12.     while True:
  13.         url, endpos = get_next_target(page)
  14.         if url:
  15.             links.append(url)
  16.             page = page[endpos:]
  17.         else:
  18.             break
  19.         return links
  20.  
  21. def add_to_index(index, keyword, url):
  22.     for entry in index:
  23.         if entry[0] == keyword:
  24.             entry[1].append(url)
  25.             return
  26.         index.append([keyword, [url]])
  27.  
  28. def lookup(index, keyword):
  29.     for entry in index:
  30.         if entry[0] == keyword:
  31.             return entry[1]
  32.         return[]
  33.  
  34.     def crawl_web(seed)
  35.     tocrawl = [seed]
  36.     crawled = []
  37.     index = []
  38.     while tocrawl:
  39.         page = tocrawl.pop()
  40.         if page not in crawled:
  41.             content = get_page(page)
  42.             [add_page_to_index(index,page,content)]
  43.             union (tocrawl, get_all_links(content))
  44.             crawled.append(page)
  45.             return index

Muchas gracias!

PD: está en inglés porque el tutorial online que seguí para crearlo era en inglés =P
__________________
Naica enciclopedia animal