在遍历型的网络爬虫中。

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

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

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

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

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

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

  怎么识别动态网页呢?

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

  

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

附注:其他可参考的方法 

1 . 限制爬取深度

  2 . Visited表。

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

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

转载于:https://www.cnblogs.com/LexMoon/p/javah.html

网络爬虫的 “ 黑洞 ”相关推荐

  1. java怎么写网络爬虫_教你如何编写简单的网络爬虫

    一.网络爬虫的基本知识 网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念.爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边.图 ...

  2. 网络爬虫-原理篇(一)

    引入:我们在百度首页输入关键字,百度一下,相关的内容就会立马呈现出来,这个动作的背后到底隐藏着哪些操作? 其实百度的核心搜索引擎就是一个大型的分布式网络爬虫程序. 什么是网络爬虫? 详见: 1.百度百 ...

  3. 记录《自己动手写网络爬虫 》书中涉及的内容学习一些算法

    第1篇  自己动手抓取数据 第1章  全面剖析网络爬虫 3 1.1  抓取网页 4 1.1.1  深入理解URL 4 1.1.2  通过指定的URL抓取 网页内容 6 1.1.3  Java网页抓取示 ...

  4. 网络爬虫(二)——Xpath和Selenium的使用

    文章目录 2 网络爬虫进阶 2.1 Xpath 2.1.1 Xpath解析原理 2.1.2 信息提取 2.1.2.1 获取所有结点 2.1.2.2 获取子节点 2.1.2.3 获取父节点 2.1.2. ...

  5. java爬取网页数据_Python网络爬虫实战(二)数据解析

    Python网络爬虫实战 (二)数据解析 本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站 ...

  6. python网络爬虫初识_python爬虫(一)初识爬虫

    什么是爬虫? 中文名(网络爬虫) 外文名(web crawler) 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程 ...

  7. 【网络爬虫】(1) 网络请求,urllib库介绍

    各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战.那我们开始吧. 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念. (1)http 和 https 协 ...

  8. Python网络爬虫--urllib

    本篇随便记录学习崔庆才老师编著的<Python3 网络爬虫开发实战>以及urllib标准库使用 urllib库是Python内置的HTTP请求库,包含四个模块: request:最基本的H ...

  9. python网络爬虫程序技术,Python网络爬虫程序技术

    spContent=该课程是2018年广东省精品在线开放课程.课程主要以爬取学生信息.爬取城市天气预报.爬取网站图像.爬起图书网站图书.爬取商城网站商品等5个项目为依托,讲解Web.正则表达式.Bea ...

最新文章

  1. C++虚继承下的内存模型(一)
  2. 员外带你读论文:LINE: Large-scale Information Network Embedding
  3. gsp计算机管理系的功能,药博士医药企业GSP管理系统功能介绍
  4. Linux Shell脚本多循环语句练习题
  5. 字根校对软件,中文校对行业的一匹黑马!
  6. 电脑没有摄相头,使用安卓或IOS旧手机替代摄相头
  7. Visual C++ 6.0(完整绿色版)安装及Visual Assist X(西红柿插件、番茄插件)
  8. nodejs返回带图片的HTML页面,Nodejs实现简单的网页图片获取
  9. 什么软件能测试显卡功耗,测试方案及测试平台
  10. docker的目录挂载
  11. 在Elasticsearch中回测隨機(Stochastic)指標交叉交易策略
  12. ARM7、ARM9、ARM11区别
  13. mysql workbench 主从_MySQL Workbench 使用教程 (四)
  14. hive sql报错:SQL 错误 [10004] [42000]: Error while compiling statement: FAILED: SemanticException [Error
  15. C++中的delegate
  16. 二叉树Ⅰ · 树型结构 · 二叉树 · 满二叉树 · 完全二叉树 · 二叉树的性质 · 二叉树的存储
  17. scorm 1.2标准基本知识
  18. 推荐一款很好用的一款扒网站的工具
  19. HTML和PHP输出国际象棋,PHP实现国际象棋棋盘的样式效果(代码示例)
  20. 身份证照片扫描后调整使其不发黑

热门文章

  1. java 摩尔斯电码_使用Java进行摩尔斯电码转换
  2. Keystone详解
  3. 起重机三级远程ZigBee监控系统
  4. 机制与流程-第5章LTE的基本信令流程
  5. 1-6Python 入门之控制结构 - 顺序与选择结构
  6. 漫画图解 ElasticSearch 搜索原理
  7. HiKey970 环境搭建和烧录
  8. Android 设备上使得google play store 应用市场中不能搜索到Netflix应用
  9. Codeforces - 985E Pencils and Boxes
  10. [Scapy]导入导出数据