一种网页爬取方法及系统的制作方法
【专利摘要】本发明公开了一种网页爬取方法及系统。其中方法包括:对样本网页进行训练得到数据提取条件;爬取web网页;将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。本发明基于网页分析训练方法生成数据提取条件,在将web页面解析后生成dom树结构,根据数据提取条件来对web页面进行分析,当条件完全匹配成功后,精确提取所需的网页链接和数据内容,从而保证了数据的准确性,而且因为不需要分析整个网页所以匹配效率高,另外只提取所需网页链接进行网页爬取,可以保证数据的时效性,节省网络资源,并减少存储空间。
【专利说明】一种网页爬取方法及系统
【技术领域】
[0001]本发明涉及网络搜索【技术领域】,尤其涉及一种网页爬取方法及系统。
【背景技术】
[0002]现有网络爬虫主要代表有通用网络爬虫和聚焦网络爬虫。
[0003]通用网络爬虫又称全网爬虫,其结构大致分为页面爬行模块、页面分析模块、链接过来模块、页面数据库、URL队列、初始URL集合几个部分,其常用的爬行策略有两种:
[0004]1、深度优先策略:其基本方法是按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进行搜索其他链接,当所有链接遍历完后,爬行任务结束。
[0005]2、广度优先策略:其按照网页内容目录层次深浅来爬行页面,处于较浅目录层次的页面首先被爬行。当同一层次中的页面爬行完毕后,爬虫再深入下一层继续爬行。
[0006]聚焦网络爬虫又称主题网络爬虫,是指选择性地搜索出预先定义好的与主题相关页面的爬虫。
[0007]现有聚焦网络爬虫主要是通过一定算法来计算页面内容的和连接的重要性,据此调整链接的访问顺序。相应的算法策略主要有以下几种:
[0008]1、基于内容评价的爬行策略:以用户输入的查询词作为主题,包含查询词的页面被视为主题相关,其改进算法有利用空间向量模型计算页面与主题的相关度大小。
[0009]2、基于连接结构评价的爬行策略:其思想是利于web页面的结构信息来评价连接重要性。其代表有HITS方法,通过技术每个已访问页面的Authority权重和Hub权重,来决定链接的访问顺序。
[0010]3、基于增强学习的爬行策略:利用贝叶斯分类器,根据整个网页文本和连接文本对超链接进行分类,为每个链接计算出重要性,从而决定链接的访问顺序。
[0011]4、基于语境图的爬行策略:通过建立语境图学习网页之间的相关度,训练一个机器学习系统,通过该系统可计算当前页面到相关web页面的距离,距离越近的页面中的链接优先访问。
[0012]现有网络爬虫技术存在如下缺陷:
[0013]1、搜索范围广,搜索到的数据准确率低。
[0014]2、大量的无关数据会造成网络资源的极大消耗。
[0015]3、搜索到有效数据的时效性大大降低。
[0016]4、无效数据会占用大量的存储空间。
【发明内容】
[0017]为了解决现有技术中网页爬取数据准确率较低的技术问题,本发明提出一种网页爬取方法及系统。
[0018]本发明的一个方面,提供一种网页爬取方法,包括:对样本网页进行训练得到数据提取条件;爬取web网页;将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。
[0019]本发明的另一个方面,提供一种网页爬取系统,包括:网页训练装置,用于对样本网页进行训练得到数据提取条件;网页爬取装置,用于从互联网上爬取web网页;网页分析装置,用于将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。
[0020]本发明的网页爬取方法及系统,基于网页分析训练方法生成数据提取条件,在将web页面解析后生成dom树结构,根据数据提取条件来对web页面进行分析,当条件完全匹配成功后,精确提取所需的网页链接和数据内容,从而保证了数据的准确性,而且因为不需要分析整个网页所以匹配效率高,另外只提取所需网页链接进行网页爬取,可以保证数据的时效性,节省网络资源,并减少存储空间。
【专利附图】
【附图说明】
[0021]图1是本发明网页爬取系统实施例的结构图;
[0022]图2是本发明网页训练装置实施例的结构图;
[0023]图3是本发明网页爬取系统的工作流程示意图;
[0024]图4是本发明本发明网页爬取方法实施例的流程图;
[0025]图5是本发明网页爬取方法另一实施例的流程图。
【具体实施方式】
[0026]以下结合附图对本发明进行详细说明。
[0027]如图1所示,本发明网页爬取系统实施例包括:网页训练装置11、网页爬取装置12、网页分析装置13、URL队列管理装置14及数据存储装置15。
[0028]其中,网页训练装置对样本网页进行训练得到数据提取条件。
[0029]网页爬取装置根据URL地址通过http协议从互联网上爬取web网页。其中URL地址从URL队列管理装置中获取,爬取的网页数据交给网页分析装置进行数据分析。
[0030]URL队列管理装置遍历URL队列,从URL队列中提取待爬取的URL。网页爬取装置根据所述待爬取的URL从互联网上爬取web网页。
[0031 ] 网页分析装置将爬取到的web网页解析成文档对象模型(Document ObjectModel, dom)树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。具体地,网页分析装置从所述web网页dom树的根节点开始,顺序使用数据提取条件中记录的各节点信息(节点名称,节点属性,节点层次关系)对所述web网页dom树中的节点进行比较匹配定位到所需数据的位置,提取所需数据;当提取到的数据为新URL地址时,将所述URL地址发送到URL队列管理装置;当提取到的数据为内容数据时,将所述内容数据发送到所述数据存储装置。
[0032]URL队列管理装置检查所述新URL地址是否已爬取或是否需要重新爬取。URL队列包括待访问URL队列和已访问URL队列。当所述新URL地址不存在于所述已访问队列中时,将所述新URL地址加入到待访问URL队列和已访问URL队列;否则忽略该新URL地址。对于非定时刷新的URL地址,下载完毕后需要从待访问URL地址队列中移除。
[0033]数据存储装置存储所述内容数据。本实施例中,数据存储装置采用json格式存储所述内容数据。
[0034]如图2所示,网页训练装置具体包括:获取模块21、解析装置22及条件生成装置23。
[0035]其中,获取模块获取样本网页及所要提取的数据。解析装置将所述样本网页解析为dom树结构,得到样本网页dom树。当所要提取的数据为内容数据时,条件生成装置遍历样本网页dom树的节点,分别将内容数据与节点属性值及节点内容进行比较,找到内容数据在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息(节点名称,节点属性,节点间层次关系)以及内容数据在节点中的位置(归属于节点的内容或者某个属性)记录为数据提取条件;当所要提取的数据为URL地址时,条件生成装置遍历样本网页dom树的节点,将URL地址与节点内容进行比较,找到URL地址在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及节点URL地址属性记录为数据提取条件。
[0036]数据提取条件在生成时会进行归并处理。从dom树根节点开始对于具有相同节点信息的条件进行归并。
[0037]如图3所示,对网页爬取系统的工作流程进行详细阐述如下:
[0038]步骤302,使用样本网页进行分析训练,生成供网页分析使用的数据提取条件;当要爬取某类特定网页数据时,首先使用一个样本网页进行网页分析训练,提供数据内容供网页分析训练装置来生成数据提取条件。
[0039]步骤304,根据配置加载初始网页URL地址到搜索地址队列中;
[0040]步骤306,加载分析网页的数据提取条件,根据数据提取条件可以抽取网页中的指定URL和搜索存储的内容;
[0041]步骤308,遍历搜索地址,如果遍历完毕则转步骤328,否则转步骤310 ;
[0042]步骤310,检查网页地址是否到达处理时间(对于网页可以设置定时循环获取)。未到达则转步骤308取下一个地址,否则转步骤306继续处理;
[0043]步骤312,根据搜索地址下载html,并进行网页解析;
[0044]步骤314,查找对应的数据提取条件开始对网页内容进行分析处理;
[0045]步骤316,遍历找到的每组提取条件,如果遍历完毕则转步骤326,否则转步骤318进行处理;
[0046]步骤318,使用数据提取条件中的dom节点信息(节点名称,节点属性,节点层次关系)来分析网页内容,若未找到该节点说明条件不满足,应转步骤316取下一组数据提取条件进行处理,否则转步骤320 ;
[0047]步骤320,对于找到的数据类型内容,以json格式保存到文件;
[0048]步骤322,对于找到的URL地址类型内容,检查地址是否存在于搜索地址队列中,如果已经存在则转步骤326处理;否则转步骤324处理;
[0049]步骤324,将新的URL地址添加到搜索地址队列中,并转步骤312进行递归处理;
[0050]步骤326,检查匹配的规则是否处理完毕,如果没有完成则转步骤316继续处理,否则转步骤328 ;
[0051]步骤328,检查是否接到退出命令或者搜索地址遍历完成且没有定时URL地址需要循环处理,如果完成则转步骤332运行结束;否则转步骤330 ;
[0052]步骤330,进行智能延时处理(防止被网站判定为恶意爬虫,而被拒绝服务),转步骤4继续进行网页搜索。
[0053]步骤332,处理完成,工作流程至此结束。
[0054]如图4所示,本发明网页爬取方法实施例包括:
[0055]步骤402,对样本网页进行训练得到数据提取条件;
[0056]步骤404,从互联网上爬取web网页;
[0057]步骤406,将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。
[0058]其中,步骤402具体包括:
[0059]获取样本网页及所要提取的数据;将所述样本网页解析为dom树结构,得到样本网页dom树;当所要提取的数据为内容数据时,遍历样本网页dom树的节点,分别将内容数据与节点属性值及节点内容进行比较,找到内容数据在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及内容数据在节点中的位置记录为数据提取条件;当所要提取的数据为URL地址时,遍历样本网页dom树的节点,将URL地址与节点内容进行比较,找到URL地址在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及节点URL地址属性记录为数据提取条件。
[0060]步骤404具体包括:遍历URL队列,从URL队列中提取待爬取的URL ;根据所述待爬取的URL从互联网上爬取web网页。
[0061]步骤406中,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据包括:
[0062]从web网页dom树的根节点开始,顺序使用数据提取条件中记录的各节点信息对所述web网页dom树中的节点进行比较匹配定位到所需数据的位置,提取所需数据;当提取到的数据为新URL地址时,检查所述新URL地址是否已爬取或是否需要重新爬取;当提取到的数据为内容数据时,存储所述内容数据。
[0063]如图5所示,以爬取某类特定网页为例,网页爬取方法具体流程如下:
[0064]步骤502,用户提供样本网页和要提取的数据内容,发起网页分析训练请求;
[0065]步骤504,网页分析训练装置接收到训练请求,解析样本网页为dom树结构,并根据要提取的内容生成数据提取条件,然后将数据提取条件提交给网页分析装置使用;
[0066]步骤506,网页分析训练完成,反馈给用户结果;
[0067]步骤508,用户训练完成后,可发起数据爬取请求,对该类网页进行爬取;
[0068]步骤510,网页爬取装置接收到网页爬取请求后,开始发起遍历URL队列请求;
[0069]步骤512,URL队列管理装置接收到遍历URL队列请求,从队列中依次取出待爬取的URL地址返回给网页爬取装置;
[0070]步骤514,网页爬取装置根据URL地址爬取到web网页,并向网页分析装置发起网页分析请求;
[0071]步骤516,网页分析装置接收到网页分析请求,将网页解析为dom树结构,然后根据数据提取条件来精确查找到新的URL地址,并发起新增URL请求给URL队列管理装置;
[0072]步骤518,URL队列管理装置接收到新增URL请求,检查新增URL地址是否已经爬取过或是否需要重新爬取,并将处理结果反馈给网页分析装置;
[0073]步骤520,网页分析装置根据数据提取条件精确查找到数据内容,并发起新增数据请求给数据存储装置;
[0074]步骤522,数据存储装置接收到新增数据请求,将数据以json格式保存到文件中,并返回处理结果;
[0075]步骤524,网页分析装置根据数据提取条件对网页分析完成后,返回网页处理完成给网页爬取装置;
[0076]步骤526,网页爬取装置继续获取URL地址循环上述操作,直到所有的URL地址都爬取完毕,然后向用户反馈数据爬取处理完成。
[0077]至此针对某类特定网页的数据爬取结束。
[0078]本发明基于网页分析训练方法生成数据提取条件,在将web页面解析后生成dom树结构,根据数据提取条件来对web页面进行分析,当条件完全匹配成功后,精确提取所需的网页链接和数据内容,从而保证了数据的准确性,而且因为不需要分析整个网页所以匹配效率高,另外只提取所需网页链接进行网页爬取,能够极大的减少冗余数据,降低网络开销,从而保证数据的时效性。同时可以大幅度减少空间浪费,节省网络资源,并减少存储空间。另外网页训练可以方便的进行数据提取条件的生成,维护方便。
[0079]应说明的是:以上实施例仅用以说明本发明而非限制,本发明也并不仅限于上述举例,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
【权利要求】
1.一种网页爬取方法,其特征在于,包括: 对样本网页进行训练得到数据提取条件; 爬取web网页; 将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。
2.根据权利要求1所述的方法,其特征在于,所述对样本网页进行训练得到数据提取条件包括: 获取样本网页及所要提取的数据; 将所述样本网页解析为dom树结构,得到样本网页dom树; 当所要提取的数据为内容数据时,遍历样本网页dom树的节点,分别将内容数据与节点属性值及节点内容进行比较,找到内容数据在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及内容数据在节点中的位置记录为数据提取条件; 当所要提取的数据为URL地址时,遍历样本网页dom树的节点,将URL地址与节点内容进行比较,找到URL地址在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及节点URL地址属性记录为数据提取条件。
3.根据权利要求1所述的方法,其特征在于,所述爬取web网页包括: 遍历URL队列,从URL队列中提取待爬取的URL ; 根据所述待爬取的URL从互联网上爬取web网页。
4.根据权利要求1所述的方法,其特征在于,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据包括: 从所述web网页dom树的根节点开始,顺序使用数据提取条件中记录的各节点信息对所述web网页dom树中的节点进行比较匹配定位到所需数据的位置,提取所需数据; 当提取到的数据为新URL地址时,检查所述新URL地址是否已爬取或是否需要重新爬取; 当提取到的数据为内容数据时,存储所述内容数据。
5.一种网页爬取系统,其特征在于,包括: 网页训练装置,用于对样本网页进行训练得到数据提取条件; 网页爬取装置,用于从互联网上爬取web网页; 网页分析装置,用于将爬取到的web网页解析成dom树结构,得到web网页dom树,根据所述数据提取条件对所述web网页dom树进行分析,提取所需数据。
6.根据权利要求5所述的系统,其特征在于,所述网页训练装置包括: 获取模块,用于获取样本网页及所要提取的数据; 解析装置,用于将所述样本网页解析为dom树结构,得到样本网页dom树; 条件生成装置,用于当所要提取的数据为内容数据时,遍历样本网页dom树的节点,分别将内容数据与节点属性值及节点内容进行比较,找到内容数据在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及内容数据在节点中的位置记录为数据提取条件;当所要提取的数据为URL地址时,遍历样本网页dom树的节点,将URL地址与节点内容进行比较,找到URL地址在样本网页dom树中的节点,然后从该节点回溯到样本网页dom树的根节点,将回溯中经历的各节点信息以及节点URL地址属性记录为数据提取条件。
7.根据权利要求5所述的系统,其特征在于,还包括:URL队列管理装置,用于遍历URL队列,从URL队列中提取待爬取的URL ; 所述网页爬取装置,用于根据所述待爬取的URL从互联网上爬取web网页。
8.根据权利要求7所述的系统,其特征在于,还包括:数据存储装置, 所述网页分析装置,用于从所述web网页dom树的根节点开始,顺序使用数据提取条件中记录的各节点信息对所述web网页dom树中的节点进行比较匹配定位到所需数据的位置,提取所需数据;当提取到的数据为新URL地址时,将所述URL地址发送到URL队列管理装置;当提取到的数据为内容数据时,将所述内容数据发送到所述数据存储装置; 所述URL队列管理装置,用于检查所述新URL地址是否已爬取或是否需要重新爬取; 所述数据存储装置,用于存储所述内容数据。
9.根据权利要求8所述的系统,其特征在于,所述URL队列包括待访问URL队列和已访问URL队列; 所述URL队列管理装置,用于当所述新URL地址不存在于所述已访问队列中时,将所述新URL地址加入到待访问URL队列和已访问URL队列;否则忽略该新URL地址。
10.根据权利要求8所述的系统,其特征在于,所述数据存储装置,用于以json格式存储所述内容数据。
【文档编号】G06F17/30GK104182412SQ201310198598
【公开日】2014年12月3日 申请日期:2013年5月24日 优先权日:2013年5月24日
【发明者】赵黎, 万鹏, 周崎, 王韬, 何晓军, 于光杰 申请人:中国移动通信集团安徽有限公司, 南京中兴软创科技股份有限公司