网路爬虫程式


网路爬虫程式

文章插图
网路爬虫程式【网路爬虫程式】Spider又叫WebCrawler或者Robot,是一个沿着连结漫游Web 文档集合的程式 。它一般驻留在伺服器上,通过给定的一些URL,利用HTTP等标準协定读取相应文档,然后以文档中包括的所有未访问过的URL作为新的起点,继续进行漫游,直到没有满足条件的新URL为止 。WebCrawler的主要功能是自动从Internet上的各Web 站点抓取Web文档并从该Web文档中提取一些信息来描述该Web文档,为搜寻引擎站点的资料库伺服器追加和更新数据提供原始数据,这些数据包括标题、长度、档案建立时间、HTML档案中的各种连结数目等
基本介绍中文名:网路爬虫程式
外文名:WebCrawler
解释:沿着连结漫游Web 文档集合的程式
概述:一般驻留在伺服器上
IP 地址搜寻策略先赋予爬虫一个起始的IP位址,然后根据IP位址递增的方式搜寻本IP位址段后的每一个WWW地址中的文档,它完全不考虑各文档中指向其它Web 站点的超级连结地址 。优点是搜寻全面,能够发现那些没被其它文档引用的新文档的信息源;缺点是不适合大规模搜寻 。深度优先搜寻策略深度优先搜寻是一种在开发爬虫早期使用较多的方法 。它的目的是要达到被搜寻结构的叶结点(即那些不包含任何超链的HTML档案)。在一个HTML档案中,当一个超链被选择后,被连结的HTML档案将执行深度优先搜寻,即在搜寻其余的超链结果之前必须先完整地搜寻单独的一条链 。深度优先搜寻沿着HTML档案上的超链走到不能再深入为止,然后返回到某一个HTML档案,再继续选择该HTML档案中的其他超链 。当不再有其他超链可选择时,说明搜寻已经结束 。优点是能遍历一个Web 站点或深层嵌套的文档集合;缺点是因为Web结构相当深,,有可能造成一旦进去,再也出不来的情况发生 。宽度优先搜寻策略在宽度优先搜寻中,先搜寻完一个Web 页面中所有的超级连结,然后再继续搜寻下一层, 直到底层为止 。例如,一个HTML 档案中有三个超链,选择其中之一併处理相应的HTML档案,然后不再选择此HTML档案中的任何超链, 而是返回并选择第二个超链,处理相应的HTML档案,再返回,选择第三个超链并处理相应的HTML档案 。一旦一层上的所有超链都己被选择过,就可以开始在刚才处理过的HTML 档案中搜寻其余的超链 。这就保证了对浅层的首先处理 。当遇到一个无穷尽的深层分支时,不会导致陷进WWW 中的深层文档中出现出不来的情况发生 。宽度优先搜寻策略还有一个优点,即它能在两个HTML档案之间找到最短路径 。宽度优先搜寻策略通常是实现爬虫的最佳策略,因为它容易实现,而且具备大多数期望的功能 。但是如果要遍历一个指定的站点或者深层嵌套的HTML档案集,用宽度优先搜寻策略则需要花费比较长的时间才能到达深层的HTML档案 。综合考虑以上几种策略和国内信息导航系统搜寻信息的特点,国内一般採用以宽度优先搜寻策略为主、线性搜寻策略为辅的搜寻策略 。对于某些不被引用的或很少被引用的HTML档案,宽度优先搜寻策略可能会遗漏这些孤立的信息源,可以用线性搜寻策略作为它的补充 。专业搜寻引擎的爬虫策略专业搜寻引擎网路爬虫通常採用“最好优先”原则访问WEB,即为快速、有效地获得更多的与主题相关的页面(简称“回报”),每次选择“最有价值”的连结进行访问 。由于连结包含于页面之中,而通常具有较高价值的页面包含的连结也具有较高的价值,因而对连结价值的评价有时也转换为对页面价值的评价 。爬虫的设计中应该注意的问题第一个问题是URL地址的标準化:在WWW上,一个URL地址可以有多种表示方法,可以用IP位址表示,也可以用域名来表示 。为了避免爬虫重複访问同一地址 。第二个问题是避免掉进网路陷阱:网路上的连结情况比较複杂,一些静态的网页可能构成闭环迴路 。为了避免爬虫在一条循环路线上反覆抓取,在把URL加入待搜寻地址列表之前都要检查是否已在待搜寻的地址列表中出现过 。对于动态网页,爬虫应该忽略所有带参数的URL 。第三个问题:对于拒绝访问的页面,爬虫应该遵从“漫游拒绝访问规则” 。