一、概念
Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序。它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访问过的URL作为新的起点,继续进行漫游,直到没有满足条件的新URL为止。
二、搜索策略
先赋予爬虫一个起始的IP地址,然后根据IP地址递增的方式搜索本IP地址段后的每一个WWW地址中的文档,它完全不考虑各文档中指向其它Web 站点的超级链接地址。优点是搜索全面,能够发现那些没被其它文档引用的新文档的信息源;缺点是不适合大规模搜索。
深度优先搜索是一种在开发爬虫早期使用较多的方法。优点是能遍历一个Web 站点或深层嵌套的文档集合;缺点是因为Web结构相当深,,有可能造成一旦进去,再也出不来的情况发生。
先搜索完一个Web 页面中所有的超级链接,然后再继续搜索下一层, 直到底层为止。这就保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时,不会导致陷进WWW 中的深层文档中出现出不来的情况发生。广度优先搜索策略还有一个优点,即它能在两个HTML文件之间找到最短路径。广度优先搜索策略通常是实现爬虫的最佳策略,因为它容易实现,并且这个方法可以让网络蜘蛛并行处理,提高其抓取速度。
目前,专业搜索引擎网络爬虫通常采用“最好优先”原则访问WEB,即为快速、有效地获得更多的与主题相关的页面(简称“回报”),每次选择“最有价值”的链接进行访问。由于链接包含于页面之中,而通常具有较高价值的页面包含的链接也具有较高的价值,因而对链接价值的评价有时也转换为对页面价值的评价。
三、网站访问
网络爬虫需要抓取网页,不同于一般的访问,如果控制不好,则会引起网站服务器负担过重。每个爬虫都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。爬虫在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User-agent,用于标识此爬虫的身份。例如Google的标识为GoogleBot,Baidu的标识为BaiDuSpider,Yahoo的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的爬虫过来过,什么时候过来的,以及读了多少数据等等。如果网站管理员发现某个爬虫有问题,就通过其标识来和其所有者联系。
四、robots协议
robots协议(也称为爬虫协议、爬虫规则、机器人协议等)也就是robots.txt,网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯。因其不是命令,故需要搜索引擎自觉遵守。一些病毒如malware(马威尔病毒)经常通过忽略robots协议的方式,获取网站后台数据和个人信息。2012年8月,奇虎360被曝违反Robots协议。
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。更多内容:http://baike.baidu.com/view/9274458.htm
五、内容提取
搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它链接有一定影响。
引用:
http://bbs.supadmin.com/thread-51313-1-1.html
http://www.hudong.com/wiki/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB%E7%A8%8B%E5%BA%8F?prd=so_1_doc
http://baike.baidu.com/view/9274458.htm