[Crawler] crawler为啥需要prioritized queues?

web crawler设计的时候用了prioritized queues,这里p0,。。。pn是指不同priority的web page放在不同queue里面吗?priority的信息貌似是从domain policy db里来的,但是我们设计domain policy db的时候似乎并没有priority的信息,robots.txt里面也没有。

另外,第一节课强调了要给出多个设计然后比较pro and con,但我感觉课上讲的例子里面很多时候都只是给了一个solution,比如web crawler的各个component的detailed的设计。所以这些核型子系统设计的时候只需要给出一种相对好的solution就够了?不需要给出好几个然后比较pro and con?

  1. 是的,这些 queue 用来区分优先级。这些优先级是怎么生成的呢?我们课上没有提到。这个优先级是根据一系列因素决定的,可以认为有一个额外的 offline process 根据过去爬取的经验对于每个域名甚至网页做优先级计算。
  2. 好问题。Pros and Cons 是要尽量讨论的,如果在面试中讲这道题的话,可以说使用单独一个 Queue 来做 URL Frontier,然后说其中的问题,从而引出 URL Frontier 的设计。这个 Crawler 的设计非常专业,没有其他类似的好解法,所以没有特别的 tradeoff 比较。有的题目会有多种好解法的时候会细讲 tradeoff,
1 个赞