广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5798 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[资讯教学] 网路蜘蛛
网路蜘蛛
Wikipedia,自由的百科全书
http://wiki.keyin.cn/index.php?title=%E7%BD%91...%9B%9B&variant=zh-tw



网路蜘蛛即(Web Spider),网路蜘蛛用来比喻一种在网路上进行内容搜索的 软体 ,这种软体的演算法非常类似 蜘蛛 行为。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网路蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直回圈下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网路蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G位元组,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网路蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。
在抓取网页的时候,网路蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)。广度优先是指网路蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网路蜘蛛并行处理,提高其抓取速度。深度优先是指网路蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网路蜘蛛在设计的时候比较容易。两种策略的区别,下图的说明会更加明确。
由于不可能抓取所有的网页,有些网路蜘蛛对一些不太重要的网站,设置了访问的层数。例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1层,G、H属于第2层,I属于第3层。如果网路蜘蛛设置的访问层数为2的话,网页I是不会被访问到的。这也让有些网站上一部分网页能够在搜索引擎上搜索到,另外一部分不能被搜索到。 对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。
网路蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页许可权的问题,有些网页是需要会员许可权才能访问。当然,网站的所有者可以通过协议让网路蜘蛛不去抓取(下小节会介绍),但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样就需要给网路蜘蛛提供相应的用户名和密码。网路蜘蛛可以通过所给的许可权对这些网页进行网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的许可权验证。
[ 编辑 ]
网站与网路蜘蛛
网路蜘蛛需要抓取网页,不同于一般的访问,如果控制不好,则会引起网站伺服器负担过重。今年4月,淘宝网( [1] )就因为雅虎搜索引擎的网路蜘蛛抓取其数据引起淘宝网伺服器的不稳定。网站是否就无法和网路蜘蛛交流呢?其实不然,有多种方法可以让网站和网路蜘蛛进行交流。一方面让网站管理员了解网路蜘蛛都来自哪儿,做了些什么,另一方面也告诉网路蜘蛛哪些网页不应该抓取,哪些网页应该更新。
每个网路蜘蛛都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。网路蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个栏位为User-agent,用于标识此网路蜘蛛的身份。例如Google网路蜘蛛的标识为GoogleBot,Baidu网路蜘蛛的标识为BaiDuSpider,Yahoo网路蜘蛛的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网路蜘蛛过来过,什么时候过来的,以及读了多少数据等等。如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。下面是博客中国( [2] )2004年5月15日的搜索引擎访问日志:
网路蜘蛛进入一个网站,一般会访问一个特殊的文本文件Robots.txt,这个文件一般放在网站伺服器的根目录下,如: http://www.blogchina...ots.txt。网站管理员可以通过robots.txt来定义哪些目录网路蜘蛛不能访问,或者哪些目录对于某些特定的网路蜘蛛不能访问。例如有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。Robots.txt语法很简单,例如如果对目录没有任何限制,可以用以下两行来描述: User-agent: * Disallow:
当然,Robots.txt只是一个协议,如果网路蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网路蜘蛛对于某些页面的访问,但一般的网路蜘蛛都会遵循这些协议,而且网站管理员还可以通过其它方式来拒绝网路蜘蛛对某些网页的抓取。
网路蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的部分,会有META标识。通过这些标识,可以告诉网路蜘蛛本网页是否需要被抓取,还可以告诉网路蜘蛛本网页中的链接是否需要被继续跟踪。例如: 表示本网页不需要被抓取,但是网页内的链接需要被跟踪。
现在一般的网站都希望搜索引擎能更全面的抓取自己网站的网页,因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面被抓取到,网站管理员可以建立一个网站地图,即Site Map。许多网路蜘蛛会把sitemap.htm文件作为一个网站网页爬取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么网路蜘蛛可以很方便的把整个网站抓取下来,避免遗漏某些网页,也会减小对网站伺服器的负担。
[ 编辑 ]
内容提取
搜索引擎建立网页索引,处理的对象是文本文件。对于网路蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网路蜘蛛正确跟踪其它链接有一定影响。
对于doc、pdf等文档,这种由专业厂商提供的软体生成的文档,厂商都会提供相应的文本提取介面。网路蜘蛛只需要调用这些插件的介面,就可以轻松的提取文档中的文本信息和文件其它相关的信息。
HTML等文档不一样,HTML有一套自己的语法,通过不同的命令标识符来表示不同的字体、颜色、位置等版式,如:、、 等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规则,只要按照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息,例如文字的字体大小、是否是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在网页中的重要程度。同时,对于HTML网页来说,除了标题和正文以外,会有许多广告链接以及公共的频道链接,这些链接和文本正文一点关系也没有,在提取网页内容的时候,也需要过滤这些无用的链接。例如某个网站有“产品介绍”频道,因为导航条在网站内每个网页都有,若不过滤导航条链接,在搜索“产品介绍”的时候,则网站内每个网页都会搜索到,无疑会带来大量垃圾信息。过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还需要个别处理。这就需要网路蜘蛛的设计有一定的扩展性。
对于多媒体、图片等文件,一般是通过链接的锚文本(即,链接文本)和相关的文件注释来判断这些文件的内容。例如有一个链接文字为“张曼玉照片”,其链接指向一张bmp格式的图片,那么网路蜘蛛就知道这张图片的内容是“张曼玉的照片”。这样,在搜索“张曼玉”和“照片”的时候都能让搜索引擎找到这张图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的了解文件的内容。
动态网页一直是网路蜘蛛面临的难题。所谓动态网页,是相对于静态网页而言,是由程式自动生成的页面,这样的好处是可以快速统一更改网页风格,也可以减少网页所占伺服器的空间,但同样给网路蜘蛛的抓取带来一些麻烦。由于开发语言不断的增多,动态网页的类型也越来越多,如:asp、jsp、php等。这些类型的网页对于网路蜘蛛来说,可能还稍微容易一些。网路蜘蛛比较难于处理的是一些脚本语言(如VBScript和JavaScript)生成的网页,如果要完善的处理好这些网页,网路蜘蛛需要有自己的脚本解释程式。对于许多数据是放在资料库的网站,需要通过本网站的资料库搜索才能获得信息,这些给网路蜘蛛的抓取带来很大的困难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提供一种可以遍历整个资料库内容的方法。
对于网页内容的提取,一直是网路蜘蛛中重要的技术。整个系统一般采用插件的形式,通过一个插件管理服务程式,遇到不同格式的网页采用不同的插件处理。这种方式的好处在于扩充性好,以后每发现一种新的类型,就可以把其处理方式做成一个插件补充到插件管理服务程式之中。
[ 编辑 ]
更新周期
由于网站的内容经常在变化,因此网路蜘蛛也需不断的更新其抓取网页的内容,这就需要网路蜘蛛按照一定的周期去扫描网站,查看哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死链接。
搜索引擎的更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,则总会有一部分新生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会对带宽、伺服器的资源都有浪费。搜索引擎的网路蜘蛛并不是所有的网站都采用同一个周期进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻网站,几个小时就更新一次;相反对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。
一般来说,网路蜘蛛在更新网站内容的时候,不用把网站网页重新抓取一遍,对于大部分的网页,只需要判断网页的属性(主要是日期),把得到的属性和上次抓取的属性相比较,如果一样则不用更新。



爸爸 你一路好走
献花 x0 回到顶端 [楼 主] From:台湾 和信超媒体宽带网 | Posted:2006-11-08 13:52 |
mnkjiul
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x9 鲜花 x106
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

Google 的搜寻引擎如此巨大、如此快速,一方面是仰赖硬体技术和效能,另一方面就是使用 Web spider 的技术去寻找网页!

详细内容可以看上面楼主所贴的文章。




Unique[D]' H!JAcK1r*GAMING
献花 x0 回到顶端 [1 楼] From:未知地址 | Posted:2006-12-11 15:52 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.059768 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言