有关搜索引擎爬虫抓取原理浅析

  本文简单的分析了爬虫抓取网页的一些基本原理与大家同享,能基本了解网页的几个排名因素:链接的建设和网页的布局,多多体会,写的不好也别骂,谢谢!

  爬虫的工作原理包括抓取,策略和存储,抓取是爬虫的基本劳动过程,策略是爬虫的智慧中枢,存储是爬虫的劳动结果,我们按照由浅入深的过程来了解整个爬虫的工作原理。

  1:从种子站点开始抓取

  基于万维网的蝴蝶型结构,这种非线性的网页组织结构,就会出现一个抓取顺序的问题,这种抓取顺序的策略必须保证尽可能地抓取所有网页。

  一般来说,爬虫选择抓取蝴蝶型左边的结构为抓取出发点,典型的如sina.com和sohu.com这样的门户网站的主页,每次抓取网页之后分析其中的URL,这种字符串形式的链接是指向其他网页的URL,它们指引着爬虫抓取其他网页。(基于这点我们可以初步理解引擎先左后右,先上后下的抓取原因了)

  a:深度优先的策略(Depth-First Traversal)

  深度优先的遍历策略类似家族继承策略,典型的如封建帝王的继承,通常为长子,如果长子去世,长孙的优先级大于次子的优先级(这点大家多多仔细分析琢磨下),如果长子和长孙都已经去世,那么次子继承,这种继承上的优先关系也称深度优先策略。(从这点上我们可以了解到蜘蛛的抓取栏目页先后顺序)

  b:宽度优先的策略(Breadth-First Traversal)

  宽度优先我们又称为广度优先,或者叫层次优先,例如:我们在给祖辈和父辈还有平辈敬茶的时候先给最年长的祖辈,其次为父辈,最后为平辈,在爬虫抓取上也采取了这样的策略。基于使用宽度有限的策略主要原因有三点:

  1>首页重要的网页往往离种子比较近,例如我们打开新闻站的时候往往是最热门的新闻,随着不断的深入冲浪,PV值增加,所看到网页重要性越来越低。

  2>万维网的实际深度最多能达到17层,到达某个网页的路径深入很多,但是总存在一条很短的路径。

  3>宽度优先有利于多爬虫的合作抓取(Mozk是根据前辈的资料分析和IIS日志分析,暂且认为,有不同见解,欢迎讨论交流),多爬虫合作通常先抓取站内连接,遇到站外连接然后开始抓取,抓取的封闭性很强。

  附:链接的优化,避抓取链接的死循环,同时也避免该抓取的资源没有得到抓取,浪费大量的资源做无用功。(如何建立合理的内部链接可以参照小站)。

  2:网页抓取优先策略

  网页的抓取优先策略也称为“面页选择问题”(page selection),通常抓取重要性的网页,这样保证有限资源(爬虫,服务器负载)尽可能的照顾到重要性高的网页,这点应该很好理解。

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

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

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

  链接的重要度,是一个关于URL字符串的函数,仅仅考察字符串本身,比如认为“.com”“home”的URL重要度比“.cc”和“map”较高(这里是比方不是绝对,就如我们通常默认首页index.**一样,要定义其他名称也可以,另外排名是个综合因素,com的不一定排名就好,只是其中一个很小的因素而已),我们定义为IL(P)

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

  我们定义网页的重要性为I(P)

  那么:

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

  ID(P)由宽度优先的遍历规则保证,因此不作为重要的指标函数,为了保证重要性高的网页被抓取,所以,这样的抓取完全是合理,科学的。

  本文的第1点是讲解的一个点,第二点是分析的一个面,文笔不怎么好,大家多多体会下。

  SEO的目标是提高网站的质量,提高网站的质量是提高网站用户体验友好度,提高网站用户优化度的终极目标是离开SE做常青树,以上是Mozk的鄙见,毕竟SEO是一个排名的逆向推理过程,不可能全对,只是对数据的一种分析,任何资料只能是参考,还是要多靠自己的实践,欢迎光临小站www.woaiseo.com,Mozk与您一起学习SEO。

时间: 2024-10-27 19:36:41

有关搜索引擎爬虫抓取原理浅析的相关文章

了解搜索引擎的抓取原理是做SEO优化的关键

在我刚刚接触SEO这个行业的时候,常常会因为不熟悉各大搜索引擎的抓取原理而做了很多的无用功,针对我的seo优化网站,更新了很多的内容(让我的网站更加的丰富),针对网站的外链操作方式进行了反复的调整,这一切好像都是没有用的.搜索引擎就好像是不喜欢我网站一样,所以不管是百度搜索引擎还是谷歌搜索引擎,我觉得不管是seo站长还是seo新手,做为seoer的我们都应该对搜索引擎做的抓取原理进行了解,甚至要去结合搜索引擎的算法不断调整seo优化网站的操作模式,在这里我就结合自己工作中的一些经验,给大家分享一

