CN103092936A - 一种物联网动态页面实时信息采集方法 - Google Patents

一种物联网动态页面实时信息采集方法 Download PDF

Info

Publication number
CN103092936A
CN103092936A CN201310005966XA CN201310005966A CN103092936A CN 103092936 A CN103092936 A CN 103092936A CN 201310005966X A CN201310005966X A CN 201310005966XA CN 201310005966 A CN201310005966 A CN 201310005966A CN 103092936 A CN103092936 A CN 103092936A
Authority
CN
China
Prior art keywords
page
html
module
internet
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310005966XA
Other languages
English (en)
Other versions
CN103092936B (zh
Inventor
孔英会
沈丹凤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING DIWINET TECHNOLOGY CO., LTD.
Original Assignee
North China Electric Power University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by North China Electric Power University filed Critical North China Electric Power University
Priority to CN201310005966.XA priority Critical patent/CN103092936B/zh
Publication of CN103092936A publication Critical patent/CN103092936A/zh
Application granted granted Critical
Publication of CN103092936B publication Critical patent/CN103092936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

一种物联网动态页面实时信息采集方法,所述方法分为四个部分,涉及四个模块,这四个模块分别是加载页面模块、获取页面HTML模块、解析所得HTML模块和数据存储模块,加载页面模块通过网络链接地址加载外部页面,并将加载的动态页面传递给获取HTML模块,由获取HTML模块获取该页面的HTML文档,同时将所获得的HTML文档传递给解析HTML模块,解析HTML模块通过定位技术从得到的HTML文档中解析出所需要的文本内容,并将这些文本内容传给数据存储模块进行存储。本发明实现了物联网实体动态信息的实时获取及存储,而且不需要连接服务器上的数据库,具有良好的可扩展性,能满足物联网海量数据量的处理要求。

Description

一种物联网动态页面实时信息采集方法
技术领域
本发明涉及一种基于Watir的可实时获取物联网实体信息的方法,属于数据处理技术领域。
背景技术
物联网(Internet Of Things)泛指“物物相连的互联网”。它的核心和基础是互联网,是在互联网基础上延伸和扩展的网络,其用户端延伸和扩展到了任何物品与物品之间。物联网把任何物品与互联网相连接,进行信息交换和通信。随着嵌入式传感器在各领域的广泛应用,物联网技术已经逐渐融入到人们的生活中。物联网的应用非常广泛,遍及智能交通、环境保护、仓储物流、公共安全、工业检测、平安家居等,几乎涉及到生活中的任何一个领域。物联网包含了海量的实体,这些实体每时每刻都会有新的状态,例如,通过传感器感知室内各种状况,温度,湿度还有光照程度等,感知道路的实时拥堵信息等。要实现对物联网的智能控制以及扩展对物联网的应用,就必须对这些海量实体的实时信息进行搜索分析,从这些海量实体返回的实时状态数据中搜寻得到有用的信息。例如,通过传感器感知的室内状况,搜索出特定温度的房间;通过道路的实时拥堵信息查找到不拥挤的道路;通过包裹传来的信息搜索受损的包裹等等。而获取物联网实体实时信息是这一切的前提条件。物联网实体信息通过网页实时发布,如何通过现有的互联网在动态网页上采集到这些实时跳变的数据成为了物联网研究领域的重要课题之一。
根据网页中是否含有浏览器执行脚本,将网页分为静态网页和动态网页。静态网页的主体内容及其内部包含的超链接网络地址分别以文本信息和统一资源标识符(URL)的方式直接嵌入网页源文件的标记中。而动态网页中除了包含少量静态URL外,还含有大量必须通过浏览器执行脚本才能得到的超链接网络地址和网页主体内容。物联网实体实时信息发布就是通过动态页面实现,物联网实验平台将传感器感知到的信息使用Push方式推送到服务器端,通过JavaScript脚本动态加载到网页中,从而使页面数据实时更新,房间内的温度,湿度,光照一有变化,马上就能反映到页面上。
对于静态网页,可以使用传统的网络爬虫抓取页面,通过HTML标记识别的方法,实现页面主体内容与其所含超链接网络地址的提取功能。但对于动态网页,传统的网络爬虫无法获取页面内容,更不能用传统的HTML标记方法提取到页面中实时跳变的数据。动态页面内容的获取方法有多种,但均不能实时获取页面跳变的数据。文献“金晓鸥,钟宝燕,李翔所著的基于Rhino的JavaScript动态页面解析研究与实现[J].计算机技术与发展,2008,18(02):01-04,50.”中所述的方法脚本解释引擎Rhino无法识别JavaScript脚本片段中包含的HTML DOM(文件对象模型,是W3C组织推荐的处理可扩展置标语言的标准编程接口),在把动态网页脚本片段传递给Rhino前,需要先对脚本片段中的HTML DOM实现本地创建,给出每个HTML DOM的方法和属性描述。所述方法用时长且对于大量JavaScript加载网页来说非常繁琐。文献“万久士,李翔,林祥所著的基于JSSh的动态网页获取研究与实现[J].信息安全与通信保密.2010(04):93-95.”中的基于JSSh(Javascript Shell Server)的方案一次HTTP请求仅获取一次DOM信息,请求等待回应耗时长,无法满足实时动态的要求。
    综上所述,对于物联网实时动态页面数据的获取,在应对页面数据的动态性的同时要保证获取数据的实时性,以及所得到的数据对后续搜索分析工作的可扩展性。但是目前的网络爬虫或者页面采集工具无法实现动态数据的实时抓取,同时所得到的数据格式单一,可扩展性差。
发明内容
本发明的目的在于针对现有技术之弊端,提供一种物联网动态页面实时信息采集方法,以实现物联网动态页面信息的实时抓取。
本发明所述问题是以下述技术方案实现的: 
一种物联网动态页面实时信息采集方法,所述方法分为四个部分,涉及四个模块,这四个模块分别是加载页面模块、获取页面HTML模块、解析所得HTML模块和数据存储模块;其中,加载页面模块通过网络链接地址加载外部页面,并将加载的动态页面传递给获取HTML模块,由获取HTML模块获取该页面的HTML文档,同时将所获得的HTML文档传递给解析HTML模块,解析HTML模块通过定位技术从得到的HTML文档中解析出所需要的文本内容,并将这些文本内容传给数据存储模块进行存储。
上述物联网动态页面实时信息采集方法,所述方法具体按以下步骤进行:
1)   首先通过“Watir::Browser.new”创建一个浏览器实例,从而来模拟浏览器的操作,通过“goto('http://10.14.11.100/sh/index.jsp')”方法加载到物联网智能家居动态页面;
2)   在Watir模拟浏览器的过程中,通过“onclick”方法模拟点击操作,对步骤1)中加载的页面实现翻页功能,通过“li(:id, 'mainlevel_02').links[0].click”方法实现模拟点击翻页操作;
3)   通过IFrame框架的src属性使Watir定位到“jsp/wsd.jsp”,即用方法“.frame(:src, 'jsp/wsd.jsp')”实现定位,其中“jsp/wsd.jsp”即为步骤2)中翻页后动态显示实时跳变数据的JavaScript模块;
4)   利用Watir的等待机制以及Ruby的休眠机制来控制等待加载动态页面的时间,即通过“.wait”方法和“sleep()”方法实现等待;
5)   Watir通过“.frame.html”方法获取步骤3)中框架下的HTML文档;
6)   Nokogiri通过“Nokogiri::HTML.parse”方法爬取步骤5)获得的HTML文档,并进行解析;
7)   Nokogiri通过“.css('div.shiduqu div.shidu').text”方法对步骤6)中爬取的HTML文档实现CSS Selector定位功能,返回文本内容;
8)   利用Ruby中的File类创建文档,用来存储步骤7)中返回的文本数据,通过“File.new("#{i}.txt","w")”方法实现创建txt文档,并将内容写入文档中, 其中“#{i}”即为文档名,通过变量i来控制;
9)   判断是否执行循环条件,从而实现循环存储的功能,即每循环一次就创建一个新的文档。
本发明实现了物联网实体动态信息的实时获取及存储,而且不需要连接服务器上的数据库,具有良好的可扩展性,能满足物联网海量数据量的处理要求。
附图说明
下面结合附图对本发明作进一步说明。
图1是物联网实时数据获取模块框架图;
图2是物联网动态页面五大模块的HTML片段;
图3是IFrame下的HTML文档片段;
图4是本发明的流程图。
具体实施方式
本发明中需要用到Web自动化测试框架Watir,Ruby解析XML、HTML库Nokogiri,CSS Selector等技术,这些技术分别描述如下:
1)自动化测试工具Watir
Watir全称为“Web Application Testing in Ruby”,是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它小巧,灵活,提供了很多功能。Watir可以模拟对IE进行各种操作,如:点击链接、填写表单、点击按钮及页面校验。Watir可扩展使用Ruby的所有类库。文中采用Watir加载物联网动态页面,所需页面元素定位等操作。
2)HTML/XML的Ruby库Nokogiri
关于Ruby解析XML,HTML的插件有很多,其中最出名的有Hpricot和Nokogiri。Nokogiri的速度比目前应用广泛的Hpricot要快许多。经过Benchmark测试表明,Nokogiri在加载XML文档的速度是Hpricot的7倍,在XPath(XML路径语言)搜索的速度是Hpricot的5倍,而在CSS选择器的搜索上面是Hpricot的1.62倍。因此Nokogiri被认为有可能取代Hpricot的新一代Ruby的解析库,他能够解析HTML/XML文件,能够提供XPath支持,CSS选择器支持。
3)CSS Selector 
CSS Selector可以粗略分成几类基本的类型:ID选择器(#id),Class选择器(.class),类型(type)选择器(p),Combinators,属性(Attribute)选择器,Pseudo Classes选择器等。这些都是单一的选择器,可以在应用中把它们组合起来,如:div#id, div:last-child。
可以把CSS selector分成两大类,第一类是选择(selector),从根据给定的selector从DOM树找到相关的元素节点放到结果集中来。第二类是筛选(filter)。在结果集中判断该元素是否满足表达式。这样就完全可以使用JS(JavaScript)的原有直接或间接对DOM元素进行引用的方法,如div#id就可以变成先找到div的元素,之后判断其元素的id是否等于id,如果不等于就从结果集中删除掉。类型选择器,Combinators统一称为元素选择器,其形式如下:*,E F,E~F,E+F,E>F,E/F,E。对于ID选择器和Class选择器,它们可以在selector字符串的起始位置,也可以完成选择(selector)功能。当它们不在起始位置上,如div#id,div.class时他们就是筛选器。对于ID选择器,它有专门的函数来处理,是选择(selector)器。对Class选择器,它是筛选器,特殊情况就是对于*标签取到元素集进行筛选。 其它如属性(Attribute)选择器,Pseudo Classes都是筛选器,只能附在一个元素或多个元素后面。特殊情况就是对于*标签取到元素集进行筛选。
本发明针对华北电力大学现代无线通信实验室(物联网实验平台)所提出,但其应用广泛,可以扩展到任何物联网平台及物联网应用层。
物联网实验平台中有一个智能家居子系统,该智能家居房间内有电灯,空调,窗帘等实体,与它们相关联的为各种功能的传感器,来感知这些实体的实时信息,有感知光照强度的光照传感器,感知屋内温湿度的温湿度传感器等。这些传感器将感知到的屋内实体实时信息通过无线通信传输到协调器,协调器通过串口将这些实时数据传到服务器上,数据实时存储到服务器上的数据库中保存,同时服务器上通过网页JavaScript动态加载调用串口传来的数据,使得这些数据能实时动态地显示在网页上。实时动态显示的数据包括各个位置的温度,湿度,光照数据以及实时时间。采用这种方式显示的物联网实体信息实时性强,能真实反映实体每时每刻的状态。
本发明从客户端出发,对于任何一个能连上互联网的客户端,通过本发明都能实现实体动态信息的实时获取及存储。同时这种获取方法不需要连接服务器上的数据库,因此可扩展性很好。
本发明主要分为四大模块,加载页面模块,获取页面HTML模块,解析所得HTML模块,数据存储模块。这四个模块联系紧密且分工明确。其中加载页面模块和数据存储模块提供与外界联系的接口。加载页面模块通过网络链接地址加载外部页面,传递给获取HTML模块,获取HTML模块针对加载页面模块传递过来的动态页面获取该页面的HTML文档,同时将所获得的HTML文档传递给解析HTML模块,解析HTML模块从得到的HTML文档中通过定位技术解析出所需要的文本内容,将解析出来的内容给数据存储模块进行数据存储。针对本发明的各种应用就是在数据存储模块上进行扩展的。四大模块之间的关系如图1所示。
1)加载页面及框架模块
本发明首先用Watir加载物联网动态页面,Watir能模拟浏览器的各种操作。本发明中通过“Watir::Browser.new”创建一个浏览器实例,从而来模拟浏览器的操作。通过“goto('http://10.14.11.100/sh/index.jsp')”方法加载到物联网智能家居动态页面。其中http://10.14.11.100/sh/index.jsp即为物联网智能家居动态页面的链接地址。若要针对其他物联网动态页面,只需将该链接替换为替他链接地址即可。
物联网动态页面包含智能家居,温湿度,数据浏览,温度策略,光照策略五大块。需要采集的数据位于温湿度模块下面,在进入物联网动态页面后,必须执行翻页操作才能浏览温湿度模块下的实时跳变数据。翻页操作并不改变页面链接地址,但是页面内容却发生了变化。在实际浏览器中,通过鼠标执行点击翻页操作。但在Watir模拟浏览器的过程中,只有通过“onclick”方法模拟点击操作,从而实现翻页功能。物联网动态页面的五大块通过五个“li”节点表示,相应的HTML片段如图2所示:
温湿度模块为第二块,处于第二个“li”标签中,在这个“li”标签下的“a”标签中的“onclick=“hrefControl(‘jsp/wsd.jsp’);””即表示点击操作来调用动态显示实时跳变数据的JS模块。在Watir模拟浏览器点击中,“a”标签以及“li”标签均不支持点击,因此,定位到“li”标签中的id号“mainlevel_02”,从而对“a”标签下的第一个链接进行点击操作,即通过“li(:id, 'mainlevel_02').links[0].click”方法实现模拟点击翻页操作。
温湿度模块下有框架结构,即IFrame框架,实时跳变数据的JS模块位于IFrame框架结构中,用Watir加载的动态网页必须用Watir定位到IFrame框架下才能取出框架下的HTML文档供Nokogiri解析。Watir通过Locator类中的normalize_specifiers!和matchwithspecifiers方法实现定位,normalize_specifiers!方法的作用是构造specifiers,specifiers为定位对象所要用到的“标识”。matchwithspecifiers方法的作用是判断元素是否符合specifiers所定义的特征。本发明中通过IFrame框架的src属性使Watir定位到“jsp/wsd.jsp”,即用方法“.frame(:src, 'jsp/wsd.jsp')”实现定位,其中“jsp/wsd.jsp”即为动态显示实时跳变数据的JS模块。
2)获取HTML模块
在软件设计中,由于通过JavaScript从服务器上调用物联网动态显示内容在客户端显示需要一定的时间。因此,虽然完成了对于物联网动态页面的加载定位,但在实际中仍需要考虑到动态页面加载所需的时间。本发明中通过Watir的等待机制以及Ruby的休眠机制来控制等待加载动态页面的时间,即通过“.wait”方法和“sleep()”方法实现。在完成Watir加载定位之后,通过“.frame.html”方法获取框架下的HTML文档。
3)解析HTML模块
本发明采用Nokogiri对获得的HTML文档进行解析。Nokogiri通过“Nokogiri::HTML.parse”方法爬取获得的HTML文档,并进行解析。Nokogiri 提供了 XPath 及CSS Selector方式来寻找文档里的节点。本发明中通过 CSS Selector 来找页面上所需内容的节点,取回该时刻的页面文本信息。并通过周期循环模式抓取物联网动态页面上的数据,单次获取时间短,稳定性高,实时性好,能很好的实现对动态信息的实时采集。
CSS Selector可以粗略分成几类基本的类型:ID选择器(#id),Class选择器(.class),类型(type)选择器(p),Combinators,属性(Attribute)选择器,Pseudo Classes选择器等。这些都是单一的选择器,可以在应用中把它们组合起来,如:div#id, div:last-child。本方案中用到的是Class选择器,如图3所示,由于class值为“shidu”的有同名,首先定位到在IFrame框架下Class值为“shiduqu”的节点,再往下一级选择到class值为“shidu”的节点。返回class值为“shidu”的所有文本内容。即通过“.css('div.shiduqu div.shidu').text”方法实现CSS Selector定位功能,返回文本内容。
4)数据存储模块
本发明中对于获得的物联网动态页面信息的存储十分灵活,可以实现各种格式的数据存储。
在Ruby中,可以使用IO类来实现访问文件系统、读取文件、写入文件、和删除文件等功能。File类是IO类的子类,本发明中通过File类创建文档,用来存储数据。即通过“File.new("#{i}.txt","w")”方法实现创建txt文档,并将内容写入文档中。 其中“#{i}”即为文档名,通过变量i来控制,从而实现循环存储的功能,即每循环一次就创建一个新的文档。
另外,也可将获得的数据存入数据库中,这样易于管理。Ruby通过使用开发式的统一数据库接口DBI(Database Interface,数据库接口层)与数据库驱动插件连接,以实现对数据库的访问和操作数据。因此,对于采集的物联网实体实时信息,可以使用数据库存储,这样更能满足物联网海量数据的需求。所以,在数据存储方面,本发明灵活实用,扩展性很好。
本发明软件流程图如图4所示,本发明中采用周期循环操作抓取数据,周期大小可自由控制,最小周期可达13毫秒;循环条件也是自由限定,可以从循环时间,循环次数等方面控制循环抓取的时间长短,尚未达到循环条件时则继续抓取数据直到达到循环条件为止。
本发明中针对物联网动态实时信息的获取主要包括以下步骤:
1)   首先通过“Watir::Browser.new”创建一个浏览器实例,从而来模拟浏览器的操作。通过“goto('http://10.14.11.100/sh/index.jsp')”方法加载到物联网智能家居动态页面。
2)  在Watir模拟浏览器的过程中,通过“onclick”方法模拟点击操作,对步骤1)中加载的页面实现翻页功能。通过“li(:id, 'mainlevel_02').links[0].click”方法实现模拟点击翻页操作。
3)  通过IFrame框架的src属性使Watir定位到“jsp/wsd.jsp”,即用方法“.frame(:src, 'jsp/wsd.jsp')”实现定位,其中“jsp/wsd.jsp”即为步骤2)中翻页后动态显示实时跳变数据的JS模块。
4)  利用Watir的等待机制以及Ruby的休眠机制来控制等待加载动态页面的时间,即通过“.wait”方法和“sleep()”方法实现等待。
5)  Watir通过“.frame.html”方法获取步骤3)中框架下的HTML文档。
6)  Nokogiri通过“Nokogiri::HTML.parse”方法爬取步骤5)获得的HTML文档,并进行解析。
7)  Nokogiri通过“.css('div.shiduqu div.shidu').text”方法对步骤6)中爬取的HTML文档实现CSS Selector定位功能,返回文本内容。
8)  利用Ruby中的File类创建文档,用来存储步骤7)中返回的文本数据。通过“File.new("#{i}.txt","w")”方法实现创建txt文档,并将内容写入文档中。 其中“#{i}”即为文档名,通过变量i来控制。
9) 判断是否执行循环条件,从而实现循环存储的功能,即每循环一次就创建一个新的文档。
本发明的特点:
1) 本发明从客户端出发,对于任何一个能连上互联网的客户端,通过本发明都能实现实体动态信息的实时获取及存储。同时这种获取方法不需要连接服务器上的数据库,因此可扩展性很好。针对实时跳变的物联网页面,能实现实时跳变数据的抓取功能,及时获得物联网实体实时信息。
2) 本发明分成四大模块;其中,加载页面模块,获取页面HTML模块,解析所得HTML模块,数据存储模块。模块之间联系密切,衔接性好,各模块分工明确,给人一目了然的感觉。同时第一个与最后一个模块与外界的接口简单易操作,易于扩展到各种应用。
3)本发明利用Watir自动化测试框架模拟浏览器的各种操作。通过“Watir::Browser.new”创建一个浏览器实例来加载物联网动态页面。物联网动态页面包含智能家居,温湿度,数据浏览,温度策略,光照策略五大块。用Watir模拟浏览器点击操作翻页至温湿度块,该块包含一个IFrame,IFrame下显示实时动态数据。Watir加载页面时,页面中的IFrame相当于另外的页面,需要先定位到IFrame,从而获取框架下的HTML文档。本发明中通过IFrame框架的src属性使Watir定位到“jsp/wsd.jsp”,即用方法“.frame(:src, 'jsp/wsd.jsp')”实现定位,其中“jsp/wsd.jsp”即为动态显示实时跳变数据的JS模块。
4)本发明中通过Watir的等待机制以及Ruby的休眠机制来控制等待加载动态页面的时间,即通过“.wait”方法和“sleep()”方法实现。在完成Watir加载定位之后,通过“.frame.html”方法获取框架下的HTML文档。
5) Nokogiri通过“Nokogiri::HTML.parse”对获得的HTML文档进行解析。Nokogiri 提供了 XPath 及CSS Selector方式来寻找文档里的节点。本方案中通过 CSS Selector 来找页面上所需内容的节点,取回该时刻的页面文本信息。CSS Selector可以粗略分成几类基本的类型:ID选择器(#id),Class选择器(.class),类型(type)选择器(p),Combinators,属性(Attribute)选择器,Pseudo Classes选择器等。本方案中仅用到Class选择器(.class),通过“doc.css('div.shiduqu div.shidu').text”方法获得定位区域中的文本内容。
6)通过循环加载物联网动态页面的对应框架,周期获取框架下的HTML文档,代码循环实现速度快,通过Ruby内部休眠等待机制可灵活控制周期大小,最小周期可达13毫秒,能实现无遗漏的获取页面数据。
7) 利用Ruby语言的灵活性,获取的物联网动态页面信息能实现各种格式的存储,从简单的记事本格式到链接数据库存入数据库,都可以实现。本发明中通过File类创建文档,用来存储数据。即通过“File.new("#{i}.txt","w")”方法实现创建txt文档,并将内容写入文档中。 其中“#{i}”即为文档名,通过变量i来控制,从而实现循环存储的功能,即每循环一次就创建一个新的文档。
8)  另外,Ruby通过使用开发式的统一数据库接口DBI(Database Interface,数据库接口层)与数据库驱动插件连接,以实现对数据库的访问和操作数据。因此,对于采集的物联网实体实时信息,可以使用数据库存储,这样更能满足物联网海量数据的需求,同时能应对后续对海量数据的搜索分析操作。所以,在数据存储方面,本发明灵活实用,扩展性很好。

