基于IE和Gecko内核的网页内容获取与分析研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:naomi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:对基于IE内核(如IE,Maxthon)与基于Gecko内核(如Firefox)的浏览器的网页内容获取与分析的技术进行了研究,采用Visual C 6.0为平台,基于COM技术和微软的MSAA技术,采用了多种方式实现了基于以上两类不同内核的浏览器的网页内容获取,并对这几种获取方式进行了优劣比较。
  关键词:COM; DOM; MSAA; IE; Gecko; windows编程
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-936-04
  The Research of the Technique of Capturing and Analyzing the Web Page Contents Based on the Kernel of IE and Gecko
  ZHOU Zhou
  (College of Software Engineering, Beijing Jiao Tong University, Beijing 100044, China)
  Abstract: With the instant development of World Wide Web, it becomes important to capture and analyze the web page contents in order to give the customers information better arranged. This article did a research in several ways and techniques which can capture and analyze the web pages by using the Visual C 6.0, on the basis of COM and MSAA. At last the article compared all the techniques and listed distinctly their advantages and disadvantages.
  Key words: COM; DOM; MSAA; IE; Gecko; windows programming
  
  1 引言
  
  随着互联网的迅猛发展,如今我们面对的是一个包罗万象的网络世界,面对浩如烟海的信息,如何有效地提取网页信息成了一个十分重要的课题。如果掌握了相关的网页内容获取技术,将可以进行多方面的拓展活动,比如实时网页内容审查过滤、用户浏览行为分析、用户浏览网站的实时统计、网页自动化测试、为残疾人士浏览网页提供辅助功能。以上许多活动中都可能隐藏着很多潜在的商机。
  
  2 关键概念
  
  2.1 组件技术(COM)
  简单地说,COM是一种跨应用和语言共享二进制代码的方法。与C 不同,它提倡源代码重用。COM通过定义二进制标准解决了这些问题,即COM明确指出二进制模块(DLLs和EXEs)必须被编译成与指定的结构匹配。这个标准也确切规定了在内存中如何组织COM对象。COM定义的二进制标准还必须独立于任何编程语言(如C 中的命名修饰)。一旦满足了这些条件,就可以轻松地从任何编程语言中存取这些模块。由编译器负责所产生的二进制代码与标准兼容。这样使后来的人就能更容易地使用这些二进制代码。
  2.2 MSAA (Microsoft? Active Accessibility)
  Microsoft? Active Accessibility 是一种相对较新的技术。目的是方便身患残疾的人士使用电脑——可用于放大器、屏幕阅读器,以及触觉型鼠标。同样还可以用来开发驱动其它软件的应用程序,其模拟用户输入的能力尤其适合测试软件的开发。
  Active Accessibility 的主要思想是提供一种以程序方式访问UI元素信息或操作这些UI元素的功能。支持这种功能的 UI(User Interface) 元素是可访问的。在大多数情况下,这意味着一个UI元素支持 IAccessible 接口。你也可以说在 Active Accessibility 的世界里,一个可访问的UI元素可表示为 IAccessible 接口。每当你需要得到有关一个元素的信息,在其上执行一个动作,或者使用 Active Accessibility 做其它的什么,你通常需要通过使用代表这个元素的 IAccessible 接口的一种方法或者属性来引用这个元素。
  2.3 GUID (Globally Unique Identifier)
  GUID(全球唯一标示符——Globally Unique Identifier)是个128位的数字。它是一种独立于COM编程语言的标示方法。每一个接口和coclass有一个GUID。因为每一个GUID都是全球唯一的,所以避免了名字冲突(只要你用COM API创建它们)。有时你还会碰到另一个术语UUID(意思也是全球唯一标示符——universally unique identifier)。UUIDs和GUIDs在实际使用时的用途是一样的。
  
  3 程序实现
  
  3.1 IE内核浏览器网页内容获取与分析(基于COM技术)
  上述基于窗口遍历的技术有十分大的缺陷,无法对网页内容进行访问,而且更为严重的是,当前几乎所有的浏览器都支持标签式的浏览,如果采用上述的方法只能访问当前激活的标签。鉴于以上原因,我们采用COM技术来进行实现,这里的关键就是取得每个网页的IHTMLDocument2接口,这个接口封装了众多的方法,我们完全可以用它来进行丰富的二次开发。
  这里引入一个windows编程中的对象Shell Windows Object。通俗来说,shell就是用户和操作系统交互的一个接口,也就是接收和返回信息的一个通道;比如说windows操作系统中的explorer.exe,也就是桌面任务栏就是一个shell,如果通过任务管理器结束explorer.exe进程,桌面任务栏也就随之没有了。每一个网页就是一个Shell Windows Object,我们通过枚举所有的Shell Windows Object并试图获得其IHTEMLDocument2接口指针,如果成功说明这个Shell Windows Object是一个HTML容器,我们就可以通过其封装的方法进行操作。
  这里使用COM技术来取得所有网页的URL,具体程序如下:
  CComPtr <IShellWindows> spShellWin;// 定义智能指针
  CoInitialize(NULL);// 初始化COM库
  HRESULT hr =spShellWin.CoCreateInstance(CLSID_ShellWindows);// 根据指定CLSID创建一个未初始化的对象
  if (FAILED(hr)) return;
  long nCount=0;
  char URL[2000];
  spShellWin->get_Count(
其他文献
汉语流行语研究始于二十世纪八十年代。近年来,学者们专注于汉语流行语研究,取得了很多研究成果。其中,经济、文化等社会发展因素对汉语流行语的影响很大。但是,语言发展有其自身的规律,词汇的逻辑理据和语义理据对汉语流行语的传播起着不可轻视的作用。  一、汉语流行语的定义与分类  对于汉语流行语,学界尚没有统一的概念定义。综合现有观点,汉语流行语是指在一定时期内被社会大众广为流传和使用,并具有高频性、新奇性
书名:走向语文素养的阅读教学  作者:梁增红  出版社:华东师范大学出版社  出版时间:2021年  ISBN:9787576012736  定价:49.8元  阅读教学一直是语文教学中的重点。通过阅读教学培养学生的语文核心素养是当前语文教学的难点,对阅读教学的理论创新和实践探索也是当下语文教育教学研究的热点。华东师范大学出版社出版的《走向语文素养的阅读教学》,是语文特级教师梁增紅基于多年的一线教
摘要:嵌入式系统的Internet网络化的研究与应用是近几年来嵌入式应用领域的一个研究热点。该文针对应用广泛的ARM7系列的处理器为核心的嵌入式系统,对网络层协议进行了研究分析,提出了基于嵌入式封装、分用、重组方案、附属协议ICMP的回显应答功能等方案,使之适应嵌入式系统。  关键词:嵌入式系统;网络层协议;ICMP协议  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008
摘要:该文介绍了RFID技术在载货车辆称重系统中的应用,并对RFID在这个系统中数据安全问题进行详尽的分析同时给出了认为比较合理的安全策略。  关键词:RFID;安全;假名标签;Key值更新随机Hash锁  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)34-1755-03  Weight Automation Management System Combining
摘要:Sobel算子是图像边缘检测中常用的方法之一,利用像素的左、右、上、下邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向信息。本文提供了利用Sobel算子实现灰度图像边缘检测的C 源程序。  关键词:边缘检测;Sobel算子;梯度;噪声  中图分类号:TP183文献标识码:A文章编号:1009-3
摘要:在VB中变量的数据类型有很多种类,如字符型串型、数值型、日期型、布尔型等。还有一种特殊类型:可变类型(Variant)。定义了一个可变类型变量后,该变量可以存放任何类型的数据(数值、字符、日期等),这样在给变量赋值时就不用对数据进行转换了,VB系统会根据赋給变量的值的不同自动进行数据类型的转换。  关键词:变量;数据类型;可变类型;程序设计  中图分类号:TP311文献标识码:A文章编号:1
摘要:信息技术与通讯技术的发展为微格教学系统奠定了基础并且提供了新的契机,本文对微格教学系统先进行分析,介绍了微格教学系统走向数字化和网络化的优势,并对基于网络的数字微格教学系统加以设计并实现。  关键词:微格教学;数字微格;网络  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)21-30474-03    Design of Microteaching Enviro
摘要:随着多媒体教育技术飞速发展,教学过程中多媒体技术得到了广泛的应用,本文针对多媒体技术在AutoCAD教学应用中存在的问题进行了分析,通过说明多媒体技术的优点,结合传统的教学方法,不仅可以提高教学质量,还能促进学生的学习兴趣。最后针对存在的问题提出了一些科学的应用多媒体的方式和方法。  关键词:多媒体;课件;教学方式  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008
摘要:Access2003软件具有强大的数据库管理功能,同时又具有操作简单,易于学习和使用的优点,十分适合医院的基层人员在管理医疗械是使用。  关键词:Access;医疗器械管理  中图分类号:R197文献标识码:B文章编号:1009-3044(2008)22-835-02  Microsoft Access2003 (以下简称Access)是Office2003的一个套装程序,普遍装于近年出售的
摘要:随着社会主义新农村建设的不断深入,农村人民生活水平的不断提高,新农村的规划和管理也相应的提高到一个新的层次。运用现代技术手段提高新农村发展规划水平和建设的可视化效果,本文结合适普公司IMAGIS软件,对新农村建设的三维场景问题进行讨论,并且根据三维地理信息系统的原理和方法来建立农村的三维模型场景,给出了系统空间数据和属性数据的管理方法。  关键词:IMAGIS;三维地理信息系统;三维建模;高