(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf_第1页
(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf_第2页
(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf_第3页
(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf_第4页
(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(计算机应用技术专业论文)支持javascript解析的网页采集系统设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 、: ,; - : 上 , i k _j,-j-1 | | , l0 1 f 一i i i ! l l ! l ! l l l l l l f $ i i l l l l f l l lr iii r f l l l j 丫18 4 4 2 3 8 at h e s i sf o rt h ed e g r e eo fm a s t e ri nc o m p u t e r a p p l i c a t i o nt e c h n o l o g y d e s i g na n d r e a l i z a t i o no faw e b p a g e g a t h e r i n gs y s t e mw i t hj a v a s c r i p tp a r s i n g b yb a ih o n g x i a s u p e r v i s o r :p r o f e s s o rc h a n gg u i r a n n o r t h e a s t e r nu n i v e r s i t y j u n e2 0 0 8 妒 摹 譬 , , - 1 1 j 独创性声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中取得 的研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰写过 的研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示诚 挚的谢意。 学位论文作者签名:白扫雷 签g - 日期:t 0 0 8 彭o 学位论文版权使用授权书 j 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年口一年口一年半口两年衫 j 学位论文作者签名:自主2 髻 导师签名: 签字日期 :7 , 0 0 9 6 ,o 签字日期: 窄彬易 卯一g 厂口 - , - 1 k 东北大学硕士学位论文 摘要 支持j a v a s c r i p t 解析的网页采集系统设计与实现 摘要 随着搜索引擎的广泛应用,网页采集技术得到了长足发展。网页采集是搜索引擎工 作流程的第一站,采集的页面质量将直接影响到搜索引擎提供查询服务的优劣。最理想 的情形是采集与用户视觉信息一致( c o h e r e n tw i t hu s e r s v i s i o ni n f o r m a t i o n ,c u v i ) 的 页面,这一概念一直是搜索引擎领域的盲点。 针对这一盲点,本文以抓取c u v i 页面为宗旨设计并实现了一个网页采集系统。抓 取c u v i 页面首先需要进行网页重定向的处理操作,这是页面j a v a s c r i p t 程序的主要功 能之一。本文采集系统通过将j a v a s c r i p t 解析引入采集系统设计中,在很大程度上解决采 集c u 页面的问题。 本文主要内容分j a v a s c r i p t 解析和采集系统设计与实现两部分展开。 j a v a s c r i p t ( j s ) 解析部分,首先分析处理j a v a s c r i p t 的必要性,通过对典型数据进行 调研分析,得到了j s 程序在h t m l 文档中的功能分布。然后,根据采集系统对j a v a s c r i p t 解析的需求设计并实现了简易j s 解析器j s p a r s e r 。最后,通过实验验证j s p a r s e r 无论 在性能上还是在功能上都能满足本文采集系统的需求。 本文的采集系统由采集器和控制器两个模块组成。采集器在设计上,创新性地引入 页面分析功能,并结合使用j s p a r s e r ,达到了采集c u v i 页面的初衷;在实现上,采用 e p o l l 技术解决了采集器对高并发度的要求。控制器维护一个站点i pf i f o ( f i s ti nf i s t o u t ) 队列,较好地解决了采集系统对i p 和站点的抓取压力控制,使得采集器和互联网 能够良好的协同工作。 通过对系统进行多方面测试,得到引入j s p a r s e r 对系统性能的影响不明显,并且本 系统在i p 富足的情况下,运行良好。 关键词:网页采集系统;用户视觉信息;j a v a s c r i p t 解析;页面分析;i pf i f o 队列 一i i 东北大学硕士学位论文 a b s t r a c t d e s i g na n d r e a l i z a t i o no faw e b p a g e g a t h e r i n gs y s t e mw i t hj a v a s c r i p tp a r s i n g a b s t r a c t w i t ht h ew i d e l ya p p l i c a t i o no fs e a r c he n g i n e s ,w e bp a g eg a t h e r i n gt e c h n o l o g yh a sb e e n d e v e l o p i n gr a p i d l y w e bp a g eg a t h e r i n gi st h ef i r s ts t e po ft h es e a r c he n g i n ew o r k i n gf l o w 。k t h eq u a l i t yo fw e bp a g e sg a t h e r e dd i r e c t l ya f f e c t st h eq o s ( q u a l i t yo fs e r v i c e ) o fas e a r c h e n g i n e i ni d e a lc i r c u m s t a n c e s ,t h eg a t h e r e dp a g e ss h o u l db et h ep a g e sc o h e r e n tw i t ht h e u s e r s v i s i o ni n f o r m a t i o n ( c u v i ) h o w e v e r , t h i si d e ah a sb e e np a i dn oa t t e n t i o na l lt h ew h i l e t os o l v et h i sb l i n ds p o t ,aw e b p a g eg a t h e r i n gs y s t e mf o rc u v ip a g e si sd e s i g n e di nt h i s t h e s i s t oc r a w lc u v ip a g e s ,t h ef i r s tt h i n gt ob ea d d r e s s e di st h er e d i r e c t i o ni nw e bp a g e s o n eo ft h em a i nf u n c t i o n so fj a v a s c r i p t i nt h i st h e s i s ,t h ep r o b l e mo fg a t h e r i n gc u v ip a g e s h a sb e e ns o l v e dp r e t t yw e l lb yi n t r o d u c i n gj a v a s c r i p tp a r s i n gi n t ot h eg a t h e r i n gs y s t e m t h ec o n t e n t so ft h i st h e s i sc a l lb ed i v i d e di n t ot w op a r t s :d e s i g na n di m p l e m e n t a t i o no fa j a v a s c r i p tp a r s e ra n d aw e bp a g e sg a t h e r i n gs y s t e m f o rt h ed e s i g na n di m p l e m e n t a t i o no faj a v a s c r i p tp a r s e r , f i r s to fa l l ,t h en e c e s s i t yt o d e a lw i t hj a v a s c r i p ti si n v e s t i g a t e d t h ef u n c t i o nd i s t r i b u t i o no fj sp r o c e d u r e si nh t m l d o c u m e n t si so b t a i n e df r o mt h ea n a l y s i so ft y p i c a lr e s e a r c hd a t a t h e n ,as i m p l ej sp a r s e r j s p a r s e ri sd e s i g n e da n di m p l e m e n t e da c c o r d i n gt ot h er e q u i r e m e n tt oj a v a s c r i p tp a r s i n gb y t h eg a t h e r i n gs y s t e m f i n a l l y ,i ti sv e r i f i e dt h r o u g he x p e r i m e n t st h a tt h ej s p a r s e rc a nm e e tt h e r e q u i r e m e n t so ft h i sg a t h e r i n gs y s t e mb o t hi np e r f o r m a n c ea n di nf u n c t i o n t h ew e b p a g eg a t h e r i n gs y s t e mc o n s i s t so ft w os u b m o d u l e s :ac o l l e c t o ra n d ac o n t r o l l e r t h ea n a l y s i so fw e bp a g e si sc r e a t i v e l yi n t r o d u c e di n t ot h ed e s i g no ft h ec o l l e c t o ra n di s c o m b i n e dw i t hj s p a r s e r , h e n c et h ei n t e n s i o no fc r a w l i n gc u v ip a g e si ss u c c e s s f u l l ya c h i e v e d i nt h ei m p l e m e n t a t i o no ft h i sc o l l e c t o r ,e p o l lt e c h n o l o g yi su s e dt os a t i s f yt h eh i g h c o n c u r r e n c yo ft h ec o l l e c t o r b ym a i n t a i n i n gaf i f oq u e u eo fi pa d d r e s s e si nt h ec o n t r o l l e r , t h ec o l l e c t o rc a nd o w n l o a dt h ew e bp a g e sp o l i t e l y , w h i c hm a k e st h ec o l l e c t o ra n dt h ei n t e r n e t c o l l a b o r a t ew e l l t h r o u g he x t e n s i v et e s t i n g ,i ti sv e r i f i e dt h a tt h ei n t r o d u c t i o no fj s p a r s e rt ot h eg a t h e r i n g s y s t e md o e sn o ta f f e c tt h e t h ep e r f o r m a n c eo ft h es y s t e ma n ds y s t e mr u n sw e l lw i t ha b u n d a n t i pa d d r e s s e s i i i 东北大学硕士学位论文a b s t r a c t k e yw o r d s :w e bp a g eg a t h e r i n gs y s t e m ;u s e r s v i s i o ni n f o r m a t i o n ;j a v a s c r i p tp a r s i n g ;w e b p a g ea n a l y s i s ;f i f oq u e u eo t :i pa d d r e s s e s 一一 , 东北大学硕士学位论文 目录 目录 独创性声明i 摘要i i a b s t r a c t i i i 第1 章绪论。1 1 1 研究背景1 1 2 支持j a v a s c r i p t 解析的网页采集技术发展现状2 1 3 本文主要工作。3 1 4 本文组织结构。3 第2 章相关技术介绍5 2 1j a v a s c r i p t 简介5 2 1 1j a v a s c r i p t 语言概况。5 2 1 2j a v a s c r i p t 语言组成5 2 1 3j a v a s c r i p t 在网页中的用法。6 2 2 解析j a v a s c r i p t 的方法7 2 3j s 引擎介绍8 2 3 1s p i d e r m o n k e y 简介8 2 3 2s p i d e r m o n k e y 的使用。1 0 2 4 搜索引擎简介1 1 2 5 搜索引擎组成部分1 2 2 5 1 爬虫器1 2 2 5 2 索引器_ 13 2 5 - 3 索引库1 4 2 5 4 检索引擎1 4 2 6 搜索引擎国内外研究现状1 5 一v 一 东北大学硕士学位论文目录 2 7 搜索引擎主要指标1 6 2 8 搜索引擎搜索策略1 6 2 8 1 无启发式搜索策略。1 7 2 8 2 启发式搜索策略1 9 2 8 3 对广度优先搜索的优化2 0 2 9 本章小结2 1 第3 章j a v a s c r i p t 解析器的设计与实现2 3 3 1 弓l 言2 3 3 2 处理j a v a s c r i p t 的必要性2 3 3 3 网页抓取对j a v a s c r i p t 解析的需求2 5 3 4j s p a r s e r 设计2 6 3 4 1 总体结构设计2 6 3 4 2 初始化j s p a r s e r 2 7 3 4 3 总控制程序2 8 3 4 4 读取语句控制2 8 3 4 5 解释执行控制2 9 3 4 6 解释执行2 9 3 4 7 表达式计算3 2 3 5j s p a r s e r 性能测试3 3 3 6 本章小结3 3 第4 章采集系统设计与实现3 5 4 1 弓i 占3 5 4 2 主要技术概要3 5 4 2 1h t r p 协议3 5 4 2 2e p o l l 技术3 6 4 3 系统总体设计3 8 4 4 模块工作模式3 9 一一 东北大学硕士学位论文目录 4 5 采集模块详细设计3 9 4 5 1 模块结构图及说明3 9 4 5 2 算法描述4 1 4 5 3 需要考虑的问题及解决策略4 4 4 6 控制器设计4 6 4 6 1 模块结构图及说明4 7 4 6 2u r l 接收4 9 4 6 3u r l 选取51 4 6 4u r l 分发5 2 4 6 5 页面收集5 3 4 6 6u r l 监控5 4 4 7 系统测试一5 4 4 7 1j s p a r s e r 对采集系统性能的影响5 4 4 7 2 采集系统性能测试5 5 4 8 本章小结5 7 第5 章总结与展望5 9 善 5 1 工作总结5 9 5 2 下一步的工作5 9 参考文献6 1 致谢6 5 一v l i 东北大学硕士学位论文第1 章绪论 第1 章绪论 1 1 研究背景 2 l 世纪是信息时代,随着信息科学技术的不断发展,网络已成为人们生活中的重要 组成部分,作为信息交流的中心与枢纽作用愈显重要。因特网是全球最大的分布式信息 库,拥有众多但却杂乱无章的信息,并且这些信息呈几何级数增长。如何快速、准确地 查找所需要的信息,成为人们迫切需要解决的问题。搜索引擎应运而生,而作为搜索引 擎一部分的网络爬虫起着重要作用。网页爬虫完成网页抓取任务,处于搜索引擎工作中 的第一个流程,为后续的工作提供页面数据库,全面、高质量的页面库是搜索引擎搜索 性能的保证。搜索引擎后续通过对这些页面的处理,响应用户的检索需求,所以网络爬 虫抓取的页面对于搜索引擎来说是起到基础性作用的。随着网络技术的发展,网站变得 越来越复杂,网站开发从单纯使用静态h t m l 到使用h t m l 和脚本语言,从而实现更多 的功能。如今,使用脚本代码构建网页己经比较普遍,例如动态生成网页内容,通常都 需要利用很多变量和复杂的脚本,给网络爬虫抓取和分析此类网页带来很多困难。 近年来,随着w e b 2 0 的兴起,在w e b 开发中运用j a v a s e r i p t 脚本语言的网站越来越多。 这一技术的应用带来了更好的用户体验、很多新概念和w e b u i 设计,同时,通过j a v a s c r i p t 脚本程序动态改变页面内容,改变了传统w e b 页面的结构,导致对单纯抓取静态w c b 页 面的网络爬虫带来极大挑战。互联网的这一变化,对网络爬虫提出了解析j a v a s c r i p t 的新 要求。在网页中的j a v a s c r i p t 脚本语言具有多种功能,如页面跳转、网页内容载入、动态 u r l 生成、a j a x 交互、响应用户的操作、广告呈现、c o o e k i e 处理等等。而在这些功能 中,网络爬虫关注的是j a v a s c r i p t 负责的页面跳转和动态u r l 亡i :_ 成两种。在脚本代码用于 网页之前,所有的链接都是由h t m l 的 标签标识,网络爬虫只需要分析页面中的q 标签,就能比较完整地抓取相应网站的网页。但是随着脚本代码越来越多地用于网页的 逻辑处理、页面呈现等等,尤其是近年来,很多网站将脚本的应用发挥到及至,仅仅停 留在处理 标签已经不能满足搜索引擎的需求。对于页面的跳转,在静态页面阶段, 只有由h t m l 的 标签完成,但是随着j a v a s c r i p t 的应用,对于页面的跳转已有了多 种形式,单纯处理 ,已不能满足要求。 对于搜索引擎,网页采集部分为后续的工作提供加工处理的网页原材料。搜索引擎 从这些页面中提取相关信息,当有符合本页面的查询时呈现给用户网页的标题、摘要、 链接等。搜索引擎呈现给用户的这些信息将是用户点击访问页面的依据,其质量将会极 大的影响用户体验。而有页面跳转的网页源码中的内容比较少,有价值的信息都是在跳 东北大学硕士学位论文第1 章绪论 转之后的页面中。所以对于网页采集部分,抓取用户在浏览器中所见的内容一致的页面 - 抓取用户视觉信息是至关重要的。在采集部分处理页面内的跳转,抓取重定向之后 的有价值页面是首要解决的问题。 本论文所涉及的课题“支持j a v a s c r i p 懈析的网页采集系统设计与实现”,正是在 综合考虑上述需求因素的基础上提出并设计实现了以抓取c u v i 页面为宗旨的网页采集 系统。 1 2 支持j a v a s c r i p t 解析的网页采集技术发展现状 在现有的网页抓取技术研究领域,对j a v a s c r i p t 的解析主要的关注点有如下两点: j a v a s e r i p t 生成的动态u r l 和由j a v a s e r i p t 载入的页面内容。 搜索引擎爬虫从一定的u r l “种子 开始抓取网页,分析这些u r l 的页面文件,从 中提取超链接得到新的u r l ,再抓取对应的页面,如此循环往复,一直到遍历完整个 i n t e r n e t ,这便是网页爬虫器工作的基本原理。因此u r l 提取是爬虫器的主要工作之 一。正因提取u r l 的重要性,对u r l 提取的研究得到了广泛的关注,并且在网页抓取领 域,对j a v a s c r i p t 解析首先关注的是其动态生成的链接。 互联网页面根据其内容中是否含有浏览器端执行的脚本,可以将网页分为静态页面 和动态页面。静态页面中的u r l 直接以h t m l 超链接的方式嵌在h t m l 文件中,这种u r l 称为静态u r l ( 或静态链接) ,而动态页面中除了静态u r l ,还含有大量必须通过执行 浏览器端脚本才能得到的动态u r l ( 动态链接) 。静态u r l 通过分析页面文件的h t m l 超链接标记能够比较容易地提取出来。对于动态u r l ,在页面文件里的实际上只是一段 一段的脚本代码,不能通过分析超链接标记的方法得到。获取动态u r l 的难点在于脚本 代码的可编程性,u r l 由脚本语言计算得到。有研究【1 l 表明,通过解析j a v a s e r i p t ,获得 动态u r l ,能够得到更多的页面,使得搜索引擎的页面覆盖率更高。 对于j a v a s c r i p t 载入页面内容的部分,现有研究的关注点在于随着w e b 2 0 兴起的 a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx m l ) 技术。a j a x 是一种创建交互式网页应用的 网页开发技术,由多种技术组合而成。它利用w e b 开发应用程序因其易于部署、节省 成本的特点而逐渐成为技术的主流,浏览器将是未来唯一需要的客户端。从a j a x 的角 度看来,w e b 应用应由少量的页面组成,其中每个页面是一个更小型的a j a x 应用,每 个页面包括有一些使用j a v a s c r i p t 开发的a j a x 组件。这些组件使用x m l h t t p r e q u e s t 对象以异步的方式与服务器通信,从服务器获取需要的数据后使用d o ma p i 来更新页 面内容。研究1 2 】显示,通过解析j a v a s c r i p t 中的a j a x ,可以得到比传统的网络爬虫更多 的页面信息。 一2 一 东北大学硕士学位论文笫1 章绪论 1 3 本文主要工作 本文的内容主要从j a v a s c r i p t 解析和采集系统的设计实现两方面展开。 ( 1 ) j a v a s c r i p t 解析:首先,通过对大量的典型数据进行调研分析,得至l j j a v a s o i p t 在h t m l 文档中的功能分布,确定本文引a j a v a s c r i p t 解析的必要性。其次,分析获得采 集系统对j a v a s c d p t 解析的需求。再次,针对网页采集系统对j a v a s c r i p t 解析的需求,设 计并实现简易j s 解析器_ j s p a r s e r 。最后,通过实验得至l j j s p a r s e r 的性能。 ( 2 ) 网页采集系统的设计与实现:本文的网页采集系统分采集模块和控制模块。 采集模块主要负责从网上抓取给定u r l 到本地。传统的网页采集工作中,主要的工作 就是单一的从网上抓取网页,而不考虑所抓取的页面对后续的处理是否是一个有效的页 面。本文采集系统中的采集模块除了从网上抓取给定u r l 的页面之外,还对页面进行 初步的解析,如有页面跳转,则把跳转之后的页面进行抓取,确保为搜索引擎后续的工 作提供的是与用户视觉信息一致的有效页面。在这一过程中主要涉及到与j a v a s c r i p t 解 析器j s p a r s e r 的配合使用和h t r p 协议级的重定向,h t m l 文档的m e t a 标签重定向 处理等。控制器主要的工作是对网页采集器进行控制,通过维护站点i pf i f o 队列实现 i p 和站点级别的压力控制,使得搜索引擎网页抓取和互联网站点能够良好的协同工作。 通过对系统进行嵌入j s p a r s e r 前后的实验,确定j s p a r s e r 对采集系统性能的影响;分别 在口分散和m 密集的情况对系统进行测试,获得采集系统不同情况下的运行性能。 1 4 本文组织结构 , 本文主要分为五部分: 第l 章:首先,主要介绍本文研究的背景知识,并给出现有支持j a v a s c r i p t 解析的网 页采集技术。然后,针对提出的新概念抓取与用户视觉信息一致的网页为宗旨,对 本文的主要工作进行概要介绍。最后,给出本文章节组织结构。 第2 章:首先,对j a v a s c r i p t i 吾言做了一个简短的介绍。其次,给出了解析j a v a s c r i p t 的两种方法,并对现有的j s 引擎s p i d e r m o n k e y 进行介绍。然后,讨论搜索引擎的相关理 论,介绍搜索引擎的各个组成部分及其工作,搜索引擎的国内外研究现状,主要指标等。 最后,分析搜索引擎搜索策略,为整个论文奠定宏观上的技术基础。 第3 章:首先,根据所做的大量调研数据得出在现有的互联网q h j a v a s e r i p t 的应用之 广泛,对j a v a s c r i p t 在网页中的主要任务有个客观的认识。其次,给出网页采集系统对 j a v a s c r i p t 解析的需求。然后,根据本文所要解决的问题,提出本文所采用的j a v a s c r i p t 解析策略,给出本文的j a v a s 嘶p t 简易解析器_ j s p a r s e r 的详细设计。最后,通过实验 验证j s p a r s e r 的性能。 一3 一 东北大学硕士学位论文第1 章绪论 第4 章:设计并实现了本文的采集系统。本文设计的采集系统主要由两个模块组成: 采集模块和控制模块。从模块结构图设计到具体的实现给出了详实的分析、说明,并给 出设计的流程图。最后通过大量的实验,测试本系统的性能,得到引入j s p a r s e r g 鼍j 采集 系统的性能影响不太明显,并且本系统在口数量多的时候性能较好。 第5 章:总结本文的工作,提出存在的问题,并给出下一步的工作。 _ 4 。 东北大学硕士学位论文 第2 章相关技术介绍 第2 章相关技术介绍 2 1j a v a s c r i p t 简介 2 1 1j a v a s c r i p t 语言概况 j a v a s c r i p t 是一种i 扫n e t s e a p e f f j l i v e s c r i p t 发展而来的脚本语言,主要目的是为了解决 服务器终端语言遗留的速度问题。当时服务器端需要对数据进行验证,由于网络速度相 当缓慢,只有2 8 8 k b p s ,验证步骤浪费的时间太多。于是n e t s e a p e 的浏览器n a v i g a t o r 加 入- j j a v a s c r i p t ,提供了数据验证的基本功能。j a v a s c r i p t 使网页增加互动性,并使有规 律的重复h t m l 文段简化,减少下载时间。j a v a s c r i p t 能及时响应用户的操作,对提交 表单做即时的检查,无需浪费时间交由c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 验证。脚本语 言j a v a s e r i p t 的语句一般都嵌在网页的h t m l 语句当中,由网页浏览器解释执行。 2 1 2j a v a s c r i p t 语言组成 如图2 1 所示,j a v a s c r i p t1 妇以下三部分构成: 1 ) 作为核心的e c m a s e r i p t :这是语言的基础,定义了基本的语法和语义 2 ) 文档对象模型d o m - 这是操作h t m l x m l 的a p i 3 ) 浏览器对象模型b o m :这是操作浏览器功能的a p i 图2 1j a v a s c r i p t 组成部分 f i g 2 1c o m p o n e n t so fj a v a s e r i p t 接下来本文将分别对构成j a v a s c r i p t 的z 个部分做一个简要的介绍。 ( 1 ) e c m a s e r i p t :j a v a s c r i p t 的语言规范由网景公司提交给e c m a ( e u r o p e a n c o m p u t e rm a n u f a c t u r i n ga s s o c i a t i o n ,欧洲计算机制造协会) 去审定,并在1 9 9 7 年6 月发 布了名为e c m a s c r i p te d i t i o n1 的规范,或者称为e c m a 2 6 2 。e c m a s c r i p t 是与宿主平台 无关的规范( 标准) 。现在,符合标准的实现主要有:m o z z i l a 的s p i d e r m o n k e y ( c 实现) , m o z z i l a 的r h n o ( j a v a 实现) ,m i c r o s o f t 的j s c r i p t ,d i g i t a lm a r s 的d m d s c r i p t 。此外,许 多知名软件的控制脚本都是以e c m a s e r i p t 作为其核心组成部分,构筑起强大的语言能力 如图2 2 所示。 ( 2 ) d o c u m e n to b j e c tm o d e l :简单来讲,就是将h t m l x m l 表述成可操作的节点 一5 一 东北大学硕士学位论文第2 章相关技术介绍 树,可通过a p i 完成添加、移出、替换等操作。最初,i n t e m e te x p l o r e r4 0 和n e t s c a p e n a v i g a t o r 4 0 都提供了一定程度的d y n a m i ch t m l ( d h t m l ) 支持,允许程序员不用重 新加载就能改变网页的内容。但是n e t s e a p e 和m i c r o s o f i 使用不同的方式实现d h t m l ,程 序员必须为两种浏览器撰写不同的代码来完成同一项工作,提高了代码编写难度,消耗 时间。于是w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ) 开始努力建立d o m 模型,统- - d h t m l 对网页的操作。 图2 2 以e c m a s c r i p t 为核心的语言示意图 f i g 2 2l a n g u a g e sw i t he c m a s c r i p tk e r n e l ( 3 ) b r o w s e ro b j e c tm o d e l :i n t e r n e te x p l o r e r3 0 和n e t s c a p en a v i g a t o r3 0 添加了可 以操作浏览器窗口的功能,即b o m 模型。实际上,任何一个浏览器端的j a v a s c r i p t 扩展 都只是b o m 的一部分而已,这些功能包括: 1 ) 弹出新的浏览器窗口: 2 ) 移动、关闭浏览器窗口和改变它的大小; 3 ) n a v i g a t o r 灵j 象提供浏览器的详细信息; 4 ) l o c a t i o n 对象提供浏览页面的详细信息; 5 ) s c r e e n 对象提供用户显示器的详细信息: 6 ) 对c o o k i e 的支持; 7 ) i e 扩展了b o m ,使其可以通过j a v a s c r i p t 脚本创建a c t i v e x s 矗j 象的实例。 2 1 3j a v a s c r i p t 在网页中的用法 j a v a s c r i p t 加入网页有两种方法: 一6 一 东北大学硕士学位论文第2 章相关技术介绍 ( 1 ) 直接加入h t m l 文档:这是最常用的方法,大部分含有j a v a s 嘶p t 的网页都采 用这种方法,如: j a v a s c r i p t 语句 ,其中 用来告诉浏览器这是用j a v a s c r i p t 编写的程序,需要调动相应的解释程序进 行解释。 ( 2 ) 间接调用方式:如果已经存在一个j a v a s c r i p t 源文件( 以j s 为扩展名) ,则可以 采用这种引用的方式,以提高程序代码的利用率。其基本格式如下: ,其中的u r l 就是程序文件的地 址。如: ,其中m y j s j s 是指明了索 要执行的程序段存储的位置和文件名。 2 2 解析j a v a s c r i p t 的方法 l a v a s c r i p t ( 简称j s ) 是由n 呶a p e 开发的对象脚本语言,其特点是开发简单、功能 灵活,目前已广泛应用于w e b 页面及服务器应用程序中。h t m l 本身是静态的、不允许 用户干预,但用j a v a s c r i p t 编写的脚本程序就可以在用户的浏览器端运行,可以同用户进 行交互,从而实现动态页面。可以将j a v a s c r i p t 与嵌a , w e b 的大多数对象的事件( 如鼠标 点击、移动等) 相关联,然后用自己的方式处理这些事件。j a v a s c r i p t 提供了丰富的内置 函数及命令,能在浏览器中显示h t m l 、数值计算、多媒体播放、超级链接以及简单的 交互窗口等,还可以使在浏览器中运行的j a v a a p p l e t 应用程序的性质改变,从而很容易 地改变控件或其它对象的行为而不必深入研究其本身的结构。 在制作搜索引擎的时候、或者采集网页信息的时候,或者做页面分析及数据提取的 时候,页面中存在许多j a v a s c r i p t ,这些j a v a s c r i p t 给上述的页面处理带来了极大的困扰, 因为某些页面的重定向由j a v a s c r i p t 代码完成,或者是有相当部分页面内容写入到了这些 j s 脚本的代码中,而导致正常的d o m 分析看不到这些文字,使重定向处理及其中的文字 数据提取失败。当然,如果这个页面模板确定,针对这个特定的页面制作信息提取模板 也不难,每个页面人工的分析出需要提取的信息的位置,然后制作模板。可是对于面临 海量信息的搜索引擎来说,这几乎是不可行的。从大量的信息搜索研究中得出了解决 j a v a s e r i p t 解析的两种思路。 ( 1 ) 利用现有浏览器支持的j a v a s e r i p t 解析引擎,实现一个完整的j s 解析器,并进 行完整的页面解析,最后从解析结果中提取需要的数据。支持j a v a s c r i p t 解析的引擎有很 多,其谱系图如图2 3 。 在图2 3 中最为常用的是s p i e r m o n k e y 弓 擎。 一7 一 东北大学硕士学位论文 ( 2 ) 做一个简化的j a v a s c r i p t 解释器,执行脚本片段。 c 嗣u m p l ez c m a s c r q 幢d 崞h - 陛型 g 惦1 5 。2 1 1 2 。1 c n g sj si n t e r p r e t e r 0 2 4 n j s0 2 5 柚p h ( n e wg e n e r a t i o ns o f t w a r e ) 。 j | v o f r e ee c m a s c r f p ci n t e r p r e t e r i f 聪1 1 8 2 0 0 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论