网络爬虫的 “ 黑洞 ”
在遍历型的网络爬虫中。
参考宽度优先遍历 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
网络爬虫的 “ 黑洞 ”相关推荐
- java怎么写网络爬虫_教你如何编写简单的网络爬虫
一.网络爬虫的基本知识 网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念.爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边.图 ...
- 网络爬虫-原理篇(一)
引入:我们在百度首页输入关键字,百度一下,相关的内容就会立马呈现出来,这个动作的背后到底隐藏着哪些操作? 其实百度的核心搜索引擎就是一个大型的分布式网络爬虫程序. 什么是网络爬虫? 详见: 1.百度百 ...
- 记录《自己动手写网络爬虫 》书中涉及的内容学习一些算法
第1篇 自己动手抓取数据 第1章 全面剖析网络爬虫 3 1.1 抓取网页 4 1.1.1 深入理解URL 4 1.1.2 通过指定的URL抓取 网页内容 6 1.1.3 Java网页抓取示 ...
- 网络爬虫(二)——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. ...
- java爬取网页数据_Python网络爬虫实战(二)数据解析
Python网络爬虫实战 (二)数据解析 本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站 ...
- python网络爬虫初识_python爬虫(一)初识爬虫
什么是爬虫? 中文名(网络爬虫) 外文名(web crawler) 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程 ...
- 【网络爬虫】(1) 网络请求,urllib库介绍
各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战.那我们开始吧. 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念. (1)http 和 https 协 ...
- Python网络爬虫--urllib
本篇随便记录学习崔庆才老师编著的<Python3 网络爬虫开发实战>以及urllib标准库使用 urllib库是Python内置的HTTP请求库,包含四个模块: request:最基本的H ...
- python网络爬虫程序技术,Python网络爬虫程序技术
spContent=该课程是2018年广东省精品在线开放课程.课程主要以爬取学生信息.爬取城市天气预报.爬取网站图像.爬起图书网站图书.爬取商城网站商品等5个项目为依托,讲解Web.正则表达式.Bea ...
最新文章
- C++虚继承下的内存模型(一)
- 员外带你读论文:LINE: Large-scale Information Network Embedding
- gsp计算机管理系的功能,药博士医药企业GSP管理系统功能介绍
- Linux Shell脚本多循环语句练习题
- 字根校对软件,中文校对行业的一匹黑马!
- 电脑没有摄相头,使用安卓或IOS旧手机替代摄相头
- Visual C++ 6.0(完整绿色版)安装及Visual Assist X(西红柿插件、番茄插件)
- nodejs返回带图片的HTML页面,Nodejs实现简单的网页图片获取
- 什么软件能测试显卡功耗,测试方案及测试平台
- docker的目录挂载
- 在Elasticsearch中回测隨機(Stochastic)指標交叉交易策略
- ARM7、ARM9、ARM11区别
- mysql workbench 主从_MySQL Workbench 使用教程 (四)
- hive sql报错:SQL 错误 [10004] [42000]: Error while compiling statement: FAILED: SemanticException [Error
- C++中的delegate
- 二叉树Ⅰ · 树型结构 · 二叉树 · 满二叉树 · 完全二叉树 · 二叉树的性质 · 二叉树的存储
- scorm 1.2标准基本知识
- 推荐一款很好用的一款扒网站的工具
- HTML和PHP输出国际象棋,PHP实现国际象棋棋盘的样式效果(代码示例)
- 身份证照片扫描后调整使其不发黑