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

文档序号:8922587阅读:来源:国知局
9,若否则从该待测URL列表中选取一 URL与该若干正则表达式逐一匹配,若和任意一正则表达式匹配成功则执行S8,若和所有正则表达式匹配失败则执行S41 ;
[0039]S9为:从该数据库中选取一个设置有爬虫标志位和检测标志位的URL作为该初始URL,并返回S。。
[0040]本领域技术人员应当理解,实际上上述步骤Stl的执行分为两种情况。第一种情况下Stl相当于上述网页爬取方法中的初始步骤,这时的初始URL通常是由用户手动进行设置或者预设。第二种情况下则是在上述网页爬取方法的进行过程中执行步骤Stl,这时初始URL是由步骤S9从该数据库中选取的符合条件的URL,并不受用户的输入或者设置的控制。
[0041]较佳地,S0为:读取初始URL,并爬取该初始URL对应的网页正文,识别其中是否有ajax或js动态生成的URL链接,若否则直接从中提取URL并将提取的URL加入到该待测URL列表中,若是则采用QTWebkit引擎动态模拟浏览器行为以抓取动态URL并将抓取的URL加入到待测URL列表中,然后执行S1。
[0042]其中,ajax是指Asynchronous JavaScript and XML,是一种用于创建快速动态网页的技术,QTWebkit引擎是一种现有的开源浏览器引擎。针对用户交互点击或滑动等操作才能触发的URL链接,通过调用QTWebkit API (应用程序编程接口)获取网页正文DOM (即文件对象模型)树,并对其遍历,筛选出可能存在交互的DOM对象,再通过QTWebkit API模拟操作JS触发DOM对象的逻辑,获得动态链接。对于ajax之类没有生成网页正文的链接,通过 HOOK QTffebkit 中的 QNetworkAccessManager 类的 Createrequest 方法,触发 HTTP 请求来获取动态链接。
[0043]本发明还提供了一种伪静态URL的筛除系统,其特点在于,包括:
[0044]URL列表模块,用于获取记录有多个URL的一待测URL列表;
[0045]正则列表模块,用于建立一数据库以及读取一 URL正则列表,该URL正则列表包括若干正则表达式;
[0046]正则表达式匹配模块,用于在该待测URL列表发生变化时从该待测URL列表中选取一 URL与该若干正则表达式逐一匹配,若和任意一正则表达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用URL路径分类模块,其中在该待测URL列表发生变化时是指以下两种情况:读取了新的URL正则列表以及原有URL正则列表中的URL被删除;
[0047]URL路径分类模块,用于在该数据库中搜索和该URL具有相同路径的URL作为同路径URL,将该数据库中的其他URL作为不同路径URL ;
[0048]参数比对模块,用于将该URL逐一同所有同路径URL进行参数及参数的值的比对,在同所有同路径URL的比对结果均为参数不相同的情况下,对该URL设置爬虫标志位和检测标志位并启用相似度判断模块,在同至少一个同路径URL的比对结果为参数相同且参数的值属于非数字型的情况下启用第一判断模块,在同至少一个同路径URL的比对结果为参数相同且参数的值属于数字型的情况下启用第一更新模块;
[0049]第一判断模块,用于判断同路径URL中和该URL具有相同参数的URL的个数是否大于预设的一第一阈值,若是则启用第一更新模块,若否则对该URL设置爬虫标志位和检测标志位并启用URL相似度判断模块;
[0050]URL相似度判断模块,用于计算该URL和各个不同路径URL的URL相似度,并判断URL相似度的最大值是否大于预设的一第二阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并启用第一更新模块,若否则启用网页结构相似度判断模块,其中该URL和任意一不同路径URL的URL相似度定义为两者的编辑距离;
[0051]网页结构相似度判断模块,用于采用网页结构相似度算法计算该URL和各个不同路径URL对应的网页正文的相似度,并判断计算得到的网页正文的相似度的最大值是否大于预设的一第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更新模块;
[0052]第一更新模块,用于将该URL存储至该数据库,从该待测URL列表中删除该URL ;
[0053]第二更新模块,用于通过预设的一散列函数将该URL处理为一散列值,判断该数据库中是否存有该散列值,若是则从该待测URL列表中删除该URL,若否则将该URL及该散列值存储至该数据库、然后从该待测URL列表中删除该URL。
[0054]较佳地,URL相似度判断模块用于根据该URL的扩展名、该URL的参数以及该URL和该任意一不同路径URL中至少一类字符段的相同字符段频数确定该URL和任意一不同路径URL的URL相似度;
[0055]URL相似度判断模块包括一相同字符段频数单元,该相同字符段频数单元用于首先根据该类字符段相对应的预设规则分别从该URL和该任意一不同路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段个数,然后根据在URL中的先后顺序对比从该URL和该任意一不同路径URL中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致字符段个数,最后计算一致字符段个数和该URL对应的字符段个数的比值作为该类字符段的相同字符段频数,每一类字符段为满足相应预设规则的URL中的字符段,该URL中任意一类字符段的相同字符段频数。
[0056]较佳地,该URL和该任意一不同路径URL的URL相似度由以下公式定义:
[0057]S12=a1*d12+a2>l<f (extj +g (cha12, num12, non12, per12) +a3*h (Par1);
[0058]上述公式中,d12为该URL和该任意一不同路径URL的编辑距离,Mt1为该URL的扩展名、f为预设的扩展名集至数集的映射,Par1为该URL的参数、h为预设的参数集至数集的映射,Cha12、Mim12、n0n12、Per12依次分别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符段的相同字符段频数,g为预设的一函数,B1, a2、a3为预设的系数,S12为该URL和该任意一不同路径URL的URL相似度;
[0059]其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。
[0060]较佳地,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。
[0061]较佳地,网页结构相似度判断模块包括一噪声标签移除单元和一子树匹配单元;
[0062]该噪声标签移除单元用于从该URL和各个不同路径URL对应的网页正文中去除所有噪声标签,其中噪声标签包括以下html标签中的全部或部分:
[0063]“br,,、“p,,、“font,,、“em,,、“laber,、“span,,、“strong,,、“b,,、“u,,、“i,,、“big,,、“small”、“sup”、“sub”;
[0064]该子树匹配单元用于采用基于子树最优有序匹配规则的相似度度量方法或者基于子树最优自由匹配规则的相似度度量方法计算去除噪声标签后的该URL和各个不同路径URL对应的网页正文的相似度,然后判断计算得到的网页正文的相似度的最大值是否大于该第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更新模块。
[0065]本发明还提供了一种网页爬取系统,其特点在于,包括了上述的筛除系统以及初始化模块和待爬取URL选取模块;
[0066]初始化模块用于读取初始URL,并爬取该初始URL对应的网页正文,从中提取URL并将提取的URL加入到该待测URL列表中,然后执行URL列表模块;
[0067]该正则表达式匹配模块用于判断该待测URL列表是否为空,若是则启用待爬取URL选取模块,若否则在该待测URL列表发生变化时从该待测URL列表中选取一 URL与该若干正则表达式逐一匹配,若和任意一正则表达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用URL路径分类模块;
[0068]待爬取URL选取模块用于从该数据库中选取一个设置有爬虫标志位和检测标志位的URL作为该初始URL,并启用初始化模块。
[0069]本领域技术人员容易理解,该网页爬取系统中的正则表达式匹配模块和上述筛除系统中的是有所不同的。
[0070]较佳地,初始化模块用于读取初始URL,并爬取该初始URL对应的网页正文,识别其中是否有ajax或js动态生成的URL链接,若否则直接从中提取URL并将提取的URL加入到该待测URL列表中,若是则采用QTWebkit引擎动态模拟浏览器行为以抓取动态URL并将抓取的URL加入到待测URL列表中,然后执行URL列表模块。
[0071]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0072]本发明的积极进步效果在于:
[0073]本发明的伪静态URL的筛除方法、系统及网页爬取方法、系统针对网站使用的伪静态技术,实现了对伪静态URL的自动识别,以过滤大量重复、无用的伪静态URL,提取有价值的URL进行安全检测,提高了爬行效率和爬行准确性。并且,还通过QTwebkit引擎模拟操作行为,实现了对JS、AJAX等动态链接的提取,增加了爬虫抓取网页的全面性。
【附图说明】
[0074]图1为本发明实施例1的伪静态URL的筛除方法的流程图。
[0075]图2为本发明实施例3的伪静态URL的筛除系统的示意图。
【具体实施方式】
[0076]下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案,但并不因此将本发明限制在所述的实施例范围之中。
[0077]实施例1
[0078]参考图1所示,本实施例的伪
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1