Claims (2)

1.一种物联网动态页面实时信息采集方法,其特征是,所述方法分为四个部分,涉及四个模块,这四个模块分别是加载页面模块、获取页面HTML模块、解析所得HTML模块和数据存储模块;其中,加载页面模块通过网络链接地址加载外部页面,并将加载的动态页面传递给获取HTML模块,由获取HTML模块获取该页面的HTML文档,同时将所获得的HTML文档传递给解析HTML模块,解析HTML模块通过定位技术从得到的HTML文档中解析出所需要的文本内容,并将这些文本内容传给数据存储模块进行存储。
2.根据权利要求1所述的一种物联网动态页面实时信息采集方法,其特征是,所述方法具体按以下步骤进行:
1)首先通过“Watir::Browser.new”创建一个浏览器实例,从而来模拟浏览器的操作,通过“goto('http://10.14.11.100/sh/index.jsp')”方法加载到物联网智能家居动态页面;
2)在Watir模拟浏览器的过程中,通过“onclick”方法模拟点击操作,对步骤1)中加载的页面实现翻页功能,通过“li(:id, 'mainlevel_02').links[0].click”方法实现模拟点击翻页操作;
3)通过IFrame框架的src属性使Watir定位到“jsp/wsd.jsp”,即用方法“.frame(:src, 'jsp/wsd.jsp')”实现定位,其中“jsp/wsd.jsp”即为步骤2)中翻页后动态显示实时跳变数据的JS模块;
4)利用Watir的等待机制以及Ruby的休眠机制来控制等待加载动态页面的时间,即通过“.wait”方法和“sleep()”方法实现等待;
5)Watir通过“.frame.html”方法获取步骤3)中框架下的HTML文档;
6)Nokogiri通过“Nokogiri::HTML.parse”方法爬取步骤5)获得的HTML文档,并进行解析;
7)Nokogiri通过“.css('div.shiduqu div.shidu').text”方法对步骤6)中爬取的HTML文档实现CSS Selector定位功能,返回文本内容;
8)利用Ruby中的File类创建文档,用来存储步骤7)中返回的文本数据,通过“File.new("#{i}.txt","w")”方法实现创建txt文档,并将内容写入文档中, 其中“#{i}”即为文档名,通过变量i来控制;
9)判断是否执行循环条件,从而实现循环存储的功能,即每循环一次就创建一个新的文档。
CN201310005966.XA 2013-01-08 2013-01-08 一种物联网动态页面实时信息采集方法 Active CN103092936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310005966.XA CN103092936B (zh) 2013-01-08 2013-01-08 一种物联网动态页面实时信息采集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310005966.XA CN103092936B (zh) 2013-01-08 2013-01-08 一种物联网动态页面实时信息采集方法

