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 originaldef get_next_target(page):
start_link = page.find('<a href=')
if start_link == -1:
return None, 0
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1:end_quote]
return url, end_quote
def get_all_links(page):
links = []
while True:
url, endpos = get_next_target(page)
if url:
links.append(url)
page = page[endpos:]
else:
break
return links
def add_to_index(index, keyword, url):
for entry in index:
if entry[0] == keyword:
entry[1].append(url)
return
index.append([keyword, [url]])
def lookup(index, keyword):
for entry in index:
if entry[0] == keyword:
return entry[1]
return[]
def crawl_web(seed)
tocrawl = [seed]
crawled = []
index = []
while tocrawl:
page = tocrawl.pop()
if page not in crawled:
content = get_page(page)
[add_page_to_index(index,page,content)]
union (tocrawl, get_all_links(content))
crawled.append(page)
return index
Muchas gracias!
PD: está en inglés porque el tutorial online que seguí para crearlo era en inglés =P