一种网络爬虫去重特征值的提取方法和装置制造方法

文档序号:6547947阅读:386来源:国知局
一种网络爬虫去重特征值的提取方法和装置制造方法
【专利摘要】本发明公开了一种网络爬虫去重特征值的提取方法,包括:步骤一,根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式;步骤二,从目标网站的URL地址中捕获与所述正则表达式匹配的字符串;步骤三,对所述字符串进行预定的格式转换,得到所述URL地址的去重特征值。本发明还提供一种网络爬虫去重特征值的提取装置。本发明适用于对不同URL链接指向相同页面的情况实现去重。
【专利说明】一种网络爬虫去重特征值的提取方法和装置
【技术领域】
[0001]本发明涉及互联网【技术领域】,具体涉及一种网络爬虫去重特征值的提取方法和装置。
【背景技术】
[0002]互联网中链接数量庞大,URL(Uniform Resource Locator,统一资源定位符)链接数有上百亿个,网络爬虫(Web Spider)在抓取网页时对重复URL进行过滤去重,可防止对相同网页重复下载,这不仅避免了网络IO资源的浪费和爬虫抓取速度降低,同时也可避免数据冗余和重复处理导致的资源浪费。在爬虫去重过程中,URL去重特征值(唯一标识网页的字符串)的提取是过滤去重的重要环节,去重特征值的正确与否,直接影响爬虫的抓取速度。
[0003]对于去重特征值的生成,主要是针对抓取的URL种子做去重算法,获得URL种子的去重特征值,目前较主流的方法有三种:
[0004]1)MD5去重 特征值生成方法:使用网页URL链接做MD5运算,将得到的MD5值作为去重特征值。
[0005]2) Hash去重特征值生成方法:使用网页URL链接做Hash运算,将得到的hash值作为去重特征值。
[0006]3)URL字符串特征值生成方法:直接使用网页URL作为去重特征值。
[0007]经过大量研究分析发现,利用上述三类方案,虽然能够获得去重特征值,实现URL的过滤去重,但是,对于不同的URL指向相同网页的情况,此类方案还是针对不同URL生成不同的去重特征值,则爬虫也将无法识别重复页面,仍将每个URL对应的页面一一下载。例如,新浪微博的两条 URL 链接 “http://weib0.com/2946321900/zEeRM2NCS” 和 “http://weib0.com/2946321900/zEeRM2NCS ? a”,两条链接是指向同一个微博页面的,但是这两条微博的URL串并不是完全一样。那么,用现有的去重特征值生成方法对这两个URL串处理,会产生两个不同的去重特征值,网络爬虫会认为这是两个不同的网页,进而进行重复下载,这也就意味着去重失败。
[0008]对于上述情况,对于相同页面的不同URL去重失败,不仅存在网络资源和系统内存方面的浪费,并且在数据挖掘领域,将相同页面当成不同页面进行处理将严重影响最终的数据分析效果。

【发明内容】

