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 . 限定爬虫 : 对爬取目标主机限定。

  • 相关阅读:
    datetime格式化 c#
    Cookie aps.net
    缓存页面 asp.net
    aps.net IIS 部署 显示404.3错误
    使用systemd管理进程,设置进程自动启动
    VS Code 生成Pack、在Nuget中添加包、在项目中添加包
    dotnet命令 new
    WPF ListView渲染性能优化
    SQL Server判断语句(IF ELSE/CASE WHEN )
    T-SQL脚本附加数据库
  • 原文地址:https://www.cnblogs.com/LexMoon/p/javah.html
Copyright © 2011-2022 走看看