在爬网时处理重复项并避免循环

k10s72fa  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(551)

我在看donne martin设计的网络爬虫。
在“避免重复”一节中,他描述了他认为可以用来避免爬行时的循环和无限循环的机制:
对于较小的列表,我们可以使用类似sort | unique的内容
有10亿个链接需要爬网,我们可以使用mapreduce只输出频率为1的条目
这是什么意思?假设我所有的爬虫都有一个 links_to_crawl redis集合中的列表,以及 crawled_links 我的hadoop列表。他们不断地从中删除一个新的链接 links_to_crawl ,然后将来自该url的传出链接也放入 links_to_crawl ,对吧?他们什么时候会商 crawled_links 有这么一份mapreduce的工作?难道他们不需要检查每个链接,然后再将其插入 links_to_crawl ? 那是什么工作?

57hvy0tb

57hvy0tb1#

我们可以使用mapreduce只输出频率为1的条目
这个示例中没有redis或set。您所拥有的只是标准的“wordcount”算法,而您恰好正在对url进行分组,并过滤出具有多个结果的值。
在hadoop方面,您可以参考原始nutch项目进行web爬网

相关问题