百度如何抓取信息的?

百度如何抓取信息的?,第1张

什么是baiduspider?
baiduspider是百度搜索引擎的一个自动程序。它的作用是访问互联网上的html网页,建立索引数据库,使用户能在百度搜索引擎中搜索到您网站的网页。
baiduspider对一个网站服务器造成的访问压力如何?
baiduspider会自动根据服务器的负载能力调节访问密度。在连续访问一段时间后,baiduspider会暂停一会,以防止增大服务器的访问压力。所以在一般情况下,baiduspider对您网站的服务器不会造成过大压力。
为什么baiduspider不停的抓取我的网站?
对于您网站上新产生的或者持续更新的页面,baiduspider会持续抓取。此外,您也可以检查网站访问日志中baiduspider的访问是否正常,以防止有人恶意冒充baiduspider来频繁抓取您的网站。 如果您发现baiduspider非正常抓取您的网站,请反馈至webmaster@baiducom,并请尽量给出baiduspider对贵站的访问日志,以便于我们跟踪处理。
我不想我的网站被baiduspider访问,我该怎么做?
baiduspider遵守互联网robots协议。您可以利用robotstxt文件完全禁止baiduspider访问您的网站,或者禁止baiduspider访问您网站上的部分文件。 注意:禁止baiduspider访问您的网站,将使您的网站上的网页,在百度搜索引擎以及所有百度提供搜索引擎服务的搜索引擎中无法被搜索到。
关于robotstxt的写作方法,请参看我们的介绍:robotstxt写作方法
为什么我的网站已经加了robotstxt,还能在百度搜索出来?
因为搜索引擎索引数据库的更新需要时间。虽然baiduspider已经停止访问您网站上的网页,但百度搜索引擎数据库中已经建立的网页索引信息,可能需要二至四周才会清除。 另外也请检查您的robots配置是否正确。
百度蜘蛛在robotstxt中的名字是什么?
“Baiduspider” 首字母B大写,其余为小写。
baiduspider多长时间之后会重新抓取我的网页?
百度搜索引擎每周更新,网页视重要性有不同的更新率,频率在几天至一月之间,baiduspider会重新访问和更新一个网页。
baiduspider抓取造成的带宽堵塞?
baiduspider的正常抓取并不会造成您网站的带宽堵塞,造成此现象可能是由于有人冒充baidu的spider恶意抓取。如果您发现有名为Baiduspider的agent抓取并且造成带宽堵塞,请尽快和我们联系。您可以将信息反馈至webmaster@baiducom,如果能够提供您网站该时段的访问日志将更加有利于我们的分析。

先说说搜索引擎的原理吧。搜索引擎是把互联网上的网页内容存在自己的服务器上,当用户搜索某个词的时候,搜索引擎就会在自己的服务器上找相关的内容,这样就是说,只有保存在搜索引擎服务器上的网页才会被搜索到。哪些网页才能被保存到搜索引擎的服务器上呢只有搜索引擎的网页抓取程序抓到的网页才会保存到搜索引擎的服务器上,这个网页抓取程序就是搜索引擎的蜘蛛整个过程分为爬行和抓取。

一、 蜘蛛

搜索引擎用来爬行和访问网站页面的程序被称为蜘蛛,也可称之为机器人。蜘蛛访问浏览器,就和我们平时上网一个样子,蜘蛛同样会申请访问,得到允许后才可以浏览,可是有一点,搜索引擎为了提高质量和速度,它会放很多蜘蛛一起去爬行和抓取。

蜘蛛访问任何一个网站时,都会先去访问网站根目录下的robotstxt文件。如果robotstxt文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址。

和浏览器一样,搜索引擎蜘蛛也有表明自己身份的代理名称,站长可以在日志文件中看到搜索引擎的特定代理名称,从而辨识搜索引擎蜘蛛。

二、 跟踪链接

为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行一样。

整个互联网是有相互链接的网站及页面组成的。当然,由于网站及页面链接结构异常复杂,蜘蛛需要采取一定的爬行策略才能遍历网上所有页面。

最简单的爬行的策略有:深度优先和广度优先。

1、 深度链接

深度优先指当蜘蛛发现一个链接时,它就会顺着这个链接指出的路一直向前爬行,直到前面再也没其他链接,这时就会返回第一个页面,然后会继续链接再一直往前爬行。

2、 广度链接

从seo角度讲链接广度优先的意思是讲的蜘蛛在一个页面发现多个链接的时候,不是跟着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。