[0009]有鉴于此,本发明提出一种网络爬虫去重特征值的提取方法和装置,根据目标网站URL特点,提取URL特征子串用来生成去重特征值,可实现相同页面的不同URL的去重。
[0010]本发明提供一种网络爬虫去重特征值的提取方法,包括:步骤一,根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式;步骤二,从目标网站的URL地址中捕获与正则表达式匹配的字符串;步骤三,对字符串进行预定的格式转换,得到URL地址的去重特征值。
[0011]优选地,在步骤三之前,该方法还包括:为步骤二中捕获的字符串添加第一预设编号和第二预设编号;其中第一预设编号与目标网站相对应,第二预设编号与URL种子的类型相对应。
[0012]优选地,URL种子的类型包括指向入口类型、指向列表类型和指向单品类型。
[0013]优选地,在步骤三中,进行预定的格式转换时采用MD5第5版信息摘要算法运算。
[0014]优选地,在步骤三之后,该方法还包括:查询去重特征值集合,判断URL地址的去重特征值是否存在于去重特征值集合中,如果存在,放弃URL地址的去重特征值;如果不存在,下载URL地址的页面,并将URL地址的去重特征值添加至去重特征值集合中;其中去重特征值集合中的元素为已完成页面下载的URL地址的去重特征值。
[0015]优选地,去重特征值集合存储于Redis存储系统中,其中以去重特征值为键,以对应的数据库自增ID为值。
[0016]优选地,在步骤一中,如果目标网站的URL种子特征为该URL种子中含有商品库存量单位SKU信息,则在步骤二中,从URL地址中捕获的字符串至少含有SKU信息。
[0017]本发明还提供一种网络爬虫去重特征值的提取装置,包括:正则表达式生成模块,用于根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式;字符串捕获模块,用于从目标网站的URL地址中捕获与正则表达式匹配的字符串;去重特征值提取模块,用于对字符串进行预定的格式转换,得到URL地址的去重特征值。
[0018]本发明的有益效果:本发明提出一种针对能唯一标识网页特征值的提取方案,一方面可以生成唯一的网页特征串,避免传统网络爬虫重复下载、同一网页二次抽取的情况;另一方面该特征串比原URL串的长度更短,在使用特征串进行运算时,运算效率更高,可节约所需内存空间和中央处理器CPU资源。本发明基于定向网络爬虫的特点,可迎合网络爬虫快速去重的需求,弥补现有特征值提取方法的不足,提高网络爬虫去重的准确性,对电商商品信息抓取,微博、新闻网站信息抓取的去重效果明显。将该方案应用于互联网成千上万的网络爬虫应用,将大幅减少整个互联网的不必要网络流量,优化互联网环境。
【专利附图】

