zoukankan      html  css  js  c++  java
  • 2 宽度优先爬虫和带偏好的爬虫(3)

    4 带偏好的爬虫

      有时,在URL队列中选择需要抓取的URL时,不一定按照队列“先进先出”的方法进行选择。而把重要的URL先从队列中“挑”出来进行抓取。这种策略也称作“页面选择”(Page Selection)。这可以使有限的网络资源照顾重要性高的网页。

      那么哪些网页是重要性高的网页呢?

      判断网页的重要性的因素很多,主要有链接的欢迎度(知道链接的重要性了吧)、链接的重要度和平均链接深度、网站质量、历史权重等主要因素。

      链接的欢迎度主要是由反向链接(backlinks,即指向当前URL的链接)的数量和质量决定的,我们定义为IB(P)。

      链接的重要度,是一个关于URL字符串的函数,仅仅考察字符串本身,比如认为“.com”和“home”的重要度比“.cc”和“map”高,我们定义为IL(P)。

      平均链接深度,根据上面所分析的宽度优先的原则计算出全站的平均链接深度,然后认为距离种子站点越近的重要性越高。我们定义为ID(P)。

      如果我们定义网页的重要性为I(P),那么,页面的重要度由下面的公式决定:

             I(P)=X*IB(P)+Y*IL(P)

      其中,X和Y两个参数,用来调整IB(P)和IL(P)所占比例的大小,ID(P)由宽度优先的遍历规则保证,因此不作为重要的指标函数。

      如何如何实现最佳优先爬虫呢,最简单的方式可以使用优先级队列来实现TODO表,并且把每个URL的重要性作为队列元素的优先级。这样,每次选出来扩展的URL就是具有最高重要性的网页。

      

  • 相关阅读:
    windows的80端口被占用时的处理方法
    Ansible自动化运维工具安装与使用实例
    Tomcat的测试网页换成自己项目首页
    LeetCode 219. Contains Duplicate II
    LeetCode Contest 177
    LeetCode 217. Contains Duplicate
    LeetCode 216. Combination Sum III(DFS)
    LeetCode 215. Kth Largest Element in an Array(排序)
    Contest 176 LeetCode 1354. Construct Target Array With Multiple Sums(优先队列,递推)
    Contest 176
  • 原文地址:https://www.cnblogs.com/94julia/p/2989646.html
Copyright © 2011-2022 走看看