网络爬虫

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络爬虫引言-爬虫Crawler,即Spider(网络爬虫),其定义有广义和狭义之分。狭义上指遵循标准的http协议,利用超链接和Web文档检索方法遍历万维网的软件程序;而广义的定义则是能遵循http协议,检索Web文档的软件都称之为网络爬虫。网络爬虫是一个功能很强的自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成部分。聚焦爬虫随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(SearchEngine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:聚焦爬虫(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频/视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力(4)通用搜索引擎大多提供基于关键字的检索,难以支持根聚焦爬虫为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(generalpurposewebcrawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。垂直搜索的本质从主题相关的领域内,获取、加工与搜索行为相匹配的结构化数据和元数据信息。如数码产品mp3:内存、尺寸、大小、电池型号、价格、生产厂家等,还可以提供比价服务爬虫基本原理网络爬虫是通过网页的链接地址来寻找网页,从一个或若干初始网页的URL开始(通常是某网站首页),遍历Web空间,读取网页的内容,不断从一个站点移动到另一个站点,自动建立索引。在抓取网页的过程中,找到在网页中的其他链接地址,对HTML文件进行解析,取出其页面中的子链接,并加入到网页数据库中,不断从当前页面上抽取新的URL放入队列,这样一直循环下去,直到把这个网站所有的网页都抓取完,满足系统的一定停止条件。爬虫基本原理另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。网络爬虫分析某个网页时,利用HTML语言的标记结构来获取指向其他网页的URL地址,可以完全不依赖用户干预。如果把整个互联网当成一个网站,理论上讲网络爬虫可以把互联网上所有的网页都抓取下来爬虫基本原理而且对于某些主题爬虫来说,这一过程所得到的分析结果还可能对以后抓取过程给出反馈和指导。正是这种行为方式,这些程序才被称为爬虫(spider)、crawler、机器人。爬虫基本原理Spider怎样抓取所有的Web页面呢?在Web出现以前,传统的文本集合,如目录数据库、期刊文摘存放在磁带或光盘里,用作索引系统。与此相对应,Web中所有可访问的URL都是未分类的,收集URL的唯一方式就是通过扫描收集那些链向其他页面的超链接,这些页面还未被收集过。爬虫基本原理从给定的URL集出发,逐步来抓取和扫描那些新的出链。这样周而复始的抓取这些页面。这些新发现的URL将作为爬行器的未来的抓取的工作。随着抓取的进行,这些未来工作集也会随着膨胀,由写入器将这些数据写入磁盘来释放主存,以及避免爬行器崩溃数据丢失。没有保证所有的Web页面的访问都是按照这种方式进行,爬行器从不会停下来,Spider运行时页面也会随之不断增加。页面中所包含的文本也将呈交给文本索引器,用于基于关键词的信息索引。工作流程网络爬虫是搜索引擎中最核心的部分,整个搜索引擎的素材库来源于网络爬虫的采集,从搜索引擎整个产业链来看,网络爬虫是处于最上游的产业。其性能好坏直接影响着搜索引擎整体性能和处理速度。通用网络爬虫是从一个或若干个初始网页的上的URL开始,获得初始网页上的URL列表,在抓取网页过程中,不断从当前页面上抽取新的URL放入待爬行队列,直到满足系统的停止条件。工作流程网络爬虫基本架构如图所示,其各个部分的主要功能介绍如下:1.页面采集模块:该模块是爬虫和因特网的接口,主要作用是通过各种web协议(一般以HTTP.FTP为主)来完成对网页数据的采集,保存后将采集到的页面交由后续模块作进一步处理。其过程类似于用户使用浏览器打开网页,保存的网页供其它后续模块处理,例如,页面分析、链接抽取。工作流程2.页面分析模块:该模块的主要功能是将页面采集模块采集下来的页面进行分析,提取其中满足用户要求的超链接,加入到超链接队列中。页面链接中给出的URL一般是多种格式的,可能是完整的包括协议、站点和路径的,也可能是省略了部分内容的,或者是一个相对路径。所以为处理方便,一般进行规范化处理,先将其转化成统一的格式。工作流程3、链接过滤模块:该模块主要是用于对重复链接和循环链接的过滤。例如,相对路径需要补全URL,然后加入到待采集URL队列中。此时,一般会过滤掉队列中已经包含的URL,以及循环链接的URL。工作流程4.页面库:用来存放已经采集下来的页面,以备后期处理。5.待采集URL队列:从采集网页中抽取并作相应处理后得到的URL,当URL为空时爬虫程序终止。6.初始URL:提供URL种子,以启动爬虫关键技术分析抓取目标的定义与描述网页URL的搜索策略网页的分析与信息的提取抓取目标的定义与描述针对有目标网页特征的网页级信息对应网页库级垂直搜索,抓取目标网页,后续还要从中抽取出需要的结构化信息。稳定性和数量上占优,但成本高、性活性差。针对目标网页上的结构化数据对应模板级垂直搜索,直接解析页面,提取并加工出结构化数据信息。快速实施、成本低、灵活性强,但后期维护成本高。URL的搜索策略网络爬虫URL抓取策略有:IP地址搜索策略广度优先深度优先最佳优先URL的搜索策略基于IP地址的搜索策略先赋予爬虫一个起始的IP地址,然后根据IP地址递增的方式搜索本口地址段后的每一个地址中的文档,它完全不考虑各文档中指向其它Web站点的超级链接地址。优点是搜索全面,能够发现那些没被其它文档引用的新文档的信息源缺点是不适合大规模搜索URL的搜索策略广度优先搜索策略广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。这样逐层搜索,依此类推。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。很多研究者通过将广度优先搜索策略应用于主题爬虫中。他们认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。URL的搜索策略另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。使用广度优先策略抓取的顺序为:A-B、C、D、E、F-G、H-I。URL的搜索策略深度优先搜索策略深度优先搜索在开发网络爬虫早期使用较多的方法之一,目的是要达到叶结点,即那些不包含任何超链接的页面文件。从起始页开始在当前HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。URL的搜索策略深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。这个方法有个优点是网络蜘蛛在设计的时候比较容易。使用深度优先策略抓取的顺序为:A-F-G、E-H-I、B、C、D。目前常见的是广度优先和最佳优先方法。URL的搜索策略最佳优先搜索策略最佳优先搜索策略按照一定的网页分析算法,先计算出URL描述文本的目标网页的相似度,设定一个值,并选取评价得分超过该值的一个或几个URL进行抓取。它只访问经过网页分析算法计算出的相关度大于给定的值的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。有研究表明,这样的闭环调整可以将无关网页数量降低30%--90%。网页的分析及信息的提取基于网络拓扑关系的分析算法根据页面间超链接引用关系,来对与已知网页有直接或间接关系对象作出评价的算法。网页粒度PageRank,网站粒度SiteRank。基于网页内容的分析算法从最初的文本检索方法,向涉及网页数据抽取、机器学习、数据挖掘、自然语言等多领域综合的方向发展。基于用户访问行为的分析算法有代表性的是基于领域概念的分析算法,涉及本体论。例子说明简析页面源代码定位的爬取目标是娱乐博文,故在首页的源代码中搜寻“娱乐”之后,发现了如下字段:divclass=navahref==a2fblack首页/aahref==_blankclass=fw娱乐/a解析html的方式实现网络爬虫,顾名思义另要程序自动解析网页。考虑到垂直爬虫及站内搜索的重要性,凡是涉及到对页面的处理,就需要一个强大的HTML/XMLParser支持解析,通过对目标文件的格式化处理,才能够实现特定信息提取、特定信息删除和遍历等操作。HTMLParser,它是Python用来的解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功