伪静态url的筛除方法、系统及网页爬取方法、系统的制作方法

文档序号:8922587阅读:961来源:国知局
伪静态url的筛除方法、系统及网页爬取方法、系统的制作方法
【技术领域】
[0001]本发明涉及一种伪静态URL的筛除方法、系统及网页爬取方法、系统。
【背景技术】
[0002]随着互联网技术迅猛发展,静态网页的时代已然成为历史,如今WEB2.0模式的影响力使得越来越多的网站向着动态、交互性的方向快速转变。由于针对JS技术(JS即JavaScript,是一种基于对象和事件驱动的客户端脚本语言)和伪静态技术的应用愈发广泛,基于传统获取网页源码的爬虫已力不从心。
[0003]如今,大型网站的内容越来越多,为了提高访问速度和获得良好的搜索引擎优化,大部分网站都会使用伪静态技术。伪静态是相对真实静态而言的,伪静态技术实际上利用了动态脚本处理方法通,但展现方式是以静态页面的方式,从而在利用动态脚本的同时保持了对搜索引擎的友好面。采用伪静态技术的链接会按照规则生成一系列URL,而现有的爬虫技术由于没有网页相似度方面的检测,因而会将伪静态的URL作为新产生的URL收录在数据库中。如此就造成在安全检测等方面的应用中,爬虫会提取大部分相同或是同一个伪静态规则对应的同一个URL,导致扫描效率大幅下降。

【发明内容】