【附图说明】
[0019]图1是本发明实施例的网络爬虫去重特征值的提取方法流程框图。
[0020]图2是本发明的优选实施例的网络爬虫去重特征值的提取方法流程框图。
[0021]图3是本发明实施例的网络爬虫去重特征值的提取装置结构框图。
[0022]图4是本发明优选实施例的网络爬虫去重特征值的提取装置结构框图。
【具体实施方式】
[0023]以下结合附图以及具体实施例,对本发明的技术方案进行详细描述。
[0024]本发明基于目标网站URL字符串的特征,从爬虫推送的URL链接中提取能唯一标识该网页的子串作为网页特征串,然后对特征串进行格式转换得到去重特征值。针对有多个URL链接指向同一页面的情况,通过该方法的特征值去重后,对该页面仅下载一次,不会发生重复下载的情况。
[0025]图1示出了本发明实施例的网络爬虫去重特征值的提取方法的流程框图,包括:[0026]SlOl,根据目标网站的URL域名和URL种子特征生成正则表达式;
[0027]S102,从目标网站的URL地址中捕获与正则表达式匹配的字符串;
[0028]S103,将该字符串作为URL地址的特征字符串,对特征字符串进行预定的格式转换,得到页面的去重特征值。
[0029]在实际应用场景中,上述的爬虫URL去重规则针对定向网站的URL去重,即事先已经掌握所要抓取的目标网站的信息,如网站URL域名和种子特征等,以亚马逊网站数据抓取的去重特征值抽取为例,参考图2,URL域名为誦.amazon, cn,爬虫推送待抓取的URL种子,例如:
[0030]http://www.amazon.cn/Kindle-Fire-HD-16GB-% E5% B9% B3% E6% 9D% BF %E7% 94% B5% E8% 84% 91/dp/B00960YR3Q/ref = sr_l_l ? s = pc&ie = UTF8&qid =1393480965&sr = 1-1,以及
[0031]http://www.amazon, cn/gp/product/B00960YR3Q/ref = famstripe_kfh_sale。[0032]上述两个亚马逊网站的URL链接指向同一个产品页,两者中都含有字符串“B00960YR3Q”,该字符串表征的是产品的SKU(Stock Ke印ingUnit,库存量单位)信息。关于SKU,其是产品库存进出计量的单位,是大型连锁超市配送中心及物流管理的必要方法,目前SKU已被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。
[0033]也就是说,该产品页的URL中含有产品的SKU,掌握了这种URL种子的特征,正则表达式的编写规则可根据URL域名和种子特征来编写,目的是将具有共性特征的产品SKU提取出来,例如,本实施例编写的正则表达式可为:http://www.amazon, cn/.* ? /(dp I product) / ([\w] +)/.其中,正则表达式的组I即第一个括号(dp Iproduct)表示匹配元素为字符串“dp”或“product”,组2即第二个括号(「W1+)表示匹配元素是任何数字和字母。
[0034]然后,利用编写好的正则表达式,从例如第一个URL可捕获组2匹配的字符串,捕获结果是子串B00960YR3Q,B00960YR3Q就是该第一个URL链接的特征串。
[0035]最后,为统一字符串格式,对特征串B00960YR3Q进行格式转换,例如可采用32位MD5运算、32位Rabin Hash算法等。
[0036]以采用MD5运算为例,转换后得到:
[0037]08BD80B9CEB6450CD2804BFF6E698EF4,即提取到了第一个 URL 的去重特征值,也可称为MD5特征值。
[0038]将去重特征值存放在去重特征值集合中,在后续处理应用中,当爬虫推送第二个URL时,根据正则表达式捕获到的特征串必然也是B00960YR3Q,得到的MD5特征值必然也是08BD80B9CEB6450CD2804BFF6E698EF4,则在进行URL去重时,发现去重特征值集合中已经存在该MD5特征值,说明出现了重复特征值,则将第二个URL的MD5特征值过滤掉,对应的页面不予下载。
[0039]利用上述方案,可以从URL种子中提取特征字符串,得到网页的唯一特征值,达到正确去重的目的,指向同一网页的URL只需下载一次,减少下载次数,节省网络带宽;并且,以少量的去重特征值代替以往一个URL对应一个特征值的形式,可节省去重特征值集合所占内存,同时节省网页存储空间。
[0040]此外,以产品的SKU信息作为URL种子特征编写正则表达式的好处是,对于例如电商的商品信息,同一件产品只对应唯一的SKU号,而顾客想要找到该产品的入口则非常多(比如综合性电商网站的列表页、商家的网络旗舰店等),不同的入口将生成不同的URL链接,本发明利用这些链接中作为共性存在的SKU号提取出去重特征值,那么对于同一件产品的网络信息页面将只需要下载一次,而不会反复下载,去重效果明显。
[0041 ] 在本发明的实施例中,在以MD5运算生成MD5特征值之前,为了区分和记录方便,可针对不同的感兴趣网站,对URL的特征串添加目标网站的编号和种子的类型(如入口种子、产品列表页、单品页等)的编号,以“网站编号+种子类型编号+URL的特征串”的形式进行MD5运算。举例来说,对于当当网商城:
[0042]入口种子 URL 为:http://category, dangdang.com/ ? ref = www-0~C#ref =www -0-C,
[0043]列表种子URL 为:http://category, dangdang.com/cid4002778.html,
[0044]单品种子URL为:
[0045]http://product, dangdang.com/1214326222.html#ddclick ? act =click&pos = 1214326222—27—I—m&cat = 4002778&key = &qinfo = &pinfo = &minfo =125561—I—58&ninfo = &custid = &permid = 20140317171356879105326198484281259&ref = &rcount = &type = &t = 1400765930000 ;
[0046]设置目标网站即当当网的编号为01 ;种子的类型有三种(指向入口页面的种子、指向列表页面的种子和指向单品页面种子),编号分别为:指向入口 -01,指向列表-02,指向单品_03。
[0047]对三个URL提取特征串,分别为:
[0048]Category,
[0049]cid4002778,
[0050]1214326222。
[0051]添加网站编号和种子类型编号后为:
[0052]01_01_category,
[0053]01_02_cid4002778,
[0054]01_03_1214326222 ;
[0055]然后进行MD5编码得到MD5特征值,分别为:
[0056]5A21D3BB2332C7D8II5B9D59EF38FDEC,
[0057]854C7CA169C5CE46DCF88ABF696823A9,
[0058]8D585CBE2FCCCCEF11CCB3FA4376E4D3。
[0059]在本发明的实施例中,对于去重特征值集合的建立,可在爬虫爬取URL种子进行去重的过程中逐渐更新扩充。
[0060]首先,将一个入口种子URL的MD5值存储到数据库,存储时,注意设置好网站编号、种子类型编号和URL特征串,将该MD5值作为一个去重特征值保存在数据库,作为去重特征值集合。
[0061]然后,当进行URL去重时,以新生成的MD5特征值查询这个去重特征值集合,发现集合中不存在相同的MD5特征值,说明应当保留该MD5特征值,下载该页面;如果集合中已经存在相同的MD5特征值,说明应当将该MD5特征值过滤掉,实现URL去重。[0062]在实际应用中,通过种子URL爬虫会衍生大量URL,衍生的URL生成MD5特征值,再利用MD5特征值集合去重,同时对MD5特征值集合进行更新。另外,如果抓取到不存在的URL,还可给出“页面不存在”的提示,或者跳转到其它指定页面。
[0063]在本发明的实施例中,存储去重特征值集合的数据库可产生自增ID,基于自增ID和对应的MD5特征值,将MD5特征值作为键,数据库ID作为值,保存至内存存储系统中,如Redis存储系统。
[0064]可以看到,本发明以提取后的子串参与去重特征值的计算,计算效率高,相比之下,原始的以URL地址字符串直接参与去重特征值计算,计算效率低。参考图2实施例,对于
[0065]http://www.amazon.cn/Kindle-Fire-HD-16GB-% E5% B9% B3% E6% 9D% BF %E7% 94% B5% E8% 84% 91/dp/B00960YR3Q/ref = sr_l_l ? s = pc&ie = UTF8&qid =1393480965&sr = 1-1和
[0066]http://www.amazon.cn/gp/product/B00960YR3Q/ref = famstripe_kfh_sale,以往将保存两个种子到去重特征值集合,而利用本发明仅需要保存一个去重特征值,推而广之,如果有一亿数量的URL地址需去重计算,本发明对每个URL提取之后的特征子串为原URL字符串的一半长度,那么参与计算的字符串将减少一半数量,减少到5千万,相应地需要的内存和CPU资源也可减少一半。对于大型网络爬虫需处理去重的URL地址数亿的情况,当大量该类型的种子存在时,可大量减少需要的计算和机器内存,从而节省存储空间和软硬资源。
[0067]除此之外, 本发明还提供一种网络爬虫去重特征值的提取装置,参考图3,包括:
[0068]正则表达式生成模块11,用于根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式;
[0069]字符串捕获模块12,用于从目标网站的URL地址中捕获与正则表达式匹配的字符串;
[0070]去重特征值提取模块13,用于对字符串进行预定的格式转换,得到URL地址的去重特征值。
[0071]其中,该装置还包括字符串处理模块14,参考图4,其用于为字符串捕获模块捕获的字符串添加第一预设编号和第二预设编号;其中第一预设编号与目标网站相对应,第二预设编号与URL种子的类型相对应。
[0072]其中,该装置还包括去重特征值处理模块15,用于查询去重特征值集合,并判断URL地址的去重特征值是否存在于去重特征值集合中,如果存在,去重特征值处理模块放弃URL地址的去重特征值;如果不存在,去重特征值处理模块通知下载URL地址的页面,并将URL地址的去重特征值添加至去重特征值集合中;其中去重特征值集合中的元素为已完成页面下载的URL地址的去重特征值。
[0073]以上,结合具体实施例对本发明的技术方案进行了详细介绍,所描述的具体实施例用于帮助理解本发明的思想。本领域技术人员在本发明具体实施例的基础上做出的推导和变型也属于本发明保护范围之内。
【权利要求】
1.一种网络爬虫去重特征值的提取方法,其特征在于,包括: 步骤一,根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式; 步骤二,从目标网站的URL地址中捕获与所述正则表达式匹配的字符串; 步骤三,对所述字符串进行预定的格式转换,得到所述URL地址的去重特征值。
2.如权利要求1所述的网络爬虫去重特征值的提取方法,其特征在于,在步骤三之前,所述方法还包括: 为步骤二中捕获的字符串添加第一预设编号和第二预设编号;其中第一预设编号与目标网站相对应,第二预设编号与URL种子的类型相对应。
3.如权利要求2所述的网络爬虫去重特征值的提取方法,其特征在于,所述URL种子的类型包括指向入口类型、指向列表类型和指向单品类型。
4.如权利要求1所述的网络爬虫去重特征值的提取方法,其特征在于,在步骤三中,进行所述预定的格式转换时采用MD5第5版信息摘要算法运算。
5.如权利要求1所述的网络爬虫去重特征值的提取方法,其特征在于,在步骤三之后,所述方法还包括: 查询去重特征值集合,判断所述URL地址的去重特征值是否存在于所述去重特征值集合中,如果存在,放弃所述URL地址的去重特征值;如果不存在,下载所述URL地址的页面,并将所述URL地址的 去重特征值添加至所述去重特征值集合中;其中所述去重特征值集合中的元素为已完成页面下载的URL地址的去重特征值。
6.如权利要求5所述的网络爬虫去重特征值的提取方法,其特征在于,所述去重特征值集合存储于Redis存储系统中,其中以去重特征值为键,以对应的数据库自增ID为值。
7.如权利要求1所述的网络爬虫去重特征值的提取方法,其特征在于,在步骤一中,如果目标网站的URL种子特征为该URL种子中含有商品库存量单位SKU信息,则在步骤二中,从所述URL地址中捕获的字符串至少含有所述SKU信息。
8.—种网络爬虫去重特征值的提取装置,其特征在于,包括: 正则表达式生成模块,用于根据目标网站的统一资源定位符URL域名和URL种子特征生成正则表达式; 字符串捕获模块,用于从目标网站的URL地址中捕获与所述正则表达式匹配的字符串; 去重特征值提取模块,用于对所述字符串进行预定的格式转换,得到所述URL地址的去重特征值。
9.如权利要求8所述的网络爬虫去重特征值的提取装置,其特征在于,所述装置还包括: 字符串处理模块,用于为所述字符串捕获模块捕获的字符串添加第一预设编号和第二预设编号;其中第一预设编号与目标网站相对应,第二预设编号与URL种子的类型相对应。
10.如权利要求9所述的网络爬虫去重特征值的提取装置,其特征在于,所述URL种子的类型包括指向入口类型、指向列表类型和指向单品类型。
11.如权利要求8所述的网络爬虫去重特征值的提取装置,其特征在于,在所述去重特征值提取模块进行所述预定的格式转换时采用MD5第5版信息摘要算法运算。
12.如权利要求8所述的网络爬虫去重特征值的提取装置,其特征在于,所述装置还包括: 去重特征值处理模块,用于查询去重特征值集合,并判断所述URL地址的去重特征值是否存在于所述去重特征值集合中,如果存在,所述去重特征值处理模块放弃所述URL地址的去重特征值;如果不存在,所述去重特征值处理模块通知下载所述URL地址的页面,并将所述URL地址的去重特征值添加至所述去重特征值集合中;其中所述去重特征值集合中的元素为已完成页面下载 的URL地址的去重特征值。
13.如权利要求12所述的网络爬虫去重特征值的提取装置,其特征在于,所述去重特征值集合存储于Redis存储系统中,其中以去重特征值为键,以对应的数据库自增ID为值。
14.如权利要求8所述的网络爬虫去重特征值的提取装置,其特征在于,如果目标网站的URL种子特征为该URL种子中含有商品库存量单位SKU信息,则所述字符串捕获模块从所述URL地址中捕获的字符串至少含有所述SKU信息。
【文档编号】G06F17/30GK103984753SQ201410231745
【公开日】2014年8月13日 申请日期:2014年5月28日 优先权日:2014年5月28日
【发明者】黎小为, 周东 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1