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