从理论上说,无论是深度优先还是广度优先,只要给蜘蛛足够的时间,都能爬完整个互联网。在实际工作中,没有什么东西是无限的,蜘蛛的带宽资源和蜘蛛的时间也是一样都是有限的,也不可能爬完所有页面。实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分。

3吸引蜘蛛

蜘蛛式不可能抓取所有的页面的,它只会抓取重要的页面,那么哪些页面被认为比较重要呢有以下几点:

(1) 网站和页面权重

(2) 页面更新度

(3) 导入链接

(4) 与首页点击距离

4地址库

搜索引擎会建立一个地址库,这么做可以很好的避免出现过多抓取或者反复抓取的现象,记录已经被发现还没有抓取的页面,以及已经被抓取的页面。

地址库中的URL有以下几个来源:

(1) 人工录入的种子网站。

(2) 蜘蛛抓取页面后,从HTML中解析出新的链接URL,与地址库中的数据进行对比,如果是地址库中没有的网址,就存入待访问地址库。

(3) 搜索引擎自带的一种表格提供站长,方便站长提交网址。

Discourse是一个论坛程序,严重依赖Ajax,但是又必须让Google收录内容。它的解决方法就是放弃井号结构,采用 History API。
所谓 History API,指的是不刷新页面的情况下,改变浏览器地址栏显示的URL(准确说,是改变网页的当前状态)。这里有一个例子,你点击上方的按钮,开始播放音乐。然后,再点击下面的链接,看看发生了什么事?
地址栏的URL变了,但是音乐播放没有中断!
History API 的详细介绍,超出这篇文章的范围。这里只简单说,它的作用就是在浏览器的History对象中,添加一条记录。
windowhistorypushState(state object, title, url);
上面这行命令,可以让地址栏出现新的URL。History对象的pushState方法接受三个参数,新的URL就是第三个参数,前两个参数都可以是null。
windowhistorypushState(null, null, newURL);
目前,各大浏览器都支持这个方法:Chrome(260+),Firefox(200+),IE(100+),Safari(51+),Opera(121+)。
下面就是Robin Ward的方法。
首先,用History API替代井号结构,让每个井号都变成正常路径的URL,这样搜索引擎就会抓取每一个网页。
examplecom/1
examplecom/2
examplecom/3
然后,定义一个JavaScript函数,处理Ajax部分,根据网址抓取内容(假定使用jQuery)。
function anchorClick(link) {
var linkSplit = linksplit(‘/’)pop();
$get(‘api/’ + linkSplit, function(data) {
$(‘#content’)html(data);
});
}
再定义鼠标的click事件。
$(‘#container’)on(‘click’, ‘a’, function(e) {
windowhistorypushState(null, null, $(this)attr(‘href’));
anchorClick($(this)attr(‘href’));
epreventDefault();
});
还要考虑到用户点击浏览器的”前进 / 后退”按钮。这时会触发History对象的popstate事件。
windowaddEventListener(‘popstate’, function(e) {
anchorClick(locationpathname);
});
定义完上面三段代码,就能在不刷新页面的情况下,显示正常路径URL和AJAX内容。
最后,设置服务器端。
因为不使用井号结构,每个URL都是一个不同的请求。所以,要求服务器端对所有这些请求,都返回如下结构的网页,防止出现404错误。
<html>
<body>
<section id=’container’></section>
<noscript>
… …
</noscript>
</body>
</html>
仔细看上面这段代码,你会发现有一个noscript标签,这就是奥妙所在。
我们把所有要让搜索引擎收录的内容,都放在noscript标签之中。这样的话,用户依然可以执行AJAX *** 作,不用刷新页面,但是搜索引擎会收录每个网页的主要内容!

