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
def 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