Publications (2)

Publication Number Publication Date
CN103092936A true CN103092936A (zh) 2013-05-08
CN103092936B CN103092936B (zh) 2018-01-02

Family

ID=48205501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310005966.XA Active CN103092936B (zh) 2013-01-08 2013-01-08 一种物联网动态页面实时信息采集方法

Country Status (1)

Country Link
CN (1) CN103092936B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615748A (zh) * 2015-02-12 2015-05-13 华北电力大学(保定) 基于Watir的物联网Web事件处理方法
CN104866311A (zh) * 2015-05-22 2015-08-26 国云科技股份有限公司 一种前端页面跨系统抓取数据的方法
CN105512193A (zh) * 2015-11-26 2016-04-20 上海携程商务有限公司 基于浏览器扩展的数据采集系统及方法
CN105766004A (zh) * 2013-10-21 2016-07-13 康维达无线有限责任公司 M2m设备的爬取
CN107733694A (zh) * 2017-09-25 2018-02-23 苏州耕耘无忧物联科技有限公司 面向物联网实时数据的自动分析方法
CN110147439A (zh) * 2018-07-18 2019-08-20 中山大学 一种基于大数据处理技术的新闻事件检测方法及系统
CN110647584A (zh) * 2019-09-23 2020-01-03 青岛聚好联科技有限公司 一种物联网平台文档数据的管理方法及装置
CN110674444A (zh) * 2019-09-20 2020-01-10 青岛海信移动通信技术股份有限公司 一种动态网页下载的方法及终端
CN112163139A (zh) * 2020-10-14 2021-01-01 深兰科技(上海)有限公司 图像数据的处理方法和装置
CN117910438A (zh) * 2024-03-13 2024-04-19 江苏中威科技软件系统有限公司 一种动态版式文件dlf的生成装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202102498U (zh) * 2011-06-30 2012-01-04 山东财政学院 在线招聘系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202102498U (zh) * 2011-06-30 2012-01-04 山东财政学院 在线招聘系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DTREX: "说说watir-webdriver那些事(四)定位frames", 《HTTP://DTREX.ITEYE.COM/BLOG/1439241》 *
QINGBO: "Ruby解析HTML(Nokogiri)", 《HTTP://QINGBO.NET/BLOG/POST508-PARSE-HTML-RUBY.HTML》 *
祁良武: "电子产品自动搜索比价系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105766004A (zh) * 2013-10-21 2016-07-13 康维达无线有限责任公司 M2m设备的爬取
CN105766004B (zh) * 2013-10-21 2019-12-03 康维达无线有限责任公司 M2m设备的爬取
CN104615748B (zh) * 2015-02-12 2018-02-27 华北电力大学(保定) 基于Watir的物联网Web事件处理方法
CN104615748A (zh) * 2015-02-12 2015-05-13 华北电力大学(保定) 基于Watir的物联网Web事件处理方法
CN104866311B (zh) * 2015-05-22 2018-01-30 国云科技股份有限公司 一种前端页面跨系统抓取数据的方法
CN104866311A (zh) * 2015-05-22 2015-08-26 国云科技股份有限公司 一种前端页面跨系统抓取数据的方法
CN105512193A (zh) * 2015-11-26 2016-04-20 上海携程商务有限公司 基于浏览器扩展的数据采集系统及方法
CN107733694A (zh) * 2017-09-25 2018-02-23 苏州耕耘无忧物联科技有限公司 面向物联网实时数据的自动分析方法
CN110147439A (zh) * 2018-07-18 2019-08-20 中山大学 一种基于大数据处理技术的新闻事件检测方法及系统
CN110674444A (zh) * 2019-09-20 2020-01-10 青岛海信移动通信技术股份有限公司 一种动态网页下载的方法及终端
CN110674444B (zh) * 2019-09-20 2023-04-07 青岛海信移动通信技术股份有限公司 一种动态网页下载的方法及终端
CN110647584A (zh) * 2019-09-23 2020-01-03 青岛聚好联科技有限公司 一种物联网平台文档数据的管理方法及装置
CN112163139A (zh) * 2020-10-14 2021-01-01 深兰科技(上海)有限公司 图像数据的处理方法和装置
CN117910438A (zh) * 2024-03-13 2024-04-19 江苏中威科技软件系统有限公司 一种动态版式文件dlf的生成装置