�熬迪裢�场保ㄍ�车哪谌萃耆�嗤��醇尤魏涡薷模┗颉白�赝�场保╪ear-replicas,主题内容基本相同但可能有一些额外的编辑信息等,转载网页也称为“近似镜像网页”)的消除,链接分析和网页重要程度的计算。1 关键词的提取,取一篇网页的源文件(例如通过浏览器的“查看源文件”功能),我们可以看到其中的情况纷乱繁杂。从认识和实践来看,所含的关键词即为这种特征最好的代表。于是,作为预处理阶段的一个基本任务,就是要提取出网页源文件的内容部分所含的关键词。对于中文来说,就是要根据一个词典Σ,用一个所谓“切词软件”,从网页文字中切出Σ所含的词语来。在那之后,一篇网页主要就由一组词来近似代表了,p = {t1, t2, …, tn}。一般来讲,我们可能得到很多词,同一个词可能在一篇网页中多次出现。从效果(effectiveness)和效率(efficiency)考虑,不应该让所有的词都出现在网页的表示中,要去掉诸如“的”,“在”等没有内容指示意义的词,称为“停用词”(stop word)。这样,对一篇网页来说,有效的词语数量大约在200个左右。2 重复或转载网页的消除,与生俱来的数字化和网络化给网页的复制以及转载和修改再发表带来了便利,因此我们看到Web上的信息存在大量的重复现象。这种现象对于广大的网民来说是有正面意义的,因为有了更多的信息访问机会。但对于搜索引擎来说,则主要是负面的;它不仅在搜集网页时要消耗机器时间和网络带宽资源,而且如果在查询结果中出现,无意义地消耗了计算机显示屏资源,也会引来用户的抱怨,“这么多重复的,给我一个就够了”。因此,消除内容重复或主题内容重复的网页是搜索引擎抓取网页阶段的一个重要任务。3、链接分析,大量的HTML标记既给网页的预处理造成了一些麻烦,也带来了一些新的机遇。从信息检索的角度讲,如果系统面对的仅仅是内容的文字,我们能依据的就是“共有词汇假设”(shared bag of words),即内容所包含的关键词集合,最多加上词频(term frequency 或tf、TF)和词在文档集合中出现的文档频率(document frequency 或df、DF)之类的统计量。而TF和DF这样的频率信息能在一定程度上指示词语在一篇文档中的相对重要性或者和某些内容的相关性,这是有意义的。有了HTML标记后,情况还可能进一步改善,例如在同一篇文档中,和之间的信息很可能就比在和之间的信息更重要。特别地,HTML文档中所含的指向其他文档的链接信息是人们近几年来特别关注的对象,认为它们不仅给出了网页之间的关系,而且还对判断网页的内容有很重要的作用。4、网页重要程度的计算,搜索引擎实际上追求的是一种统计意义上的满意。人们认为Google目前比baidu好,还是baidu比google好,参照物取决于多数情况下前者返回的内容要更符合用户的需要,但并不是所有情况下都如此。如何对查询结果进行排序有很多因素需要考虑。如何讲一篇网页比另外一篇网页重要?人们参照科技文献重要性的评估方式,核心想法就是“被引用多的就是重要的”。“引用”这个概念恰好可以通过HTML超链在网页之间体现得非常好,作为Google创立核心技术的PageRank就是这种思路的成功体现。除此以外,人们还注意到网页和文献的不同特点,即一些网页主要是大量对外的链接,其本身基本没有一个明确的主题内容,而另外有些网页则被大量的其他网页链接。从某种意义上讲,这形成了一种对偶的关系,这种关系使得人们可以在网页上建立另外一种重要性指标。这些指标有的可以在抓取网页阶段计算,有的则要在查询阶段计算,但都是作为在查询服务阶段最终形成结果排序的部分参数。

做网站优化的的目的,就是为了在搜索引擎中,拥有一个良好的排名,从而获得大量的流量。想要在搜索引擎中获得良好的排名,就必须要提升搜索引擎蜘蛛对网站的抓取速度。如果搜索引擎对网站抓取的频率低,就会直接影响到网站的排名、流量以及权重的评级。

那么,如何提升搜索引擎蜘蛛对网站的抓取速度呢?

1、主动提交网站链接

当更新网站页面或者一些页面没被搜索引擎收录的时候,就可以把链接整理后,提交到搜索引擎中,这样可以加快网站页面被搜索引擎蜘蛛抓取的速度。

2、优质的内容

搜索引擎蜘蛛是非常喜欢网站优质的内容,如果网站长时间不更新优质的内容,那么搜索引擎蜘蛛就会逐渐降低对网站的抓取率,从而影响网站排名以及流量。所以网站必须要定时定量的更新优质内容,这样才能吸引搜索引擎蜘蛛的抓取,从而提升排名和流量。

3、网站地图

网站地图可以清晰的把网站内所有的链接展现出来,而搜索引擎蜘蛛可以顺着网站地图中的链接进入到每个页面中进行抓取,从而提升网站排名。

4、外链建设

高质量外链对提升网站排名有很大作用,搜索引擎蜘蛛会顺着链接进入到网站中,从而提升抓取网站的速度。如果外链质量太差,也会影响搜索引擎蜘蛛的抓取速度。

总之,只要提升搜索引擎蜘蛛对网站的抓取速度,网站就能在搜索引擎中获得良好排名,从而获得大量流量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12643644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存