摘要: 5 Java带偏好的爬虫示例 在上一节中,我们已经指出,可以使用优先级队列(PriorityQueue)来实现这个带偏好的爬虫。在深入讲解之前,我们首先介绍优先级队列。 优先级队列是一种特殊的队列,普通队列中的元素是先进先出的,而优先级队列则是根据进入队列中的元素的优先级进行出队列操作。例如操作系统的一些优先级进程管理等,都可以使用优先级队列。优先级队列也有最小优先级队列和最大优先级队列两种。 理论上,优先级队列可以是任何一种数据结构,线性的和非线性的,也可以是有序的或无序的。针对有序的优先级队列而言,获取最小或最大的值是非常容易的,但是插入却非常困难;而对于无序的有衔接队列而言,插... 阅读全文
posted @ 2013-03-29 22:05 94julia 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 4 带偏好的爬虫 有时,在URL队列中选择需要抓取的URL时,不一定按照队列“先进先出”的方法进行选择。而把重要的URL先从队列中“挑”出来进行抓取。这种策略也称作“页面选择”(Page Selection)。这可以使有限的网络资源照顾重要性高的网页。 那么哪些网页是重要性高的网页呢? 判断网页的重要性的因素很多,主要有链接的欢迎度(知道链接的重要性了吧)、链接的重要度和平均链接深度、网站质量、历史权重等主要因素。 链接的欢迎度主要是由反向链接(backlinks,即指向当前URL的链接)的数量和质量决定的,我们定义为IB(P)。 链接的重要度,是一个关于URL字符串的函数,仅仅考察... 阅读全文
posted @ 2013-03-29 21:27 94julia 阅读(172) 评论(0) 推荐(0) 编辑