zoukankan      html  css  js  c++  java
  • 网络爬虫的 “ 黑洞 ”

    在遍历型的网络爬虫中。

    参考宽度优先遍历 http://www.cnblogs.com/LexMoon/p/javaMyClawler.html

    网络爬虫在遍历抓取一张网页的链接时,会出现的情况。
           1 .链接本身可能是一个无限循环,以至于白白的消耗资源。

       2 .看似不同的链接却指向同一个网页。(动态网页)

      例如,一个爬虫来到了一个网站,被指定了一个SessionId,然后嵌入这个ID,爬虫开始在该网站爬取所有页面。另一个爬虫也来到了这个网站,得到了一个全新的SessionId,网站服务器不能探测到这是同源的爬虫,并不知道之前它已经来过。就导致了页面多次索引,浪费了资源。

      那么如何避免此类情况呢?

      :最容易死循环和多次陷入的页面往往是动态页面。

      怎么识别动态网页呢?

           :看URL中是否出现问号,含有问号的就是动态网页,它们的指向往往相同,但是URL中带有一些无关参数,例如时间(在线日历),网络信息,对于此类链接,应当做适合的截取。

      

      很多商业搜索引擎都在避免这些带问号的URL,因为这类URL可能会导致爬虫陷入。(谷歌似乎有合适的解决方案)

    附注:其他可参考的方法 

          1 . 限制爬取深度

      2 . Visited表。

      3 . 主题爬虫 : 对特定内容的网页爬取(新闻,音乐等) 。

      4 . 限定爬虫 : 对爬取目标主机限定。

  • 相关阅读:
    maven 创建web项目出错
    poj1699--Best Sequence(dfs+剪枝)
    HDU-1042-N!(Java大法好 && HDU大数水题)
    “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不同意的问题
    scala模式匹配
    scala匿名函数
    scala特质
    group by的使用
    liux之我用过的zip解压命令
    liunx之zip格式的解压命令
  • 原文地址:https://www.cnblogs.com/LexMoon/p/javah.html
Copyright © 2011-2022 走看看