搜索引擎的工作方式和基本的抓取原理你了解吗

摘要: 最近在看一本书,发现当我们不实践直接看原理是枯燥无味的,而实践过后反过来看原理,会觉得很多道理,很多感悟.就拿我自己做反面教材,说我是搜索引擎优化工作者,我对搜索 最近在看一本书,发现当我们不实践直接看原理是枯燥无味的,而实践过后反过来看原理,会觉得很多道理,很多感悟.就拿我自己做反面教材,说我是搜索引擎优化工作者,我对搜索引擎的工作方式和基本的抓取原理,更新策略都不懂.那么你呢?下面就分享下我的读书笔记,仅当新人扫盲. 在介绍搜索引擎爬虫的之前,首先了解爬虫把网页的分类,四种: 1,已

网页-如何网络爬虫抓取淘宝交易数据

问题描述 如何网络爬虫抓取淘宝交易数据 小弟学软件的,现在想开淘宝店,想想怎么能快速获得用户数据推广产品,问问说网络爬虫可行,可是对这方面不了解,有哪位大神可以教一下,获取自己和其他用户网页上的商品信息之类的,作为分析. 解决方案 搜索引擎如百度都不让抓淘宝里的交易数据,淘宝的安全工程师都不是吃素的,建议你换个课题吧 解决方案二: 可以先看看对应数据的http,浏览器查看一下是否有对应的api,然后再考虑怎么发送请求 解决方案三: 关于电商网站的爬虫,大家可以学习一下这个系列的教程:http:/

Java爬虫抓取视频网站下载链接_java

本篇文章抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中.这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/).本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015年电影的下载链接. 一 原理简介 其实原理都跟第一篇文章差不多,不同的是鉴于这个网站的分类列表实在太多,如果不对这些标签加以取舍的话,需要花费的时间难以想象. 分类链接和标签链接都不要,不通过这些链接去爬取其他页面,只通过页底的

使用Python编写简单网络爬虫抓取视频下载资源_python

我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚本语言,没有之一.Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等.总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他... 因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些

卢松松:搜索引擎如何抓取你的网页

搜索引擎优化(SEO)是搜索引擎有好的收录网页的过程,适当的SEO有利于蜘蛛爬行你的网站,使你的内容符合搜索引擎算法,以便确认它与关键词高度相关. 优化的目的就是使网页的内容便于蜘蛛理解,下面我就以百度新收录的一篇内容来进行说明,我以一个完整标题进行搜索,其目的是能反映出更多关键词在百度自然搜索的结果页面,能更好的说明搜索引擎是如何抓取你的网页的.   (图一:百度最常见的自然搜索结果列表) SEOer通常关注的是网页主体部分的自然搜索结果,百度和Google搜索结果页面大致相同,搜索结果页面通

玩玩小爬虫——抓取动态页面

       在ajax横行的年代,很多网页的内容都是动态加载的,而我们的小爬虫抓取的仅仅是web服务器返回给我们的html,这其中就 跳过了js加载的部分,也就是说爬虫抓取的网页是残缺的,不完整的,下面可以看下博客园首页 从首页加载中我们看到,在页面呈现后,还会有5个ajax异步请求,在默认的情况下,爬虫是抓取不到这些ajax生成的内容的, 这时候要想获取就必须调用浏览器的内核引擎来下载这些动态页面,目前内核引擎三足鼎立. Trident: 也就是IE内核,WebBrowser就是基于该内核,

JAVA使用爬虫抓取网站网页内容的方法_java

本文实例讲述了JAVA使用爬虫抓取网站网页内容的方法.分享给大家供大家参考.具体如下: 最近在用JAVA研究下爬网技术,呵呵,入了个门,把自己的心得和大家分享下 以下提供二种方法,一种是用apache提供的包.另一种是用JAVA自带的. 代码如下: // 第一种方法 //这种方法是用apache提供的包,简单方便 //但是要用到以下包:commons-codec-1.4.jar // commons-httpclient-3.1.jar // commons-logging-1.0.4.jar

用nodejs爬虫抓取网页,但提示无Post()函数

问题描述 用nodejs爬虫抓取网页,但提示无Post()函数 使用EXPRESS模块搭建WEB项目. 代码: function transToPost(post){ var mPost = new Post({ title : post.title, link : post.link, description : post.description, pubDate : post.pubDate, source : post.source, author : post.author, typeI