[0004]本发明要解决的技术问题是为了克服现有技术中的爬虫难以识别采用伪静态的URL,从而导致爬虫会提取大量相同的伪静态规则对应的URL,造成扫描效率大幅下降的缺陷,提出一种伪静态URL的筛除方法、系统及网页爬取方法、系统。
[0005]本发明是通过下述技术方案来解决上述技术问题的:
[0006]本发明提供了一种伪静态URL的筛除方法,其特点在于,包括以下步骤:
[0007]S1、获取记录有多个URL的一待测URL列表;
[0008]S2、读取一 URL正则列表,该URL正则列表包括若干正则表达式,并建立一数据库;
[0009]S3、从该待测URL列表中选取一 URL与该若干正则表达式逐一匹配,若和任意一正则表达式匹配成功则执行S8,若和所有正则表达式匹配失败则执行S41 ;
[0010]S41、在该数据库中搜索和该URL具有相同路径的URL作为同路径URL,将该数据库中的其他URL作为不同路径URL ;
[0011]S42、将该URL逐一同所有同路径URL进行参数及参数的值的比对,在同所有同路径URL的比对结果均为参数不相同的情况下,对该URL设置爬虫标志位和检测标志位并执行S5,在同至少一个同路径URL的比对结果为参数相同且参数的值属于非数字型的情况下执行S43,在同至少一个同路径URL的比对结果为参数相同且参数的值属于数字型的情况下执行S7 ;
[0012]S43、判断同路径URL中和该URL具有相同参数的URL的个数是否大于预设的一第一阈值,若是则执行S7,若否则对该URL设置爬虫标志位和检测标志位并执行S5 ;
[0013]S5、计算该URL和各个不同路径URL的URL相似度,并判断URL相似度的最大值是否大于预设的一第二阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并执行S7,若否则执行S6,其中该URL和任意一不同路径URL的URL相似度定义为两者的编辑距离;
[0014]S6、采用网页结构相似度算法计算该URL和各个不同路径URL对应的网页正文的相似度,并判断计算得到的网页正文的相似度的最大值是否大于预设的一第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并执行S7,若否则执行S7 ;
[0015]S7、将该URL存储至该数据库、从该待测URL列表中删除该URL并返回S3 ;
[0016]S8、通过预设的一散列函数将该URL处理为一散列值,判断该数据库中是否存有该散列值,若是则从该待测URL列表中删除该URL并返回S3,若否则将该URL及该散列值存储至该数据库、然后从该待测URL列表中删除该URL并返回S3。
[0017]本领域技术人员应当理解,URL即统一资源定位符,其是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。完整的、带有授权部分的普通统一资源定位符语法大体如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志。步骤&中读取的该URL正则列表实际上可以是人工导入的伪静态规则的识别逻辑,即以人工编写的若干正则表达式来实现伪静态规则的识别逻辑。举例来说,若某网站具有大量的类似WWW.XX.com/news_022.html、www.xx.com/news_81.html 路径的 URL,人工编写一正则表达式以识别此类以news+下划线+数字+.html为路径的网页为伪静态网页。步骤S2中建立的该数据库,既可以是预存入部分URL,也可以是建立初始状态为空的数据库。
[0018]步骤S3用于将URL与正则表达式进行匹配。如果与正则表达式匹配成功,则认定URL是伪静态URL,这时执行S8以将该URL与其相应的hash (即散列值,也称为哈希)存入该数据库,若相应的散列值在数据库中已经存有,则不再重复存储该URL和相应的散列值,以保证每一类伪静态URL在数据库中的唯一性。在上述筛除方法中,步骤S3优先执行,如果匹配成功则跳过后面的步骤,从而提高判别伪静态网页的速度。
[0019]URL根据参数的值分为数字型和非数字型以及GET和POST提交类型。在步骤S41?S43中,从该数据库中搜索和当前URL路径相同的URL分类进行遍历比较,比较参数和参数的值。其中该第一阈值可以由本领域技术人员根据实际情况进行设置,举例来说通常可以设置为3?5。根据参数和参数的值的比对情况确定该URL是否需要进行爬取和检测,相应地,如果判断该URL需要进行爬取和检测则对该URL设置爬虫标志位和检测标志位。在此种情况下还需要同该数据库中的和当前URL路径不同的URL进行遍历比较,即步骤S5?S6。反之,对于在该数据库中已经存储有和该URL相似度较高或者重复的URL,则不对该URL设置标志位。
[0020]在步骤S5中实质上是对URL本身,即对URL的字符串的相似度进行比较,在步骤S6则是对URL相对应的网页正文的相似度进行比较。其中,URL相似度定义为编辑距离,即相比较的两个URL的字符串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
[0021 ] 较佳地,该URL和任意一不同路径URL的URL相似度由该URL的扩展名、该URL的参数以及该URL和该任意一不同路径URL中至少一类字符段的相同字符段频数确定,其中一类字符段的相同字符段频数通过下述步骤确定:
[0022]S5tll、根据该类字符段相对应的预设规则分别从该URL和该任意一不同路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段个数;
[0023]S5tl2、根据在URL中的先后顺序对比从该URL和该任意一不同路径URL中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致字符段个数;
[0024]S5tl3、计算一致字符段个数和该URL对应的字符段个数的比值作为该类字符段的相同字符段频数,每一类字符段为满足相应预设规则的URL中的字符段,该URL中任意一类字符段的相同字符段频数。
[0025]其中,每一类字符段对应一预设规则,预设规则可以根据字符段的分类要求进行预先设置。
[0026]较佳地,该URL和该任意一不同路径URL的URL相似度由以下公式定义:
[0027]S12=a1*d12+a2>l<f (extj +g (cha12, num12, non12, per12) +a3*h (Par1);
[0028]上述公式中,d12为该URL和该任意一不同路径URL的编辑距离,Mt1为该URL的扩展名、f为预设的扩展名集至数集的映射,Par1为该URL的参数、h为预设的参数集至数集的映射,Cha12、Mim12、n0n12、Per12依次分别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符段的相同字符段频数,g为预设的一函数,B1, a2、a3为预设的系数,S12为该URL和该任意一不同路径URL的URL相似度;
[0029]其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。
[0030]较佳地,g(cha12,num12, non12, per12) =a4*cha12+a5*num12+a6*non12+a7*per12,其中 a4、a5、a6、a7为预设的系数,在该URL的扩展名exi^为html >xml或htm时f (Gxt1)=Lext1为其他扩展名时f (exti) =0,在该URL的参数Par1为空时h (Par1) =0,在Par1不为空时h (Par1) =1。
[0031]较佳地,S6包括以下步骤:
[0032]S61、从该URL和各个不同路径URL对应的网页正文中去除所有噪声标签,其中噪声标签包括以下html标签中的全部或部分:
[0033]“br,,、“p,,、“font,,、“em,,、“laber,、“span,,、“strong,,、“b,,、“u,,、“i,,、“big,,、“small”、“sup”、“sub”;
[0034]S62、采用基于子树最优有序匹配规则的相似度度量方法或者基于子树最优自由匹配规则的相似度度量方法计算去除噪声标签后的该URL和各个不同路径URL对应的网页正文的相似度;
[0035]S63、判断S62计算得到的网页正文的相似度的最大值是否大于该第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并执行S7,若否则执行S7。
[0036]本发明还提供了一种网页爬取方法,其特点在于,包括上述筛除方法,该网页爬取方法还包括步骤S9和在该筛除方法执行前进行的步骤Stl ;
[0037]S0为:读取初始URL,并爬取该初始URL对应的网页正文,从中提取URL并将提取的URL加入到该待测URL列表中,然后执行S1 ;
[0038]S3为:判断该待测URL列表是否为空,若是则执行S
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1