[发明专利]抓取页面的方法和装置有效
申请号: | 201210591380.1 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103020298A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 苗宏 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 毛威;张亮 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 抓取 页面 方法 装置 | ||
技术领域
本发明涉及信息技术领域,并且更具体地,涉及抓取页面的方法和装置。
背景技术
传统的网络爬虫技术,即抓取页面的技术,主要应用于抓取静态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元素集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210591380.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种纳米二氧化钛生产装置
- 下一篇:一种碳酸钙生产用冷却循环系统