Also Published As

Publication number Publication date
CN103092936B (zh) 2018-01-02

Similar Documents

Publication Publication Date Title
CN103092936A (zh) 一种物联网动态页面实时信息采集方法
US9298680B2 (en) Display of hypertext documents grouped according to their affinity
US8413044B2 (en) Method and system of retrieving Ajax web page content
US8762556B2 (en) Displaying content on a mobile device
CN101976235B (zh) 基于动态网页的可扩展的Word报告自动生成方法
CN101997927B (zh) 一种web平台数据缓存的方法和系统
CN102508710B (zh) 一种ie6内核与新型ie内核的切换方法和系统
CN101609460B (zh) 一种支持异构地学数据资源的检索方法及检索系统
CN106126648B (zh) 一种基于重做日志的分布式商品信息爬虫方法
CN102982162B (zh) 网页信息的获取系统
CN102597993A (zh) 利用统一资源标识符管理应用状态信息
CN102880607A (zh) 网络动态内容抓取方法及网络动态内容爬虫系统
CN101799753B (zh) 一种实现树形结构的方法及装置
CN104615748B (zh) 基于Watir的物联网Web事件处理方法
CN102065114A (zh) 一种移动终端访问网页的方法及装置
CN102982161A (zh) 网页信息的获取方法和装置
CN101599089A (zh) 视频服务网站内容更新信息的自动搜索与抽取系统及方法
CN110309386B (zh) 一种网页爬取的方法和装置
KR20190131778A (ko) 은닉 url에 포함된 정형 및 비정형 데이터의 수집을 위한 웹 크롤러 시스템
Hoeller et al. Efficient XML usage within wireless sensor networks
CN106294885A (zh) 一种面向异构网页的数据收集与标注方法
CN101763432A (zh) 一种轻量级网页动态视图快速构建方法
CN107733694A (zh) 面向物联网实时数据的自动分析方法
CN103853717A (zh) 网络爬虫
CN105843921A (zh) 一种抓取热歌的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181112

Address after: Room 908, Newton Office District, 25 Lanyuchang South Road, Haidian District, Beijing 100097

Patentee after: BEIJING DIWINET TECHNOLOGY CO., LTD.

Address before: No. 619, Yonghua North Street, Baoding, Hebei Province, 071003

Patentee before: North China Electric Power University (Baoding)