深度了解蜘蛛spider抓取原理
尽管搜索引擎在不断地升级算法,但是终究其还是程序,因此我们在布局网站结构的时候,要尽可能地让搜索引擎蜘蛛看得懂。每个搜索引擎蜘蛛都有自己的名字,在抓取网页的时候,都会向网站表明自己的身份。搜索引擎蜘蛛在抓取网页的时候会发一个请求,这个请求中有一个字段为user-agent,用于标示此搜索引擎蜘蛛的身份。那么,今天就和大家一起来深度了解蜘蛛spider抓取原理。
例如Google搜索引擎蜘蛛的标识为Googlebot,百度搜索引擎的标识为baidu spider,yahoo搜索引擎蜘蛛的标识为inktomi slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的搜索引擎蜘蛛过来过,什么时候过来的,以及读了多少数据等。如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所者联系。
搜索引擎蜘蛛进入一个网站,一般会访问一个特殊的文本文件robots.txt。这个文件一般放在网站服务器的根目录下,网站管理员可以通过robots.txt来定义哪些目录搜索引擎蜘蛛不能访问,或者那些目录对于某些特定的搜索引擎蜘蛛不能访问。例如,有些网站的可执行文件目录和临时文件目录不希望被搜索引擎到,那么网站管理员就可以把这些目录定义为拒绝访问目录。robots.txt语法也很简单,如果对目录没有任何限制,可以用以下两行来描述。
user-agent*
Disallow:
当然,robots.txt只是一个协议,如果搜索引擎蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止搜索引擎蜘蛛对于某些页面的访问。但一般的搜索引擎蜘蛛都会遵循这些协议,而且网站管理员还可以通过其他方式来拒绝搜索引擎蜘蛛对某些网页的抓取。
搜索引擎蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的部分,会有meta标识。这些标识可以告诉搜索引擎蜘蛛本网页是否需要被抓取,还可以告诉搜索引擎蜘蛛本网页中的链接是否需要被继续跟踪。例如,表示本网页不需要被抓取,但是网页内的链接需要被跟踪。
现在一般的网站都希望搜索引擎能更全面地抓取自己的网站的网页,因为这样可能让更多的访问者通过搜索引擎能找到此网站。为了让本网站的网页更全面被抓取到,网站管理员可以建立一个网站地图,即sitemap。许多搜索引擎蜘蛛会把sitemap,htm文件作为一个网站网页爬取得入口,网站管理员可以把网站内容内部所有网页的链接放在这个文件里面,那么搜索引擎蜘蛛可以很方便地把整个网站抓取下来,避免遗漏某些网页,也会减小服务器的负担(Google专门为网站管理严提供了XML的Sitemap)。
搜索引擎建立网页索引,处理的对象是文本文件。对于搜索引蜘蛛来说,抓取下来网页包括各种格式,包括HTML、图片、doc、PDF、多媒体、动态网页极其他格式。把这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索引擎准确性有重要的作用,另一方面对于搜索引擎蜘蛛正确跟踪其他链接有一定影响。
对于doc、PDF等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。搜索引擎的搜索只需要调用这些插件的接口,就可以轻松地提取文档中的文本信息和文件的其他相关的信息。
HTML等文档不一样,HTML有一套自己的语法,通过不同的命令标识符来标识不同的字体、颜色、位置等,提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规则,只要按照不同的标识符取得相应的信息即可。但在识别这些信息的时候,需要同步记录许多版式信息。
除了标题和正文以外,会有许多广告链接以及公共的频道链接。这些链接和文本正文一点关系也没有,在提取网页内容的时候,也需要过滤这些无用的链接。例如,某个网站有“产品介绍”频道,因为导航条在网站内每个网页都会搜索到,无疑会带来大量垃圾信息,过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还需要个别处理。这就需要搜索引擎蜘蛛的设计有一定的扩展性。
电脑访问:深度了解蜘蛛spider抓取原理