




已阅读5页,还剩60页未读, 继续免费阅读
(通信与信息系统专业论文)互联网媒体内容监控平台的信息采集关键技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海交通大学硕士学位论文 摘 要 iii 互联网媒体内容监控平台的信息采集关键技术研究 摘 要 随着 web2.0 技术的飞速发展,互联网上动态页面所占比例越来越 大。当前,在互联网媒体内容监控领域,信息采集的主要对象仍是静态 页面,为此,本文特提出了在原有静态页面信息采集子系统的基础上, 采用 aop 编程思想对其进行扩展,加入动态页面解析程序,以便扩展互 联网媒体内容监控平台的信息采集来源。 该动态页面解析程序 (jsparser) 主要由网页分析模块、 js 解析模块、 dom 支持模块及提取 url 模块等四个模块组成,通过将浏览器内置 dom 对象与 javascript 脚本解释引擎进行绑定,脚本解释引擎可对来自 外部的 javascript 脚本片断进行逐行解析, 并以不同形式分别输出动态页 面中的超链接网络地址和页面主体内容。 最后,本文对实验结果进行了分析,实验结果表明该方案充分丰富 了互联网媒体内容监控平台的信息采集来源,是实现动态页面内超链接 网络地址递归获取和网页主体内容提取行之有效的解决方案。 关键词:aop javascript 动态页面解析 dom rhino 上海交通大学硕士学位论文 abstract iv research about core technology of information collection on internet media monitoring platform abstract with the rapid development of web2.0 technology, dynamic web page in the internet are growing rapidly, but the targets in the information collection system of internet media monitoring platform are mainly still the static web page. now, we embedded the jsparser program to expand the original system by the aop programming method in this paper, to make the information collection system sources richer. the jsparser is composed of analyzing webpage module, interepting javascript module, supporting dom module, getting url from web page module. by binding the html dom in the browser and javascript analysis engine, the javascript analysis engine can interept the outside script segment line by line, and then export the urls and content of the dynamic web page with various forms. finally, proved by the experiments, this project is an effective one for getting the urls and content of dynamic web page and enriched the 上海交通大学硕士学位论文 目 录 v information resources of internet media monitoring platform. key words: aop, javascript, analyze dynamic web page, dom, rhino i 上海交通大学上海交通大学 学位论文原创性声明学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 学位论文作者签名:尹 涛 日期:2009 年 2 月 2 日 ii 上海交通大学上海交通大学 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同 意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许 论文被查阅和借阅。本人授权上海交通大学可以将本学位论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存和汇编本学位论文。 保密保密,在 年解密后适用本授权书。 本学位论文属于 不保密 不保密。 (请在以上方框内打“” ) 学位论文作者签名:尹 涛 指导教师签名:李翔 日期:2009 年 2 月 2 日 日期:2009 年 2 月 2 日 上海交通大学硕士学位论文 综 述 1 第一章 综述 第一章 综述 1.1 课题研究的背景及意义课题研究的背景及意义 随着 internet 的迅速发展,网络正深刻地改变着我们的生活。而在网上发展最为 迅猛的 www(world wide web)技术,以其直观、方便的使用方式和丰富的表达 能力,已逐渐成为 internet 上最重要的信息发布和传输方式。随着信息时代的到来和 发展,web 上的信息如雨后春笋般迅速增长起来。 根据中国互联网络信息中心(cnnic)2008 年 7 月发布的第 22 次中国互联网 络发展状况统计报告显示,截至 2008 年 6 月 30 日,我国网民人数达到了 2.53 亿, 网民规模越居世界第一位,我国网站数量总数为 191.9 万个,年增长率为 46.3%。互 联网已经走进人们的日常生活,同时成为重要的大众传播媒体之一。其中关于网络 社区的统计中,博客/个人空间和论坛/bbs 跻身前十大网络应用,反映了中国网络应 用的新特点,社交类网络应用在中国呈兴起之势。网络社区中的论坛/bbs 访问率为 38.8%,用户规模达到 9822 万人,拥有博客/个人空间的网民比例达到 42.3%,用户 规模已经突破 1 亿人关口,达到 1.07 亿人。半年内更新过博客/个人空间的网民比例 为 28%,用户规模超过 7000 万人,半年更新用户增长率高达 43.7%。 互联网本身具有交流便捷、传播迅速等显著特征,特别是随着博客/个人空间和 论坛/bbs 的不断涌现,随着使得越来越多的社会民众通过网络来表达自己的态度、 观点、意见、要求等,从而更快速、更直接、更真实、更尖锐地映射出社情民意: 网络舆情成为影射社会舆情的实时晴雨表。 然而,我们也应更加清楚地看到,网络技术的发展同样是一柄双刃剑,它在给 我们的生活带来便利的同时,也对社会舆论以及大众文化带来了潜在的威胁。如果 不及时采取有效的管理方法和手段,将会给社会舆论安全、国家稳定与和谐带来一 上海交通大学硕士学位论文 综 述 2 系列消极影响。近几年我国通过网络爆发的重大舆情事件激增:如三鹿奶粉事件、 抵制家乐福事件、3.14 西藏拉萨打砸抢事件、范跑跑事件、山西黑砖窑事件、厦门 px 事件等,都不同程度地掀起了网络舆情浪潮,对事件发展、政府公信力、社会舆 论安全乃至国家安全造成了巨大的压力,而国家相关管理部门往往是措手不及,响 应严重滞后,这使得面向网络舆情安全的监管形势变得极为严峻和迫切。 通过互联网形成并传播的舆情信息作为社会万象的映射,使得网络舆情既可众 志成城,也可众口铄金,积非成是,甚至转化为舆情危机,对国家安全和社会稳定 带来威胁,小则诱发社会不安,大则可引起政局动荡。因此,对网络媒体进行内容 监管具有极其重要的现实意义,它能帮助完善我国的网络舆情安全保护机制,在整 个安全策略上占有重要的地位:通过对网络舆情信息进行快速获取和有效分析,能 从海量的舆情信息中剥离出那些可能给国家舆情安全带来灾难性后果的具有敏感 性、苗头性、倾向性等的各种危机因素和力量;对其进行持续跟踪、及时预警和快 速反馈,有助于及时发现社会民众思想的动态变化,对容易形成群体问题的因素及 时进行判断与处置,把握住处理危机事件的最佳时机,掌握住舆情阵地的主导权, 从而对社会舆情进行有效的掌控,切实解决我国网络舆情安全的实际需求。 因此,针对目前的形势和任务,如何对互联网发布、传输和浏览的内容进行有 效的监督、管理和引导是我国推进现代化建设,营造和谐社会的重要课题之一,也 是内容信息安全领域研究的重要方向。 近几年随着现代社会复杂程度的进一步提高,国外诸多国家都加速开展了互联 网媒体内容监控相关领域的关键理论与技术研究,以实现对舆情安全的掌控,确保 社会秩序的稳定运行。 随着反恐及国防情报对抗的需要,包括美国、英国等很多国家的科研单位与应 用机构对先进的数字化和网络化的信息内容分析系统和智能处理算法进行了广泛的 研究。目的是利用信息技术、使得情报采集和安全分析更加系统化和科学化,提升 国际反恐能力、保障国家安全、维护商业安全和个人隐私。 特别是自 911 事件以来,世界各国都加速开展了关于舆情安全与社会安全方面 的科学研究。2002 年美国白宫颁布了“国土安全国家战略(national strategy for 上海交通大学硕士学位论文 综 述 3 homeland security) ”的报告。2003 年,美国国家基金会(nsf)宣布,强制性资助 在信息技术、组织研究以及安全策略方向所展开的有关国家安全中长期研究工作。 最近几年来,我国的一些政府管理部门联合了部分国立科研机构和公司,开展 了针对特定的网络舆情信息、社会犯罪信息、网络军事情报等相关信息进行监测管 理相关的一系列系统与关键技术研发和应用系统部署工作。包括国务院新闻办、工 业与信息产业部、广电总局等部门分别已经或者即将研制部署实用系统,目标是对 相关的互联网舆情信息进行有效地搜集、整理、分析和控制,从而形成高效畅通的 网上舆情发现、分析、监管、预警、处置和反馈机制。 网络媒体内容监管的战略需求也列入了国家“十一五”863 计划,旨在通过高技 术手段为国家网络舆情分析与预警示范体系的攻破和应用提供重要支撑。国家 863 计划以探索导向的形式资助了与舆情分析预警相关的部分技术研究,如:面向舆情 的话题发现、文本倾向性分析等。国家 973 计划支持了有监督的网络信息内容分析 计算的基础理论方面研究。 目前,在互联网媒体内容监控领域,我们的主要工作是通过采集、分析和呈现 互联网媒体发布内容,为网络监管部门对网络媒体内容管控提供参考依据。互联网 媒体内容监控工作主要由针对重要网络媒体的信息采集、内容分析和结果呈现三大 环节共同组成,其中信息采集环节为后续的分析、呈现提供必要的数据原材料。信 息采集的工作原理与传统的“网络爬虫”技术类似,它起始于监控平台所关注的重 要网络媒体的起始页面,递归获取网页主体内容,及其内嵌超链接所指向的网络文 件数据。 当前,随着 web2.0 的飞速发展,特别是以 ajax 技术为代表的使用 javascript 脚 本的方法在 web 开发中得到大量应用,这在很大程度上为用户提供了更加人性化的 交互方式,但也给信息采集工作带来了很大的挑战。 一般来说,传统的网络爬虫只能提取静态页面内容,对于动态页面的采集无法 支持。因此,如何改善传统网络爬虫,使之支持动态页面解析,已经成为当前信息 采集技术中的一个研究热点。 目前对于动态页面采集的通用解决办法就是利用脚本解释引擎来模拟浏览器的 上海交通大学硕士学位论文 综 述 4 动作,去真正执行脚本代码,得到正确的结果。而在互联网媒体内容监控领域,我 们需要重点采集的信息只是相关的 url 地址以及网页中的主要文本内容,那么在实 际信息采集过程中,我们只需要解析与 url 及文本内容相关的脚本对象即可。 本文正是基于当前互联网媒体内容监控工作的现状,为丰富互联网媒体内容监 控平台的信息来源,研究了当前动态页面信息采集的相关技术,在现有互联网媒体 内容监控系统信息采集器的基础上,提出了互联网媒体内容监控平台的动态页面信 息采集的解决方案。 1.2 信息采集概述 1.2 信息采集概述 在研究动态页面信息采集之前,让我们先来看看 web 信息采集的基本情况,这 包括 web 信息采集的基本原理、基本结构和主要难题。它们是从各类 web 信息采集 系统中抽象出来的,因此代表了比较本质和共性的特征,而对于每个实际的采集系 统来说,又与它们有所差别。 1.2.1 信息采集的基本原理信息采集的基本原理 web 信息采集(web crawling) ,主要是指通过 web 页面之间的链接关系,从 web 上自动的获取页面信息,并且随着链接不断向所需要的 web 页面扩展的过程。实 现这一过程主要是由 web 信息采集器(web crawler)来完成的。根据应用习惯的不 同,web 信息采集器也常称作 web spider、web robot 和 web worm。粗略的说,它 主要是指这样一个程序,从一个初始的 url 集出发,将这些 url 全部放入到一个 有序的待采集队列里。而采集器从这个队列里按顺序取出 url,通过 web 上的协议, 获取 url 所指向的页面,然后从这些已获取的页面中提取出新的 url,并将他们继 续放入到待采集队列里,然后重复上面的过程,直到采集器根据自己的策略停止采 集。对于大多数采集器来说,到此就算完结,而对于有些采集器而言,它还要将采 集到的页面数据和相关处里结果存储、索引并在此基础上对内容进行语义分析。 上海交通大学硕士学位论文 综 述 5 1.2.2 信息采集的基本结构 1.2.2 信息采集的基本结构 web 信息采集系统基本上可以划分为七个部分:url 处理器、 协议处理器、 重复 内容检测器、url 提取器、meta 信息获取器、语义信息解析器和数据库(如图 1 所 示) ,它们协调起来从 web 上获取信息。 图 1 信息采集系统结构 figure 1 structure of information collection system url 处理器url 处理器,这个部件主要给待采集的 url 排序,并根据一定的策略向协议处 理器分配 url。按照采集系统规模的不同,url 可以是多个采集队列,也可以是一 个 url server。 比如 google 采集系统就使用了 url server, 以达到更快的处理速度。 url 处理器主要有三个数据来源:1)初始的种子 url 集;2)从 url 提取器传输过 来的 url 集,它们是从已经采集到的页面中提取出来的;3)页面的 meta、主题以及 摘要等信息,来自 meta 信息获取器,它们主要用来显示从 url 提取器中传输过来 的 url 的重要性,为在这里排序提供依据。另外,url 处理器还有一个任务就是 dns 解析。 协议处理器协议处理器,这个部件处于系统的底层,主要通过各种 web 协议来完成数据的 采集。一般来说协议包括 http、ftp、gopher 以及 bbs,也有些采集系统根据应用 的需要采集 web chat、icq 等特殊信息。目前的采集系统主要以 http 协议为主。 web url 处理器 url 提取器协议 处理器 meta 信 息获取器 重复内容 检测器 语义信息 解析器 数据库 上海交通大学硕士学位论文 综 述 6 重复内容检测器重复内容检测器,web 上存在着大量的镜像页面和内容,最近的研究表明,将 近 30%的页面是重复的。这极大的浪费了网络的带宽和影响了系统的效率。所以,重 复内容检测变成了采集系统,特别是大型采集系统的重要组成部分。要采用的检测 方法,根据系统的需要,从简单的段落匹配到复杂的相似度比较中选择。 url 提取器url 提取器,对于采集到的页面,经过重复内容检测后,需要分析其中的链接, 并对链接进行必要的转换,这些任务由 url 提取器来完成。首先判别页面类型,对 类型为“text、html、shtml 和 htm”等的页面进行分析链接。页面的类型可由应答头 分析得出,有些 www 站点返回的应答信息格式不完整,此时须通过分析页面 url 中的文件扩展名来判别页面类型。 需要分析的标记包括、 、 和等。页面链接中给出的 url 可以是多种格式的,可能是完整的 包括协议、站点和路径的,也可能是省略了部分内容的,或者是一个相对路径。为 处理方便,一般先将其规格化成统一的格式。 meta 信息获取器meta 信息获取器,这里所要获取的内容包括已采集页面的 meta 信息、anchor 信息、页面的标题、页面的摘要等。获取它们的主要目的是力图在没有对页面内容 语义信息进行理解的前提下,尽可能多的挖掘 meta、结构等的语义信息,来为从这 些页面中提取出来的 url 的好坏,给出一个度量。度量的结果传输到 url 处理器, 用于排序。 语义信息解析器语义信息解析器,根据采集策略的不同,有些采集器还有语义信息解析器。这里 所说的语义信息解析就是指对文本内容建立简单的索引。因为它在一定程度上挖掘 了页面内容的语义,所以叫做语义信息解析器。对于一些大型的信息采集器,比如 alta vista,由于采集的信息量很大,对语义挖掘的深度要求较高,所以一般将页面 语义挖掘与信息采集独立开来,而用专门的 indexer 等部件进行处理。对于一些轻量 级的采集系统,比如基于用户个性化的采集,因为采集的信息量不大(这样语义信 息解析就不太影响采集效率)和采集过程中更需要语义信息制导,所以它们也常用 到语义信息解析器。 数据库数据库,经过重复内容检测后的页面数据、提取出来的 meta 信息、主题和摘要 上海交通大学硕士学位论文 综 述 7 等都要存入数据库,以备其他应用使用。比如,对于 google 这样的搜索引擎,这个 数据库中的内容将用于建立索引。如果系统有语义信息解析器,则解析出来的内容 也存入数据库。由于数据较多,所以在存入数据库之前,数据一般要进行压缩。 1.2.3 信息采集面临的困难和相应手段 1.2.3 信息采集面临的困难和相应手段 第一,web 中的信息是完全异构、混乱和无序的,文件格式各式各样,网络状 况也随时间变化莫测。所有的这些不确定因素,为系统实现带来了极大的困难。这 就要求采集系统有完善的异常处理和故障恢复机制,充分考虑到实际网络环境中可 能出现的各种情况。 第二,多线程与并行机制使系统变得非常复杂。在这种复杂的环境下,系统的许 多瓶颈变得异常突出,并需要采用多种设计技巧来解决。比如说,对一个网站的采 集不能过分集中,以防止造成网站负担过重,google 中的页面采集就是同时采集多 个站点,在 google 中,系统为每一个采集器都配了一个 dns 缓存服务器,以加快 dns 解析的速度。 1.2.4 信息采集的分类 1.2.4 信息采集的分类 目前,web 信息采集技术的发展正如火如荼,在传统的 web 信息采集技术的基 础上,又出现了许多轻型的各具特色的采集技术。目前一般把 web 信息采集的发展 方向分为以下几种:基于整个 web 的信息采集(scalable web crawling),增量式 web 信息采集(incremental web crawling),基于主题的 web 信息采集(focused web crawling), 基于用户个性化的 web 信息采集(customized web crawling), 基于 agent 的 信 息 采 集(agent based web crawling),迁 移 的 信 息 采 集 (relocatable web crawling),基于元搜索的信息采集(metasearch web crawling)。实际系统往往是以 上几个采集技术的结合。下面分别予以介绍。 上海交通大学硕士学位论文 综 述 8 基于整个 web 的信息采集 这种信息采集在国外也常叫做 scalable web crawling,是一种较传统的采集思 想。 主要是指目标为从一些种子 url 扩充到整个 web 的信息采集。 这种信息采集主 要是作为门户搜索引擎和大型的 web 服务提供商的数据收集部分。对于这类信息采 集来说,由于采集的范围和数量都非常巨大,所以对采集速度和存储空间要求很高; 由于目标是采集整个 web,所以对采集页面的顺序要求相对较低;由于待刷新的页 面太多,尽管并行很多的采集器,但仍需数周乃至数月的时间来刷新一次,而且, 随着并行采集器数量的增加,整个系统能力的提高越来越小,稳定性也越来越低。 但是,这类信息采集又不能没有,人们不光有个性化需求和具体主题的需求,还有 许多广泛主题的需求,而由这类 web 信息采集器构建的搜索引擎,恰恰适合搜索广 泛的主题。事实上,这类信息采集仍有很强的应用需求,目前在实际应用中占较为 主流的地位。 增量式 web 信息采集 这种信息采集在国外也常叫做 incremental web crawling。传统上,web 采集器 根据自己的需要采集足量的信息后停止采集,当一段时间后这些数据过时后,它会 重新采集一遍来代替原有的采集信息,这种采集器称作周期性 web 采集器(periodic web crawler)。而另外一种方法,对待旧的页面采用增量式更新,也就是说,采集器 只需要采集新产生的或者已经发生变化的页面,而对于没有变化的页面不进行采集。 理想状况中,已采集到的信息应该和 web 中的信息是一致的,然而实际上 web 的动 态性、异构性和复杂决定了采集到的信息在相当短的时间内就可能过时,那种理想 是不实现的,我们能够做的就是尽量逼近这种理想。和周期性信息采集相比,增量 式信息采集能极大地减小数据采集量进而极大地减小采集时空开销,因此它成为实 际采集系统的首选,目前我们在互联网媒体内容监控系统中使用的就是增量式 web 信息采集。 上海交通大学硕士学位论文 综 述 9 基于主题的 web 信息采集 主题 web 信息采集,也称 topic-specific crawling,主要是指选择性地搜寻那些 与预先定义好的主题集相关的页面进行采集的行为。由于 www 的爆炸性增长,传 统的 web 信息采集方式的速度越来越不能满足实际需要,而且对于传统的信息采集 而言,刷新一遍需要数周到一个月的时间,使得页面的失效率非常大。一个好的缓 解办法就是采用主题采集,通过减小采集页面的数量来减小刷新时间,进而减小已 采集页面的失效率。传统的信息采集要消耗很多系统和网络资源,而他们中大部分 利用率都很低,基于主题的采集有效地提高了采集到页面的利用率。 由于互联网媒体内容监控系统是根据网络监控部门的监控要求来对某些敏感信 息或敏感站点进行监控和采集。因此,从这个意义上来说,互联网媒体内容监控系 统中的信息采集子系统也是一种基于主题的 web 信息采集系统。 基于用户个性化的 web 信息采集 不同的用户对一个搜索引擎提交同一个检索词,他们期望的返回结果是不同的, 然而搜索引擎却只能返回相同的检索结果,这显然不能完全满足用户的需要。为此, 采集系统的设计者把目光投向了基于用户个性化的 web 信息采集(customized web crawling)。这是一种轻量级的采集系统,它的目标就是通过用户兴趣制导或与用户 交互等灵活手段来采集信息。系统根据实际需要可以直接把采集结果提供给用户, 也可以先存储起来等到以后再提供。这种个性化信息一般有两个来源,第一个是用 户手工在系统提供的个性化设置页面里设置,这里主要考虑的问题是如何全面灵活 简单的提供这种设置,使得用户的各种喜好都能够表达。第二个是系统自动获取, 通过跟踪用户的浏览习惯和兴趣等。 基于 agent 的信息采集 随着智能 agent 技术的发展,agent 与信息采集相结合的技术也逐渐热门起来, 上海交通大学硕士学位论文 综 述 10 这种采集技术叫做 agent based crawling。智能 agent 系统是指一种处于一定环境下 包装的计算机系统,为了实现设计目的,它能够在该环境下灵活地自主地活动。它 除了具有自治性(agent 运行时不直接由人或其它东西控制,它对自己的行为和内部 状态有一定的控制权)、 社会能力(多个 agent 体之间信息交换和协作)、 反应能力(对 环境的感知和影响)和自发行为(agent 的行为是自主的),还具有一般人类所有的知 识、信念、意图和承诺等心智状态,这使得智能 agent 系统具有人类的社会智能。它 的这些特点使得它在面临诸如基于主题和用户个性化的采集时,更加方便灵活和适 应力强。比如说在基于用户个性化的采集中,它能像人一样感知用户的兴趣变化, 自主地灵活地智能地调整采集策略。 迁移的信息采集 这种信息采集器也叫 relocatable web crawler。在采集时,它并不像其他采集器 在本地向 web 站点服务器发页面请求,而是将自己上载到它所要采集的服务器中, 在当地进行采集,并将采集结果压缩后,回传到本地。这样做的一个明显优点是大 量的节省了 web 资源,大量的剪裁工作将在被采集对象的服务器上完成。但明显的 一个不利是采集器可能并不被被采集对象所信任,因为这样被采集站点会由于给访 问者权限太大而易遭到病毒攻击。解决的办法是建立一种信任机制,采集器由权威 的信任机构评估并授权。还有另一种方法,采集器先迁移到离被采集站点很近的地 方实施采集,这种方法是迁移到被采集站点方法和不迁移方法的折衷。 基于元搜索的信息采集 元搜索引擎(metasearch)的研究一直是搜索引擎研究的一个热点。它是这样一 种搜索引擎系统,对用户提交的查询请求通过多个领域或门户搜索引擎搜索,并将 结果整合后以统一的界面提交给用户。一般元搜索引擎并不保存 web 页面的索引文 件,但对于一些复杂的元搜索引擎,它要保存为它服务的每个搜索引擎的信息特征, 以便能够在用户查询到来后做出好的搜索引擎选择。作为搜索引擎先头部队的信息 上海交通大学硕士学位论文 综 述 11 采集器, 在元搜索引擎中有相当的退化, 但仍为 web 采集的一个方向,叫做基于元搜 索的信息采集(metacrawler)。 1.3 本文安排 1.3 本文安排 本论文共分六章。 1)第一章 综述。本章主要介绍论文的背景和意义,以及当前信息采集技术的相 关知识概述。 2)第二章 动态页面解析的研究现状。本章主要介绍了动态页面与静态页面的相 关概念及区别,同时介绍了当前动态页面解析的主要方法。 3)第三章 aop 编程思想简介。主要介绍了 aop 技术的发展、原理及应用,并 介绍了当前主流的 aop 语言 aspectj。 4)第四章 信息采集子系统设计与实现。主要介绍了页面分析、js 解析、dom 支持以及提取 url 及文本等四个模块的实现,同时,介绍了 aop 编程思想在信息 采集子系统实现过程中的应用。 5)第五章 实验结果和分析。介绍了动态页面解析的实验结果和相关数据统计。 6)第六章 结束语。总结了论文中的创新点,并展望了动态页面解析需要继续优 化和实现的问题。 上海交通大学硕士学位论文 动态页面解析的研究现状 12 第二章 动态页面解析的研究现状 第二章 动态页面解析的研究现状 要在互联网媒体内容监控系统中采集相应的动态页面,以获取相应的舆情信息, 首先我们必须对互联网中的动态页面进行解析,所谓对动态页面进行解析,实际上 就是模拟浏览器的相关动作,使之静态化。这一章我们重点叙述动态页面与静态页 面之间的区别以及当前动态页面解析的主要方法。 2.1 动态页面与静态页面 2.1 动态页面与静态页面 在研究动态页面解析之前,我们先来看看动态页面与静态页面之间的区别。动 态页面与静态页面之间的主要区别在于页面中是否含有浏览器端执行的脚本代码。 对于互联网媒体内容监控平台来说,我们所要关注的浏览器端执行的脚本代码 主要有两种:一是通过运行脚本代码得到 url 链接,二是通过运行脚本代码得到文 本内容。因此,仅就互联网媒体内容监控领域来说,我们所指的动态页面只是一种 狭义上的动态页面。即只有当网页中的 url 地址或主体文本内容信息隐藏在脚本代 码中时,我们才称其为动态页面,这时我们需要采用动态页面解析技术,使之静态 化,也就是说,将隐藏在脚本中的 url 地址和主题文本内容信息象静态页面一样呈 现出来(其他的脚本嵌入网页的情况,我们在具体信息采集过程中,仍作为静态页 面进行处理) 。 一般来说,静态页面的主体内容及其内部包含的超链接网络地址分别以文本信 息和唯一资源标识符 (url) 的方式直接嵌入页面源文件的 html 标记 (tag) 中 (如 图 2 所示) 。在图 2 中,链接“广州今起可电话订火车票” ,我们在源文件可以看到, 它直接采用静态的标记进行标记,因此,我们可以使用传统的 html 标记识 别的方法,实现静态页面主体内容与其内部所含超链接网络地址的提取功能,从而 完成针对重要网络媒体发布内容的递归采集工作。 上海交通大学硕士学位论文 动态页面解析的研究现状 13 图 2 静态页面示例 figure 2 a sample about static web page 然而,动态页面大多都采用后加载技术,也就是采用脚本语言(如 javascript) 去动态加载内容,最典型的就是个人博客/blog 和论坛/bbs 的网页,很多模块都 是后加载进来的。对于传统的网络爬虫来说,他只会抓取网页,然后分析网页的内 容,如果利用传统的网络爬虫来抓取个人博客/blog 和论坛/bbs 的网页的话,看 到的除了 head 区域,其他的就没有内容了,因为传统的网络爬虫不会执行动态页 面中的脚本代码片断。如图 3、图 4 中所示,其中图 3 是第一类动态页面及其源文件 范例,页面上每个超链接的网络地址需要浏览器执行源文件中对应的脚本片断才能 间接获得,如帖子“范跑跑羊类的最佳形象代表” ,在源文件中我们可以看到,它 是使用 javascript 脚本语言, 通过调用函数 document.write(),将 url 地址链接隐藏在 函数内, 这种情况下, 我们必须执行 document.write()函数, 才能得到 url 地址链接; 图 4 是第二类动态页面及其源文件范例,页面源文件里并不包含网络浏览器中呈现 的网页主体内容。 在图中文本内容片段 “下班回家” , 我们在源文件中根本无法找到, 这时网页主体内容隐藏在具体的脚本片断中,浏览器实现页面内容显示前同样需要 首先执行与其相关的脚本片断,才能得到文本片断内容。据统计,在互联网上,我 国页面总数统计中,静态网页数和动态网页数分别为 20.25 亿个和 24.47 亿个,动态 网页占总页面数的 50以上,其中以 javascript 语言编写的动态页面最为流行。 上海交通大学硕士学位论文 动态页面解析的研究现状 14 图 3 动态页面示例一(凯迪社区) figure 3 the first sample about dynamic web page(club.k) 图 4 动态页面示例二(讯雷 blog) figure 4 the second sample about dynamic web page(blog.x) 从以上论述中我们不难发现,传统的 html 标记识别的方法无法完成对于动态 页面主体内容,及其所含超链接网络地址的提取工作。正是由于这一原因,当前互 联网媒体内容监控平台的信息采集环节往往无法完成对以动态页面为主要发布形态 的互联网媒体信息实现超链接递归获取功能,无法完成对于动态页面主体内容的提 取工作。考虑到如果互联网媒体内容监控平台只能对以静态页面发布信息的网络媒 体数据展开分析、研判,最终形成的监控参考数据必然有失偏颇,因而,本文基于 互联网媒体内容监控系统原有信息采集器, 重点研究关于 javascript 动态页面内嵌超 链接以及页面主体内容的解析与提取技术,使之能支持动态页面的信息采集,以扩 充互联网媒体内容监控平台的信息采集来源,提高对网络舆情监控的有效性,切实 上海交通大学硕士学位论文 动态页面解析的研究现状 15 提高互联网媒体内容监控平台的功能能级。 2.2 动态页面解析方法动态页面解析方法 关于动态页面解析,即内嵌超链接与页面主体内容的提取,现阶段主要存在如 下两种解决方案。一是使用完整的开源浏览器(如 firefox)接口全面渲染动态页面 所有数据,然后根据浏览器的输出结果中提取页面主体内容,以及超链接所对应的 网络地址。二是利用现有的开源脚本解释引擎(如 rhino,spidermonkey 等) ,根据 信息采集的需要,将相关 dom 对象与 js 脚本解释引擎进行绑定,然后根据解析结 果进行采集, 实现动态页面中与主体内容和超链接url相关的脚本片段的采集功能。 下面分别就这两种方法分别详述。 2.2.1 整体渲染动态页面的解析方法 2.2.1 整体渲染动态页面的解析方法 在实际系统的开发中,我们可以采用 gecko(firefox)或者 trident(ie)这些用于浏 览器的 html 渲染引擎来对页面进行完整的解析和渲染。最后对这些引擎的解析结 果进行分析。目前应用比较多的主要是 jrex 组件。 jrex 是一种 java webbrowser 组件, 该组件封装了 mozilla 的 gecko 库, 提供 java 类库给应用程序调用。利用 jrex,可以写一个 java 应用程序访问某个页面,然后等 该页面下载完毕并且执行了 javascript 脚本语言后,jrex browser 引擎把文档转换成 dom 模型,重新结构化该 html 页面,从而得到与动态页面相对应的完全静态页 面,由此,我们再按照传统的提取 url 及文本内容方法提取得到相关的 url 链接 和主体内容。工作过程如图 5 所示。 上海交通大学硕士学位论文 动态页面解析的研究现状 16 图 5 基于 jrex 渲染引擎的动态页面解析过程 figure 5 analysis process of dynamic web page base on jrex engine 从图中我们可以看出,由于渲染引擎 jrex 已经能支持浏览器内置的所有 dom 对象,因此可以直接对动态页面进行解析,不需要构建相应的 dom 环境。但是采用 jrex 渲染引擎对 js 脚本进行解析,虽然能获得与浏览器呈现结果更为接近的解析效 果, 但由于渲染引擎基本上是一个浏览器的完整实现 (只是没有浏览器的图形界面) , 消耗资源相对要大得多,性能相对较差,而且由于其是对整个页面的完整解析,因 此提取了很多与页面中的主体文本内容和 url 链接无关的信息,针对性和有效性都 不强,如在互联网媒体内容监控平台上应用 jrex 渲染引擎对 js 脚本进行解析,不太 合适。 2.2.2 2.2.2 对脚本解释引擎进行功能扩展的解析方法 对脚本解释引擎进行功能扩展的解析方法 这种方法主要是采用 js 脚本解释引擎为工具,由于当前常用的 js 脚本解释引 擎无法识别 js 脚本片段中所包含的浏览器内置 dom 对象,因此,我们需要对脚本 解释引擎进行相应的功能扩展, 使之能支持浏览器内置 dom 对象的解析。 这种解析 方法基本的思路是:首先对网页文件进行 html 解析之后,形成 dom 树,提取 js 脚本,然后将相应浏览器 dom 对象与 js 解释引擎进行绑定,使 js 解释引擎能识别 浏览器 dom 对象,最后将 js 代码交给 js 解释引擎进行解析输出。 相对于渲染引擎(jrex)对 js 脚本进行解析不同,采用对 js 脚本解释引擎进行 动态页面 jrex 渲 染 引 擎 静态页面 提取 url 地址 url 地址 主体内容存储 url 队列 上海交通大学硕士学位论文 动态页面解析的研究现状 17 功能扩展的方法来对动态页面进行解析,针对性更强,执行效率更快,方案实现过 程中使用的资源空间更少。正是由于这一原因,从开源浏览器项目中选取合适的脚 本解释引擎,并进行适当扩展,使之能模拟浏览器动作,支持相应 dom 对象,已经 成为当前动态页面解析工作的主流技术。 目前应用的 js 脚本解释引擎较多,这里,我们主要介绍两种应用较广的 js 解 释引擎 spidermonkey 和 rhino。 spidermonkey 简介 spidermonkey是由开放源码浏览器mozilla开发小组开发的javascript解释引擎。 spidermonkey作为一个单独的组件,以c语言源代码形式发布,可以编译成win32平台 下的动态链接库(dlls),或者各种unix平台下的共享库。spidermonkey提供一组 api(应用程序调用接口)供应用程序调用,因此spidermonkey是一个嵌入式的,和应 用程序共享进程地址空间的javascript解释引擎。 rhino 简介 rhino 是由开源浏览器项目mozilla 开发小组发布的, 使用 java 语言编写的 脚本解释引擎。rhino 不仅可以独立运行,还为具体应用的实现提供了一系列的应用 程序调用接口(api) 。 rhino 的主要功能是脚本执行时的运行时管理。 它的运行环境是指用来保存所要 执行的脚本中的变量、对象和执行上下文的空间。所谓执行上下文(context)是指 引擎中的每一个执行线程在某一时刻的状态,包括此线程中的各个寄存器,程序计 数器(即下一条指令地址)以及运行栈的值。一个线程必须拥有一个独立的执行上 下文,但一个运行时环境可以包含多个执行上下文。运行时环境中的变量和对象由 运行时环境内所有的执行上下文共享,即一个执行上下文创建的变量或对象其他上 下文也可以访问,由运行时环境负责处理变量或对象访问时的同步和互斥问题。运 行时环境和执行上下文是执行脚本语句的场所,因此在应用程序中应首先调用 api 上海交通大学硕士学位论文 动态页面解析的研究现状 18 函数建立一个运行时环境,建立若干个执行上下文,然后调用相应的 api 函数建立 脚本语言的内置对象。 利用 rhino 的执行 javascript 语句 api 可以创建 javascript 对象:只要写一段定 义 javascript 对象的 javascript 代码,将此代码传递给引擎执行,便在运行时环境内 创造了此对象。 另外引擎还提供了在应用程序中用 java 语言本地变量创建 javascript 对象的接口,这样才使 rhino 有了极好的可扩展性。 rhino 中包含主要的类如下: contextaction:java.lang.object run(context cx) 当 rhino 运行时调用该方法时, context 将与当前线程通信,作为当前执行的上下文。 scriptable:该接口是所有可以在 js 下运行的类的父类,它定义了所有需要的方 法。如:getclassname()、get()、put()、getprototype()/setprototype()、getparentscope ()/setparantscope()、getids()等。 scriptableobject:它是对 scriptable 的基本扩展,scriptableobject 是 rhino 最重 要的抽象类,它默认处理了大部分 scriptable 的接口,它主要的功能是:对 js 属性进 行扩展、对 js 属性进行查找、java 与 js 通信的支持等。 function:该类为 js 函数接口,它定义了每个可以作为函数来用的规范,主要包 含两个方法:call()和 construct()分别表示基本方法的调用和构造方法的调用。 rhino 仅仅只能支持 javascript 内置的对象,如:array、boolean、date、math、 number 和 string 等,所以只能执行一些比较简单的 js 代码,而对于网页中比较复 杂的 js 代码,必须要对 rhino 进行扩展,使之支持 dom 操作。 与 spidermonkey 相比,rhino 的优势在于可以实现从 java 对象到动态页面脚本 片段常用语言javascript 对象的直接映射,这有利于简化关于脚本解析环境的构 建工作,减少脚本解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多人合伙经营车辆协议书
- 读博协议算不算劳动合同
- 明星饭店合伙人协议合同
- 旧货车融资租赁合同范本
- 合伙开养殖公司合同范本
- 业务保密合同协议范本
- 购买地热放水阀合同范本
- 贷款公司授权拖车协议书
- 钢结构生产安装合同范本
- 草药土特产收购合同范本
- 早产儿的治疗及护理课件
- GB/T 44982-2024绿色产品评价日用陶瓷
- 智慧交通政策解读及关键技术相关介绍宣传讲解
- 8.1《梦游天姥吟留别》课件 2024-2025学年统编版高中语文必修上册
- 兽用药品批次追踪与追溯系统考核试卷
- 医院信息透明化责任追究机制
- 《上腔静脉综合征》课件
- 果胶功能化产品开发
- 人教川教版一年级上册生命生态安全全册教学课件
- 塞力斯招聘在线测评题
- 西方现代思想讲义
评论
0/150
提交评论