我有一个解析给定URL(通常是域的根)的内容的函数,并返回指向该域内其他位置的所有链接的列表 - 它不包含外部链接,它没有& #39; t允许重复链接。
对于列表中已有的每个链接运行该函数的最简单方法是什么,然后对于将在下一级别中找到的每个链接,依此类推,一次又一次,无论多长时间,无论多长时间,都会创建特定域名的详尽完整链接列表?
该方法应该相当有效,并且不应该使用任何库或模块,甚至不应该使用列表推导。只需最明显和最明确的基本指令。此外,了解树的结构并不重要。只是一个链接列表。
谢谢!
答案 0 :(得分:0)
这是一个简单的算法
links_to_crawl = set()
crawled_links = set()
def function crawl(link):
if (link not in crawled_links):
new_links = findAllLinks (link)
for new_link in new_links:
#if new_link is not external:
links_to_crawl.add(new_link)
crawled_links.add(link)
for (link in links_to_crawl):
crawl(link)
for (link in crawled_links):
print crawled_links