CN103020298A - 抓取页面的方法和装置 - Google Patents

抓取页面的方法和装置 Download PDF

Info

Publication number
CN103020298A
CN103020298A CN2012105913801A CN201210591380A CN103020298A CN 103020298 A CN103020298 A CN 103020298A CN 2012105913801 A CN2012105913801 A CN 2012105913801A CN 201210591380 A CN201210591380 A CN 201210591380A CN 103020298 A CN103020298 A CN 103020298A
Authority
CN
China
Prior art keywords
xpath element
xpath
dom tree
effective
training sample
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
CN2012105913801A
Other languages
English (en)
Other versions
CN103020298B (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Haining hi tech Zone Science and Innovation Center Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210591380.1A priority Critical patent/CN103020298B/zh
Publication of CN103020298A publication Critical patent/CN103020298A/zh
Application granted granted Critical
Publication of CN103020298B publication Critical patent/CN103020298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种抓取页面的方法和装置。该方法包括:获取页面的Xpath元素,对Xpath元素进行规约;在规约后的Xpath元素中确定训练样本;执行训练样本中的每个Xpath元素的事件,根据训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定训练样本中的每个Xpath元素是否有效,根据训练样本中的每个Xpath元素是否有效训练分类器;通过分类器对规约后的Xpath元素进行分类,获取有效Xpath元素集合;执行有效Xpath元素集合中的每个Xpath元素的事件,根据有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。本发明实施例的抓取页面的方法和装置,能够提升抓取页面的效率。

Description

抓取页面的方法和装置
技术领域
本发明涉及信息技术领域,并且更具体地,涉及抓取页面的方法和装置。
背景技术
传统的网络爬虫技术,即抓取页面的技术,主要应用于抓取静态Web网页,随着异步的JavaScript与可扩展标记语言(Extensible Markup Language,简称为“XML”)技术(Asynchronous JavaScript and XML,简称为“Ajax”)/Web2.0的流行,如何抓取Ajax等动态页面成了搜索引擎急需解决的问题。Ajax采用了JavaScript驱动的异步请求/响应机制,以往的爬虫们缺乏JavaScript语义上的理解,基本上无法模拟触发JavaScript的异步调用并解析返回的异步回调逻辑和内容。另外,在Ajax的应用中,JavaScript会对文档对象模型(Document Object Model,简称为“DOM”)结构进行大量变动,甚至页面所有内容都通过JavaScript直接从服务器端读取并动态绘制出来。这对习惯了DOM结构相对不变的静态页面简直是无法理解的。由此可以看出,以往的爬虫是基于协议驱动的,而对于Ajax这样的技术,所需要的爬虫引擎必须是基于事件驱动的。
现有技术采用页面Javascript代码解析和页面DOM状态判重来实现,由于在现在的web2.0网站中大量采用了Ajax技术,其中绝大部分的Javascript代码执行后不能改变DOM树的结构,因此会导致无效Javascript代码的频繁执行,大量DOM树结构的比较运算,影响页面抓取的效率。
发明内容
本发明实施例提供了一种抓取页面的方法和装置,能够提升抓取页面的效率。
第一方面,提供了一种抓取页面的方法,包括:获取页面的可扩展标记语言路径语言(XML Path Language,简称为“Xpath”)元素,并通过对该Xpath元素进行规约获取规约后的Xpath元素;在该规约后的Xpath元素中确定训练样本;执行该训练样本中的每个Xpath元素的事件,根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效,根据该训练样本中的每个Xpath元素是否有效训练分类器;通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合;执行该有效Xpath元素集合中的每个Xpath元素的事件,根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
在第一种可能的实现方式中,在根据该训练样本中的每个Xpath元素是否有效训练分类器之前,该方法还包括:获取业务定制信息,根据该业务定制信息确定定制规则;该根据该训练样本中的每个Xpath元素是否有效训练分类器,包括:根据该训练样本中的每个Xpath元素是否有效和该定制规则,训练该分类器。
在第二种可能的实现方式中,结合第一方面或第一方面的第一种可能的实现方式,根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效,包括:若该训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定该第一Xpath元素有效;若该训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则确定该第二Xpath元素无效;根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面,包括:若该有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于该预定阈值,则保存该第三Xpath元素的事件产生的DOM树;若该有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则不保存该第四Xpath元素的事件产生的DOM树。
在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,在根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效之后,该方法还包括:保存该训练样本中的有效Xpath元素的事件产生的DOM树;通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合,包括:通过该分类器对该规约后的Xpath元素中除该训练样本之外的Xpath元素进行分类,获取该有效Xpath元素集合。
在第四种可能的实现方式中,结合第一方面或第一方面的第一至三种可能的实现方式中的任一种可能的实现方式,在获取规约后的Xpath元素之后,该方法还包括:生成该规约后的Xpath元素的状态转换图模型;在该规约后的Xpath元素中确定训练样本,包括:在该状态转换图模型中确定训练样本;通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合,包括:将该状态转换图模型输入该分类器,获取该有效Xpath元素集合。
在第五种可能的实现方式中,结合第一方面或第一方面的第一至四种可能的实现方式中的任一种可能的实现方式,获取页面的Xpath元素,包括:通过嵌入浏览器技术获取该Xpath元素。
第二方面,提供了一种抓取页面的装置,包括:获取模块,用于获取页面的Xpath元素,并通过对该Xpath元素进行规约获取规约后的Xpath元素;确定模块,用于在该规约后的Xpath元素中确定训练样本;训练模块,用于执行该训练样本中的每个Xpath元素的事件,根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效,根据该训练样本中的每个Xpath元素是否有效训练分类器;分类模块,用于通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合;抓取模块,用于执行该有效Xpath元素集合中的每个Xpath元素的事件,根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
在第一种可能的实现方式中,该装置还包括:定制模块,用于获取业务定制信息,根据该业务定制信息确定定制规则;该训练模块具体用于根据该训练样本中的每个Xpath元素是否有效和该定制规则,训练该分类器。
在第二种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式,该训练模块具体用于,若该训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定该第一Xpath元素有效,若该训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则确定该第二Xpath元素无效;该抓取模块具体用于,若该有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于该预定阈值,则保存该第三Xpath元素的事件产生的DOM树,若该有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则不保存该第四Xpath元素的事件产生的DOM树。
在第三种可能的实现方式中,结合第二方面或第二方面的第一种或第二种可能的实现方式,该抓取模块还用于在该训练模块根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效之后,保存该训练样本中的有效Xpath元素的事件产生的DOM树;该分类模块具体用于通过该分类器对该规约后的Xpath元素中除该训练样本之外的Xpath元素进行分类,获取该有效Xpath元素集合。
在第四种可能的实现方式中,结合第二方面或第二方面的第一至三种可能的实现方式中的任一种可能的实现方式,该装置还包括:生成模块,用于在该获取模块获取规约后的Xpath元素之后,生成该规约后的Xpath元素的状态转换图模型;该确定模块具体用于在该状态转换图模型中确定训练样本;该分类模块具体用于将该状态转换图模型输入该分类器,获取该有效Xpath元素集合。
在第五种可能的实现方式中,结合第二方面或第二方面的第一至四种可能的实现方式中的任一种可能的实现方式,该获取模块具体用于通过嵌入浏览器技术获取该Xpath元素。
基于上述技术方案,本发明实施例的抓取页面的方法和装置,根据训练样本中的Xpath元素是否有效训练分类器,通过分类器对Xpath元素进行分类,获取有效Xpath元素集合,再基于有效Xpath元素集合抓取页面,可以过滤掉大量的无效Xpath元素,从而能够提升抓取页面的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的抓取页面的方法的示意性流程图。
图2是根据本发明实施例的状态转换图模型的示意图。
图3是根据本发明实施例的抓取页面的方法的另一示意性流程图。
图4是根据本发明实施例的抓取页面的方法的又一示意性流程图。
图5是根据本发明实施例的抓取页面的装置的示意性框图。
图6是根据本发明实施例的抓取页面的装置的另一示意性框图。
图7是根据本发明实施例的抓取页面的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1示出了根据本发明实施例的抓取页面的方法100的示意性流程图。如图1所示,该方法100包括:
S110,获取页面的Xpath元素,并通过对该Xpath元素进行规约获取规约后的Xpath元素;
S120,在该规约后的Xpath元素中确定训练样本;
S130,执行该训练样本中的每个Xpath元素的事件,根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效,根据该训练样本中的每个Xpath元素是否有效训练分类器;
S140,通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合;
S150,执行该有效Xpath元素集合中的每个Xpath元素的事件,根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
现有抓取页面的技术需要执行所有Xpath元素的事件,并进行DOM树结构的比较,效率较低。在本发明实施例中,抓取页面的装置在获取所有Xpath元素并对Xpath元素进行规约后,在规约后的Xpath元素中抽取部分Xpath元素作为训练样本,执行训练样本中的每个Xpath元素的事件,根据训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定训练样本中的每个Xpath元素是否有效,并根据训练样本中的每个Xpath元素是否有效训练分类器,然后,通过分类器对规约后的Xpath元素进行分类,获取有效Xpath元素集合,再执行有效Xpath元素集合中的每个Xpath元素的事件,根据有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。由于利用分类器过滤掉了无效Xpath元素,在抓取页面时只需执行有效Xpath元素的事件,不再频繁执行无效Javascript代码。
因此,本发明实施例的抓取页面的方法,根据训练样本中的Xpath元素是否有效训练分类器,通过分类器对Xpath元素进行分类,获取有效Xpath元素集合,再基于有效Xpath元素集合抓取页面,可以过滤掉大量的无效Xpath元素,从而能够提升抓取页面的效率。
本发明实施例的技术方案可以用于抓取动态页面,例如,在web2.0网站中抓取页面。
传统网站页面由唯一的统一资源定位符(Uniform/Universal ResourceLocator,简称为“URL”)确定,网站本身可以看作是一个以页面为顶点,超链接为边的有向图。该经典模型是传统爬虫对web资源的基本假设。应用Ajax技术的网站(例如,web2.0网站)既包含静态内容也包含动态内容,页面本身不再是一个基本单位,它通常是由若干个不同的状态所构成,用户浏览行为通过Javascript事件处理函数改变DOM树的内容与结构,由此产生新的状态,这些状态都同属于一个URL;此外,页面上的超链接又会指向其他的URL页面。
状态是Ajax应用某一时刻在浏览器中呈现的页面DOM结构,也就是说,不同的DOM树即不同的页面状态,客户端用户操作或服务器端数据响应都有可能导致Ajax应用的DOM结构发生变化,从而产生新的状态。Ajax应用中包含一系列离散的状态。其中包括一个初始状态,以及由初始状态经过一次或多次转换得到的很多不同的中间状态。转换是指通过触发某DOM元素的事件,Ajax应用从一个状态转换为另一个状态。
在S110中,抓取页面的装置获取页面的Xpath元素,并通过对Xpath元素进行规约获取规约后的Xpath元素。
可选地,可通过嵌入浏览器技术获取Xpath元素,例如,HtmlUnit包。通过嵌入式浏览器加载起始URL获得默认的DOM树,然后通过分析DOM树获取所有Xpath元素,可选地,可以调用设计好的传统爬虫进行超链分析,获取所有的URL集合,再调用嵌入的浏览器接口获取所有页面的所有Xpath元素。
应理解,获取Xpath元素的方式还可以采用其他页面Javascript代码解析技术,本发明实施例对此并不限定。
在获取Xpath元素后,对Xpath元素进行规约,获取规约后的Xpath元素。由于在web2.0网站中URL不能作为页面的唯一标识,通过相似性判定不能对URL的特征进行归约。在本发明实施例中,以页面元素为中心,使用XPath作为页面元素的描述,并对所有引向需要页面的页面元素的XPath进行了归约,同时记录需触发的事件。对XPath的归约采用如下的归约方法:
被归约的XPath路径经过的页面元素名称必须相同,对页面元素的序号进行归约。如对“/html/body/div[4]/li[1]/a[1]”和“/html/body/div[4]/li[2]/a[1]”这两个XPath,归约为“/html/body/div[4]/li[*]/a[1]”,如还存在“/html/body/div[3]/li[1]/a[1]”这一XPath,归约为“/html/body/div[*]/li[*]/a[1]”。但“/html/body/div[1]”,“/html/body/span[1]”,“/html/body/div[1]/span[1]”中的任何两个均不被归约。这样归约出的XPath结果不再含有无效的页面元素,可以作为抓取过程中的特征。
可选地,在获取规约后的Xpath元素之后,该方法100还包括:
生成规约后的Xpath元素的状态转换图模型。
如图2所示,状态转换图是一个二元组<V,E>,其中V表示状态节点的集合,每个节点v∈V表示页面抓取过程的一个状态;E是节点间的有向边集合,每条边是一个二元组<Xpath,event>。比如图2中的<onclick,/html/body/div[1]/a[1]>,onclick表示事件event,/html/body/div[1]/a[1]表示Xpath,从v1到v2的有向边存在,当且仅当状态v1可以通过触发Xpath所代表的页面元素上的事件event转换到状态v2。
按照状态转换图模型的定义,将获取的规约后的Xpath元素建立状态转换图模型,生成状态转换图模型结构数据。这样,后续步骤可以对建立的状态转换图模型进行处理。
应理解,根据Xpath元素建立状态转换图模型只是处理Xpath元素数据的一种实施方式,不应对本发明的保护范围构成限定,本发明实施例还可以采用其他数据处理方式。
在S120中,抓取页面的装置在规约后的Xpath元素中确定训练样本。
在本发明实施例中,在将Xpath元素规约后,不是执行所有规约后的Xpath元素的事件,而是选取一部分Xpath元素作为训练样本,以训练分类器。例如,可以选取规约后的Xpath元素的10%作为训练样本,本发明实施例对训练元素的比例并不限定,其值可以根据实时状况而调整。
可选地,若将获取的规约后的Xpath元素建立状态转换图模型,则S120包括:
在该状态转换图模型中确定训练样本。
也就是说,若采用建立状态转换图模型的数据处理方式,则在状态转换图模型建立后,在该状态转换图模型中抽取训练样本以训练分类器。
在S130中,抓取页面的装置执行训练样本中的每个Xpath元素的事件,根据训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定训练样本中的每个Xpath元素是否有效,根据训练样本中的每个Xpath元素是否有效训练分类器。
具体而言,在确定训练样本后,抓取页面的装置根据训练样本训练分类器。抓取页面的装置执行训练样本中的每个Xpath元素的事件,根据产生的DOM树与原DOM树的编辑距离确定该Xpath元素是否有效。可选地,可以采用限制自上而下映射(Restricted Top-Down Mapping,简称为“RTDM”)算法来计算两个页面的DOM树之间的编辑距离,即执行Xpath元素的事件前后的DOM树的编辑距离。根据DOM树的编辑距离是否大于预定阈值确定Xpath元素是否有效。比如:
若该训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定该第一Xpath元素有效;
若该训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则确定该第二Xpath元素无效。
应理解,在本发明实施例中,“第一”、“第二”、“第三”和“第四”仅仅是为了区分不同的Xpath元素,不应对本发明实施例构成任何限定。
也就是说,若训练样本中的某一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定该Xpath元素有效;若训练样本中的某一Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于预定阈值,则确定该Xpath元素无效。
在确定了训练样本中Xpath元素是否有效后,抓取页面的装置根据训练样本中的每个Xpath元素是否有效训练分类器,即得到Xpath元素有效或无效的分类器。可选地,可以采用支持向量机(Support Vector Machine,简称为“SVM”)算法训练分类器。SVM是通用的知识发现和机器学习方法,主要是针对两类模式的分类问题,在高维特征空间中寻找最大边缘超平面(也称为最优分类面)作为两类的分界面,从而保证对未知样本的最小分类错误率。本发明实施例利用SVM算法训练Xpath元素有效或无效的分类器,例如,类似于“/html/body/div[4]/li[1]/a[1]”这种Xpath路径,将之间的“/”符号去掉后,就变为[html,body,div[4],li[1],a[1]]这样的一维向量,将这种数据模型进行SVM训练,得到Xpath元素有效或无效的分类器。如图3所示,根据样本中各元素有效或无效的结果,调用SVM算法进行训练,得到分类器。
在S140中,抓取页面的装置通过分类器对规约后的Xpath元素进行分类,获取有效Xpath元素集合。
在得到分类器后,抓取页面的装置利用该分类器对规约后的Xpath元素进行分类,过滤掉无效的Xpath元素,得到所有有效Xpath元素,即有效Xpath元素集合。如图3所示,将待分类的Xpath元素输入分类器,从输出中得到有效Xpath元素集合。
可选地,若将获取的规约后的Xpath元素建立状态转换图模型,则S140包括:
将该状态转换图模型输入分类器,获取有效Xpath元素集合。
也就是说,若采用建立状态转换图模型的数据处理方式,则将建立的状态转换图模型作为输入,经过分类器进行分类,过滤掉无效的Xpath元素,得到有效Xpath元素集合。
在S150中,抓取页面的装置执行有效Xpath元素集合中的每个Xpath元素的事件,根据有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
具体而言,在通过分类器得到有效Xpath元素集合后,抓取页面的装置基于该有效Xpath元素集合中的Xpath元素抓取页面。抓取页面的装置执行该有效Xpath元素集合中的每个Xpath元素的事件,根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离是否大于预定阈值抓取页面。比如:
若该有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于该预定阈值,则保存该第三Xpath元素的事件产生的DOM树;
若该有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则不保存该第四Xpath元素的事件产生的DOM树。
也就是说,若有效Xpath元素集合中的某一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于该预定阈值,则认为页面状态转换,保存该Xpath元素的事件产生的DOM树,加入爬行队列中;若有效Xpath元素集合中的某一Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则认为页面状态没有转换,不保存该Xpath元素的事件产生的DOM树。
应理解,在本发明实施例中,在通过分类器对Xpath元素进行分类时,可以将所有规约后的Xpath元素作为输入,也可以将规约后的Xpath元素中除训练样本之外的Xpath元素作为输入,在后一种情况下,即只分类除训练样本之外的Xpath元素,则需要在训练分类器时将训练样本中有效Xpath元素的事件产生的DOM树保存。因此,可选地,在根据训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定训练样本中的每个Xpath元素是否有效之后,该方法100还包括:
保存训练样本中的有效Xpath元素的事件产生的DOM树。
在这种情况下,S140包括:
通过分类器对规约后的Xpath元素中除训练样本之外的Xpath元素进行分类,获取有效Xpath元素集合。
这样,分类器输出的有效Xpath元素集合不包含训练样本中的Xpath元素,在根据该有效Xpath元素集合抓取页面时,也省去了对训练样本中的有效Xpath元素的事件的执行以及DOM树的比较。
本发明实施例的抓取页面的方法,根据训练样本中的Xpath元素是否有效训练分类器,通过分类器对Xpath元素进行分类,获取有效Xpath元素集合,再基于有效Xpath元素集合抓取页面,可以过滤掉大量的无效Xpath元素,从而能够提升抓取页面的效率,并且,本发明实施例的抓取页面的方法对内存、CPU等计算机资源的要求降低,从而降低了部署成本。
为了满足业务定制的需求,在本发明实施例中,可选地,在根据训练样本中的每个Xpath元素是否有效训练分类器之前,该方法100还包括:
获取业务定制信息,根据该业务定制信息确定定制规则。
在这种情况下,根据训练样本中的每个Xpath元素是否有效训练分类器,包括:
根据训练样本中的每个Xpath元素是否有效和该定制规则,训练该分类器。
也就是说,在训练分类器前,确定定制规则,然后在训练分类器时加入该定制规则,这样,在利用分类器对Xpath元素进行分类时,就能得到有效且符合定制规则的Xpath元素。因此,本发明实施例的抓取页面的方法,可以满足业务定制需求,具有可扩型和定制性。
下面结合图4详细描述本发明实施例。应注意,这只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
401,首先输入一个初始URL作为入口;
402,超链分析,例如调用设计好的传统爬虫进行超链分析,获取所有的URL集合;
403,通过嵌入浏览器技术获取所有Xpath元素,例如调用嵌入的浏览器接口获取所有页面的所有Xpath元素;
404,对步骤403获取的Xpath元素进行规约;
405,根据步骤402-404获取的Xpath元素数据建立状态转换图模型;
406,确定训练样本,即读取配置文件中确定的训练元素的比例,也就是样本的大小;
407,读取配置文件中业务定制信息;
408,确定定制规则;
409,调用RTDM算法计算样本中的Xpath元素的事件产生的DOM树的编辑距离,确定哪些Xpath能产生新状态,哪些不能,即哪些Xpath元素有效,哪些Xpath元素无效;
410,SVM训练,根据样本结果调用SVM算法进行训练;
411,建立分类器;
412,把405中建立的状态转换图模型作为输入,经过分类器进行分类,过滤掉无效的Xpath元素,获得有效Xpath元素集合。
413,基于有效Xpath元素集合抓取页面,执行有效Xpath元素集合中的每个Xpath元素的事件,根据该Xpath元素的事件产生的DOM树与原DOM树的编辑距离是否大于预定阈值抓取页面,若大于预定阈值,则保存该Xpath元素的事件产生的DOM树。
基于上述描述,本发明实施例的抓取页面的方法的一个算法原型如下:
Figure BDA00002684299900121
应理解,上述算法原型只是示例,不应对本发明的保护范围构成任何限定。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图4,详细描述了根据本发明实施例的抓取网页的方法,下面将结合图5至图7,描述根据本发明实施例的抓取网页的装置。
图5示出了根据本发明实施例的抓取页面的装置500的示意性框图。如图5所示,该装置500包括:
获取模块510,用于获取页面的可扩展标记语言路径语言Xpath元素,并通过对该Xpath元素进行规约获取规约后的Xpath元素;
确定模块520,用于在该规约后的Xpath元素中确定训练样本;
训练模块530,用于执行该训练样本中的每个Xpath元素的事件,根据该训练样本中的每个Xpath元素的事件产生的文档对象模型DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效,根据该训练样本中的每个Xpath元素是否有效训练分类器;
分类模块540,用于通过该分类器对该规约后的Xpath元素进行分类,获取有效Xpath元素集合;
抓取模块550,用于执行该有效Xpath元素集合中的每个Xpath元素的事件,根据该有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
本发明实施例的抓取页面的装置,根据训练样本中的Xpath元素是否有效训练分类器,通过分类器对Xpath元素进行分类,获取有效Xpath元素集合,再基于有效Xpath元素集合抓取页面,可以过滤掉大量的无效Xpath元素,从而能够提升抓取页面的效率。
在本发明实施例中,如图6所示,可选地,该装置500还包括:
定制模块560,用于获取业务定制信息,根据该业务定制信息确定定制规则;
该训练模块530具体用于根据该训练样本中的每个Xpath元素是否有效和该定制规则,训练该分类器。
本发明实施例的抓取页面的装置,可以满足业务定制需求,具有可扩型和定制性。
在本发明实施例中,可选地,该训练模块530具体用于,若该训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定该第一Xpath元素有效,若该训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则确定该第二Xpath元素无效;
该抓取模块550具体用于,若该有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于该预定阈值,则保存该第三Xpath元素的事件产生的DOM树,若该有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于该预定阈值,则不保存该第四Xpath元素的事件产生的DOM树。
在本发明实施例中,可选地,该抓取模块550还用于在该训练模块530根据该训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定该训练样本中的每个Xpath元素是否有效之后,保存该训练样本中的有效Xpath元素的事件产生的DOM树;
该分类模块540具体用于通过该分类器对该规约后的Xpath元素中除该训练样本之外的Xpath元素进行分类,获取该有效Xpath元素集合。
在本发明实施例中,可选地,该装置500还包括:
生成模块,用于在该获取模块获取规约后的Xpath元素之后,生成该规约后的Xpath元素的状态转换图模型;
该确定模块520具体用于在该状态转换图模型中确定训练样本;
该分类模块540具体用于将该状态转换图模型输入该分类器,获取该有效Xpath元素集合。
在本发明实施例中,可选地,该获取模块510具体用于通过嵌入浏览器技术获取该Xpath元素。
本发明实施例的抓取页面的装置,根据训练样本中的Xpath元素是否有效训练分类器,通过分类器对Xpath元素进行分类,获取有效Xpath元素集合,再基于有效Xpath元素集合抓取页面,可以过滤掉大量的无效Xpath元素,从而能够提升抓取页面的效率,并且,本发明实施例的抓取页面的装置对内存、CPU等计算机资源的要求降低,从而降低了部署成本。
根据本发明实施例的抓取页面的装置500可对应于根据本发明实施例的的方法中的抓取页面的装置,并且装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
图7是本发明实施例提供的抓取页面的装置的结构示意图。如图7所示,装置700一般包括至少一个处理器710,例如CPU,至少一个端口720,存储器730,和至少一个通信总线740。通信总线740用于实现这些设备之间的连接通信。处理器710用于执行存储器730中存储的可执行模块,例如计算机程序;装置700可选地包含用户接口750,包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球(trackball)、触感板或者触感显示屏。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个端口720实现该装置700与网络的通信连接。
在一些实施方式中,存储器730存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统732,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块734,包含各种应用程序,用于实现各种应用业务。
应用模块734中包括但不限于获取模块510、确定模块520、训练模块530、分类模块540、抓取模块550和定制模块560。
应用模块734中各模块的具体实现参见图5和图6所示实施例中的相应模块,在此不赘述。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种抓取页面的方法,其特征在于,包括:
获取页面的可扩展标记语言路径语言Xpath元素,并通过对所述Xpath元素进行规约获取规约后的Xpath元素;
在所述规约后的Xpath元素中确定训练样本;
执行所述训练样本中的每个Xpath元素的事件,根据所述训练样本中的每个Xpath元素的事件产生的文档对象模型DOM树与原DOM树的编辑距离确定所述训练样本中的每个Xpath元素是否有效,根据所述训练样本中的每个Xpath元素是否有效训练分类器;
通过所述分类器对所述规约后的Xpath元素进行分类,获取有效Xpath元素集合;
执行所述有效Xpath元素集合中的每个Xpath元素的事件,根据所述有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述训练样本中的每个Xpath元素是否有效训练分类器之前,所述方法还包括:
获取业务定制信息,根据所述业务定制信息确定定制规则;
所述根据所述训练样本中的每个Xpath元素是否有效训练分类器,包括:
根据所述训练样本中的每个Xpath元素是否有效和所述定制规则,训练所述分类器。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定所述训练样本中的每个Xpath元素是否有效,包括:
若所述训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定所述第一Xpath元素有效;
若所述训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于所述预定阈值,则确定所述第二Xpath元素无效;
所述根据所述有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面,包括:
若所述有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于所述预定阈值,则保存所述第三Xpath元素的事件产生的DOM树;
若所述有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于所述预定阈值,则不保存所述第四Xpath元素的事件产生的DOM树。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在所述根据所述训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定所述训练样本中的每个Xpath元素是否有效之后,所述方法还包括:
保存所述训练样本中的有效Xpath元素的事件产生的DOM树;
所述通过所述分类器对所述规约后的Xpath元素进行分类,获取有效Xpath元素集合,包括:
通过所述分类器对所述规约后的Xpath元素中除所述训练样本之外的Xpath元素进行分类,获取所述有效Xpath元素集合。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述获取规约后的Xpath元素之后,所述方法还包括:
生成所述规约后的Xpath元素的状态转换图模型;
所述在所述规约后的Xpath元素中确定训练样本,包括:
在所述状态转换图模型中确定训练样本;
所述通过所述分类器对所述规约后的Xpath元素进行分类,获取有效Xpath元素集合,包括:
将所述状态转换图模型输入所述分类器,获取所述有效Xpath元素集合。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述获取页面的可扩展标记语言路径语言Xpath元素,包括:
通过嵌入浏览器技术获取所述Xpath元素。
7.一种抓取页面的装置,其特征在于,包括:
获取模块,用于获取页面的可扩展标记语言路径语言Xpath元素,并通过对所述Xpath元素进行规约获取规约后的Xpath元素;
确定模块,用于在所述规约后的Xpath元素中确定训练样本;
训练模块,用于执行所述训练样本中的每个Xpath元素的事件,根据所述训练样本中的每个Xpath元素的事件产生的文档对象模型DOM树与原DOM树的编辑距离确定所述训练样本中的每个Xpath元素是否有效,根据所述训练样本中的每个Xpath元素是否有效训练分类器;
分类模块,用于通过所述分类器对所述规约后的Xpath元素进行分类,获取有效Xpath元素集合;
抓取模块,用于执行所述有效Xpath元素集合中的每个Xpath元素的事件,根据所述有效Xpath元素集合中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离抓取页面。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
定制模块,用于获取业务定制信息,根据所述业务定制信息确定定制规则;
所述训练模块具体用于根据所述训练样本中的每个Xpath元素是否有效和所述定制规则,训练所述分类器。
9.根据权利要求7或8所述的装置,其特征在于,所述训练模块具体用于,若所述训练样本中的第一Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于预定阈值,则确定所述第一Xpath元素有效,若所述训练样本中的第二Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于所述预定阈值,则确定所述第二Xpath元素无效;
所述抓取模块具体用于,若所述有效Xpath元素集合中的第三Xpath元素的事件产生的DOM树与原DOM树的编辑距离大于所述预定阈值,则保存所述第三Xpath元素的事件产生的DOM树,若所述有效Xpath元素集合中的第四Xpath元素的事件产生的DOM树与原DOM树的编辑距离不大于所述预定阈值,则不保存所述第四Xpath元素的事件产生的DOM树。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述抓取模块还用于在所述训练模块根据所述训练样本中的每个Xpath元素的事件产生的DOM树与原DOM树的编辑距离确定所述训练样本中的每个Xpath元素是否有效之后,保存所述训练样本中的有效Xpath元素的事件产生的DOM树;
所述分类模块具体用于通过所述分类器对所述规约后的Xpath元素中除所述训练样本之外的Xpath元素进行分类,获取所述有效Xpath元素集合。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述装置还包括:
生成模块,用于在所述获取模块获取规约后的Xpath元素之后,生成所述规约后的Xpath元素的状态转换图模型;
所述确定模块具体用于在所述状态转换图模型中确定训练样本;
所述分类模块具体用于将所述状态转换图模型输入所述分类器,获取所述有效Xpath元素集合。
12.根据权利要求7至11中任一项所述的装置,其特征在于,所述获取模块具体用于通过嵌入浏览器技术获取所述Xpath元素。
CN201210591380.1A 2012-12-31 2012-12-31 抓取页面的方法和装置 Active CN103020298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210591380.1A CN103020298B (zh) 2012-12-31 2012-12-31 抓取页面的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210591380.1A CN103020298B (zh) 2012-12-31 2012-12-31 抓取页面的方法和装置

Publications (2)

Publication Number Publication Date
CN103020298A true CN103020298A (zh) 2013-04-03
CN103020298B CN103020298B (zh) 2016-06-08

Family

ID=47968901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210591380.1A Active CN103020298B (zh) 2012-12-31 2012-12-31 抓取页面的方法和装置

Country Status (1)

Country Link
CN (1) CN103020298B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073589A (zh) * 2016-11-09 2018-05-25 北京国双科技有限公司 网页页面元素的获取方法及装置
CN108304483A (zh) * 2017-12-29 2018-07-20 东软集团股份有限公司 一种网页分类方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089856A (zh) * 2007-07-20 2007-12-19 李沫南 一种提取网页数据的方法和Web爬虫系统
CN102075580A (zh) * 2011-01-20 2011-05-25 迈普通信技术股份有限公司 分布式网络设备中同步数据的存储方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089856A (zh) * 2007-07-20 2007-12-19 李沫南 一种提取网页数据的方法和Web爬虫系统
CN102075580A (zh) * 2011-01-20 2011-05-25 迈普通信技术股份有限公司 分布式网络设备中同步数据的存储方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073589A (zh) * 2016-11-09 2018-05-25 北京国双科技有限公司 网页页面元素的获取方法及装置
CN108073589B (zh) * 2016-11-09 2021-02-26 北京国双科技有限公司 网页页面元素的获取方法及装置
CN108304483A (zh) * 2017-12-29 2018-07-20 东软集团股份有限公司 一种网页分类方法、装置及设备
CN108304483B (zh) * 2017-12-29 2021-01-19 东软集团股份有限公司 一种网页分类方法、装置及设备

Also Published As

Publication number Publication date
CN103020298B (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
CN101593184B (zh) 自适应地定位动态网页元素的系统和方法
US7373603B1 (en) Method and system for providing data reference information
CN101952821B (zh) 使用暂时编辑表面来编辑文档
US7987417B2 (en) System and method for detecting a web page template
Zubiaga et al. Tags vs shelves: from social tagging to social classification
US7870474B2 (en) System and method for smoothing hierarchical data using isotonic regression
CN110929145B (zh) 舆情分析方法、装置、计算机装置及存储介质
CN103443786A (zh) 识别网络浏览器中的并行布局的独立任务的机器学习方法
US20150113388A1 (en) Method and apparatus for performing topic-relevance highlighting of electronic text
US9135361B1 (en) Updating taxonomy based on webpage
WO2020000717A1 (zh) 网页分类方法、装置及计算机可读存储介质
CN103874994A (zh) 用于自动概括电子文档的内容的方法和装置
CN101620608A (zh) 信息采集方法及系统
EP3159798B1 (en) Method and system for determining user interface usage
Liu et al. Sampling business process event logs using graph‐based ranking model
CN102855282A (zh) 一种文档推荐方法及装置
Bao et al. Reverse engineering time-series interaction data from screen-captured videos
CN103049557A (zh) 一种站点资源管理方法及装置
CN111078881B (zh) 细粒度情感分析方法、系统、电子设备和存储介质
US10055486B1 (en) System and method for real world event summarization with microblog data
CN103020298A (zh) 抓取页面的方法和装置
CN108694192B (zh) 网页类型的判断方法及装置
Curran-Everett Explorations in statistics: power
CN104156458A (zh) 一种信息的提取方法及装置
Shao et al. Webevo: taming web application evolution via detecting semantic structure changes

Legal Events

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

Effective date of registration: 20191217

Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province

Patentee after: Haining hi tech Zone Science and Innovation Center Co.,Ltd.

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20191217

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right