首页> 中国专利> 伪静态URL的筛除方法、系统及网页爬取方法、系统

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

摘要

本发明公开了一种伪静态URL的筛除方法、系统及网页爬取方法、系统。该筛除方法包括以下步骤:获取待测URL列表;读取URL正则列表并建立一数据库;选取一URL与正则表达式逐一匹配;将数据库中的URL根据路径分类;比对该URL和同路径URL的参数及值以确定是否设标志位;根据URL相似度及网页结构相似度决定是否设标志位;将该URL存储至数据库中。本发明的伪静态URL的筛除方法、系统及网页爬取方法、系统针对网站使用的伪静态技术,实现了对伪静态URL的自动识别,以过滤大量重复、无用的伪静态URL,提取有价值的URL进行安全检测,提高了爬行效率和爬行准确性。

著录项

  • 公开/公告号CN104899219A

    专利类型发明专利

  • 公开/公告日2015-09-09

    原文格式PDF

  • 申请/专利权人 携程计算机技术(上海)有限公司;

    申请/专利号CN201410081110.5

  • 发明设计人 王笑天;董晓琼;罗启武;

    申请日2014-03-06

  • 分类号G06F17/30(20060101);

  • 代理机构31283 上海弼兴律师事务所;

  • 代理人薛琦;王婧荷

  • 地址 200335 上海市长宁区福泉路99号携程网络技术大楼

  • 入库时间 2023-12-18 10:55:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-18

    授权

    授权

  • 2017-01-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140306

    实质审查的生效

  • 2016-02-24

    专利申请权的转移 IPC(主分类):G06F17/30 登记生效日:20160201 变更前: 变更后: 申请日:20140306

    专利申请权、专利权的转移

  • 2015-09-09

    公开

    公开

说明书

技术领域

本发明涉及一种伪静态URL的筛除方法、系统及网页爬取方法、系统。

背景技术

随着互联网技术迅猛发展,静态网页的时代已然成为历史,如今WEB2.0 模式的影响力使得越来越多的网站向着动态、交互性的方向快速转变。由于 针对JS技术(JS即JavaScript,是一种基于对象和事件驱动的客户端脚本语 言)和伪静态技术的应用愈发广泛,基于传统获取网页源码的爬虫已力不从 心。

如今,大型网站的内容越来越多,为了提高访问速度和获得良好的搜索 引擎优化,大部分网站都会使用伪静态技术。伪静态是相对真实静态而言的, 伪静态技术实际上利用了动态脚本处理方法通,但展现方式是以静态页面的 方式,从而在利用动态脚本的同时保持了对搜索引擎的友好面。采用伪静态 技术的链接会按照规则生成一系列URL,而现有的爬虫技术由于没有网页相 似度方面的检测,因而会将伪静态的URL作为新产生的URL收录在数据库 中。如此就造成在安全检测等方面的应用中,爬虫会提取大部分相同或是同 一个伪静态规则对应的同一个URL,导致扫描效率大幅下降。

发明内容

本发明要解决的技术问题是为了克服现有技术中的爬虫难以识别采用 伪静态的URL,从而导致爬虫会提取大量相同的伪静态规则对应的URL, 造成扫描效率大幅下降的缺陷,提出一种伪静态URL的筛除方法、系统及 网页爬取方法、系统。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种伪静态URL的筛除方法,其特点在于,包括以下步 骤:

S1、获取记录有多个URL的一待测URL列表;

S2、读取一URL正则列表,该URL正则列表包括若干正则表达式,并 建立一数据库;

S3、从该待测URL列表中选取一URL与该若干正则表达式逐一匹配, 若和任意一正则表达式匹配成功则执行S8,若和所有正则表达式匹配失败则 执行S41

S41、在该数据库中搜索和该URL具有相同路径的URL作为同路径 URL,将该数据库中的其他URL作为不同路径URL;

S42、将该URL逐一同所有同路径URL进行参数及参数的值的比对,在 同所有同路径URL的比对结果均为参数不相同的情况下,对该URL设置爬 虫标志位和检测标志位并执行S5,在同至少一个同路径URL的比对结果为 参数相同且参数的值属于非数字型的情况下执行S43,在同至少一个同路径 URL的比对结果为参数相同且参数的值属于数字型的情况下执行S7

S43、判断同路径URL中和该URL具有相同参数的URL的个数是否大 于预设的一第一阈值,若是则执行S7,若否则对该URL设置爬虫标志位和 检测标志位并执行S5

S5、计算该URL和各个不同路径URL的URL相似度,并判断URL相 似度的最大值是否大于预设的一第二阈值,若是则对该URL取消爬虫标志 位和检测标志位的设置并执行S7,若否则执行S6,其中该URL和任意一不 同路径URL的URL相似度定义为两者的编辑距离;

S6、采用网页结构相似度算法计算该URL和各个不同路径URL对应的 网页正文的相似度,并判断计算得到的网页正文的相似度的最大值是否大于 预设的一第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置 并执行S7,若否则执行S7

S7、将该URL存储至该数据库、从该待测URL列表中删除该URL并 返回S3

S8、通过预设的一散列函数将该URL处理为一散列值,判断该数据库 中是否存有该散列值,若是则从该待测URL列表中删除该URL并返回S3, 若否则将该URL及该散列值存储至该数据库、然后从该待测URL列表中删 除该URL并返回S3

本领域技术人员应当理解,URL即统一资源定位符,其是对可以从互联 网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源 的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件 的位置以及浏览器应该怎么处理它。完整的、带有授权部分的普通统一资源 定位符语法大体如下:协议://用户名:密码子域名.域名.顶级域名:端口号/ 目录/文件名.文件后缀?参数=值#标志。步骤S2中读取的该URL正则列表实 际上可以是人工导入的伪静态规则的识别逻辑,即以人工编写的若干正则表 达式来实现伪静态规则的识别逻辑。举例来说,若某网站具有大量的类似 www.xx.com/news_022.html、www.xx.com/news_81.html路径的URL,人工编 写一正则表达式以识别此类以news+下划线+数字+.html为路径的网页为伪 静态网页。步骤S2中建立的该数据库,既可以是预存入部分URL,也可以 是建立初始状态为空的数据库。

步骤S3用于将URL与正则表达式进行匹配。如果与正则表达式匹配成 功,则认定URL是伪静态URL,这时执行S8以将该URL与其相应的hash (即散列值,也称为哈希)存入该数据库,若相应的散列值在数据库中已经 存有,则不再重复存储该URL和相应的散列值,以保证每一类伪静态URL 在数据库中的唯一性。在上述筛除方法中,步骤S3优先执行,如果匹配成功 则跳过后面的步骤,从而提高判别伪静态网页的速度。

URL根据参数的值分为数字型和非数字型以及GET和POST提交类型。 在步骤S41~S43中,从该数据库中搜索和当前URL路径相同的URL分类进 行遍历比较,比较参数和参数的值。其中该第一阈值可以由本领域技术人员 根据实际情况进行设置,举例来说通常可以设置为3~5。根据参数和参数的 值的比对情况确定该URL是否需要进行爬取和检测,相应地,如果判断该 URL需要进行爬取和检测则对该URL设置爬虫标志位和检测标志位。在此 种情况下还需要同该数据库中的和当前URL路径不同的URL进行遍历比 较,即步骤S5~S6。反之,对于在该数据库中已经存储有和该URL相似度较 高或者重复的URL,则不对该URL设置标志位。

在步骤S5中实质上是对URL本身,即对URL的字符串的相似度进行比 较,在步骤S6则是对URL相对应的网页正文的相似度进行比较。其中,URL 相似度定义为编辑距离,即相比较的两个URL的字符串之间,由一个转成 另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另 一个字符,插入一个字符,删除一个字符。

较佳地,该URL和任意一不同路径URL的URL相似度由该URL的扩 展名、该URL的参数以及该URL和该任意一不同路径URL中至少一类字 符段的相同字符段频数确定,其中一类字符段的相同字符段频数通过下述步 骤确定:

S501、根据该类字符段相对应的预设规则分别从该URL和该任意一不同 路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段个 数;

S502、根据在URL中的先后顺序对比从该URL和该任意一不同路径URL 中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致字符 段个数;

S503、计算一致字符段个数和该URL对应的字符段个数的比值作为该类 字符段的相同字符段频数,每一类字符段为满足相应预设规则的URL中的 字符段,该URL中任意一类字符段的相同字符段频数。

其中,每一类字符段对应一预设规则,预设规则可以根据字符段的分类 要求进行预先设置。

较佳地,该URL和该任意一不同路径URL的URL相似度由以下公式 定义:

S12=a1*d12+a2*f(ext1)+g(cha12,num12,non12,per12)+a3*h(par1);

上述公式中,d12为该URL和该任意一不同路径URL的编辑距离,ext1为该URL的扩展名、f为预设的扩展名集至数集的映射,par1为该URL的 参数、h为预设的参数集至数集的映射,cha12、num12、non12、per12依次分 别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符 段的相同字符段频数,g为预设的一函数,a1、a2、a3为预设的系数,S12为 该URL和该任意一不同路径URL的URL相似度;

其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规 则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第 三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符 为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为 从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。

较佳地,g(cha12,num12,non12,per12)=a4*cha12+a5*num12+a6*non12+a7*per12, 其中a4、a5、a6、a7为预设的系数,在该URL的扩展名ext1为html、xml或 htm时f(ext1)=1,ext1为其他扩展名时f(ext1)=0,在该URL的参数par1为空 时h(par1)=0,在par1不为空时h(par1)=1。

较佳地,S6包括以下步骤:

S61、从该URL和各个不同路径URL对应的网页正文中去除所有噪声标 签,其中噪声标签包括以下html标签中的全部或部分:

“br”、“p”、“font”、“em”、“label”、“span”、“strong”、“b”、“u”、“i”、“big”、 “small”、“sup”、“sub”;

S62、采用基于子树最优有序匹配规则的相似度度量方法或者基于子树最 优自由匹配规则的相似度度量方法计算去除噪声标签后的该URL和各个不 同路径URL对应的网页正文的相似度;

S63、判断S62计算得到的网页正文的相似度的最大值是否大于该第三阈 值,若是则对该URL取消爬虫标志位和检测标志位的设置并执行S7,若否 则执行S7

本发明还提供了一种网页爬取方法,其特点在于,包括上述筛除方法, 该网页爬取方法还包括步骤S9和在该筛除方法执行前进行的步骤S0

S0为:读取初始URL,并爬取该初始URL对应的网页正文,从中提取 URL并将提取的URL加入到该待测URL列表中,然后执行S1

S3为:判断该待测URL列表是否为空,若是则执行S9,若否则从该待 测URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则 表达式匹配成功则执行S8,若和所有正则表达式匹配失败则执行S41

S9为:从该数据库中选取一个设置有爬虫标志位和检测标志位的URL 作为该初始URL,并返回S0

本领域技术人员应当理解,实际上上述步骤S0的执行分为两种情况。第 一种情况下S0相当于上述网页爬取方法中的初始步骤,这时的初始URL通 常是由用户手动进行设置或者预设。第二种情况下则是在上述网页爬取方法 的进行过程中执行步骤S0,这时初始URL是由步骤S9从该数据库中选取的 符合条件的URL,并不受用户的输入或者设置的控制。

较佳地,S0为:读取初始URL,并爬取该初始URL对应的网页正文, 识别其中是否有ajax或js动态生成的URL链接,若否则直接从中提取URL 并将提取的URL加入到该待测URL列表中,若是则采用QTWebkit引擎动 态模拟浏览器行为以抓取动态URL并将抓取的URL加入到待测URL列表 中,然后执行S1

其中,ajax是指Asynchronous JavaScript and XML,是一种用于创建快 速动态网页的技术,QTWebkit引擎是一种现有的开源浏览器引擎。针对用 户交互点击或滑动等操作才能触发的URL链接,通过调用QTWebkit API(应 用程序编程接口)获取网页正文DOM(即文件对象模型)树,并对其遍历, 筛选出可能存在交互的DOM对象,再通过QTWebkit API模拟操作JS触发 DOM对象的逻辑,获得动态链接。对于ajax之类没有生成网页正文的链接, 通过HOOK QTWebkit中的QNetworkAccessManager类的Createrequest方法, 触发HTTP请求来获取动态链接。

本发明还提供了一种伪静态URL的筛除系统,其特点在于,包括:

URL列表模块,用于获取记录有多个URL的一待测URL列表;

正则列表模块,用于建立一数据库以及读取一URL正则列表,该URL 正则列表包括若干正则表达式;

正则表达式匹配模块,用于在该待测URL列表发生变化时从该待测 URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则表 达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用 URL路径分类模块,其中在该待测URL列表发生变化时是指以下两种情况: 读取了新的URL正则列表以及原有URL正则列表中的URL被删除;

URL路径分类模块,用于在该数据库中搜索和该URL具有相同路径的 URL作为同路径URL,将该数据库中的其他URL作为不同路径URL;

参数比对模块,用于将该URL逐一同所有同路径URL进行参数及参数 的值的比对,在同所有同路径URL的比对结果均为参数不相同的情况下, 对该URL设置爬虫标志位和检测标志位并启用相似度判断模块,在同至少 一个同路径URL的比对结果为参数相同且参数的值属于非数字型的情况下 启用第一判断模块,在同至少一个同路径URL的比对结果为参数相同且参 数的值属于数字型的情况下启用第一更新模块;

第一判断模块,用于判断同路径URL中和该URL具有相同参数的URL 的个数是否大于预设的一第一阈值,若是则启用第一更新模块,若否则对该 URL设置爬虫标志位和检测标志位并启用URL相似度判断模块;

URL相似度判断模块,用于计算该URL和各个不同路径URL的URL 相似度,并判断URL相似度的最大值是否大于预设的一第二阈值,若是则 对该URL取消爬虫标志位和检测标志位的设置并启用第一更新模块,若否 则启用网页结构相似度判断模块,其中该URL和任意一不同路径URL的 URL相似度定义为两者的编辑距离;

网页结构相似度判断模块,用于采用网页结构相似度算法计算该URL 和各个不同路径URL对应的网页正文的相似度,并判断计算得到的网页正 文的相似度的最大值是否大于预设的一第三阈值,若是则对该URL取消爬 虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更新模 块;

第一更新模块,用于将该URL存储至该数据库,从该待测URL列表中 删除该URL;

第二更新模块,用于通过预设的一散列函数将该URL处理为一散列值, 判断该数据库中是否存有该散列值,若是则从该待测URL列表中删除该 URL,若否则将该URL及该散列值存储至该数据库、然后从该待测URL列 表中删除该URL。

较佳地,URL相似度判断模块用于根据该URL的扩展名、该URL的参 数以及该URL和该任意一不同路径URL中至少一类字符段的相同字符段频 数确定该URL和任意一不同路径URL的URL相似度;

URL相似度判断模块包括一相同字符段频数单元,该相同字符段频数单 元用于首先根据该类字符段相对应的预设规则分别从该URL和该任意一不 同路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段 个数,然后根据在URL中的先后顺序对比从该URL和该任意一不同路径 URL中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致 字符段个数,最后计算一致字符段个数和该URL对应的字符段个数的比值 作为该类字符段的相同字符段频数,每一类字符段为满足相应预设规则的 URL中的字符段,该URL中任意一类字符段的相同字符段频数。

较佳地,该URL和该任意一不同路径URL的URL相似度由以下公式 定义:

S12=a1*d12+a2*f(ext1)+g(cha12,num12,non12,per12)+a3*h(par1);

上述公式中,d12为该URL和该任意一不同路径URL的编辑距离,ext1为该URL的扩展名、f为预设的扩展名集至数集的映射,par1为该URL的 参数、h为预设的参数集至数集的映射,cha12、num12、non12、per12依次分 别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符 段的相同字符段频数,g为预设的一函数,a1、a2、a3为预设的系数,S12为 该URL和该任意一不同路径URL的URL相似度;

其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规 则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第 三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符 为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为 从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。

较佳地,g(cha12,num12,non12,per12)=a4*cha12+a5*num12+a6*non12+a7*per12, 其中a4、a5、a6、a7为预设的系数,在该URL的扩展名ext1为html、xml或 htm时f(ext1)=1,ext1为其他扩展名时f(ext1)=0,在该URL的参数par1为空 时h(par1)=0,在par1不为空时h(par1)=1。

较佳地,网页结构相似度判断模块包括一噪声标签移除单元和一子树匹 配单元;

该噪声标签移除单元用于从该URL和各个不同路径URL对应的网页正 文中去除所有噪声标签,其中噪声标签包括以下html标签中的全部或部分:

“br”、“p”、“font”、“em”、“label”、“span”、“strong”、“b”、“u”、“i”、“big”、 “small”、“sup”、“sub”;

该子树匹配单元用于采用基于子树最优有序匹配规则的相似度度量方 法或者基于子树最优自由匹配规则的相似度度量方法计算去除噪声标签后 的该URL和各个不同路径URL对应的网页正文的相似度,然后判断计算得 到的网页正文的相似度的最大值是否大于该第三阈值,若是则对该URL取 消爬虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更 新模块。

本发明还提供了一种网页爬取系统,其特点在于,包括了上述的筛除系 统以及初始化模块和待爬取URL选取模块;

初始化模块用于读取初始URL,并爬取该初始URL对应的网页正文, 从中提取URL并将提取的URL加入到该待测URL列表中,然后执行URL 列表模块;

该正则表达式匹配模块用于判断该待测URL列表是否为空,若是则启 用待爬取URL选取模块,若否则在该待测URL列表发生变化时从该待测 URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则表 达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用 URL路径分类模块;

待爬取URL选取模块用于从该数据库中选取一个设置有爬虫标志位和 检测标志位的URL作为该初始URL,并启用初始化模块。

本领域技术人员容易理解,该网页爬取系统中的正则表达式匹配模块和 上述筛除系统中的是有所不同的。

较佳地,初始化模块用于读取初始URL,并爬取该初始URL对应的网 页正文,识别其中是否有ajax或js动态生成的URL链接,若否则直接从中 提取URL并将提取的URL加入到该待测URL列表中,若是则采用QTWebkit 引擎动态模拟浏览器行为以抓取动态URL并将抓取的URL加入到待测URL 列表中,然后执行URL列表模块。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发 明各较佳实例。

本发明的积极进步效果在于:

本发明的伪静态URL的筛除方法、系统及网页爬取方法、系统针对网 站使用的伪静态技术,实现了对伪静态URL的自动识别,以过滤大量重复、 无用的伪静态URL,提取有价值的URL进行安全检测,提高了爬行效率和 爬行准确性。并且,还通过QTwebkit引擎模拟操作行为,实现了对JS、AJAX 等动态链接的提取,增加了爬虫抓取网页的全面性。

附图说明

图1为本发明实施例1的伪静态URL的筛除方法的流程图。

图2为本发明实施例3的伪静态URL的筛除系统的示意图。

具体实施方式

下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案, 但并不因此将本发明限制在所述的实施例范围之中。

实施例1

参考图1所示,本实施例的伪静态URL的筛除方法,包括以下步骤:

S1、获取记录有多个URL的一待测URL列表;

S2、读取一URL正则列表,该URL正则列表包括若干正则表达式,并 建立一数据库;

S3、从该待测URL列表中选取一URL与该若干正则表达式逐一匹配, 若和任意一正则表达式匹配成功则执行S8,若和所有正则表达式匹配失败则 执行S41

S41、在该数据库中搜索和该URL具有相同路径的URL作为同路径 URL,将该数据库中的其他URL作为不同路径URL;

S42、将该URL逐一同所有同路径URL进行参数及参数的值的比对,在 同所有同路径URL的比对结果均为参数不相同的情况下,对该URL设置爬 虫标志位和检测标志位并执行S5,在同至少一个同路径URL的比对结果为 参数相同且参数的值属于非数字型的情况下执行S43,在同至少一个同路径 URL的比对结果为参数相同且参数的值属于数字型的情况下执行S7

S43、判断同路径URL中和该URL具有相同参数的URL的个数是否大 于预设的一第一阈值,若是则执行S7,若否则对该URL设置爬虫标志位和 检测标志位并执行S5

S5、计算该URL和各个不同路径URL的URL相似度,并判断URL相 似度的最大值是否大于预设的一第二阈值,若是则对该URL取消爬虫标志 位和检测标志位的设置并执行S7,若否则执行S6,其中该URL和任意一不 同路径URL的URL相似度定义为两者的编辑距离;

S6、采用网页结构相似度算法计算该URL和各个不同路径URL对应的 网页正文的相似度,并判断计算得到的网页正文的相似度的最大值是否大于 预设的一第三阈值,若是则对该URL取消爬虫标志位和检测标志位的设置 并执行S7,若否则执行S7

S7、将该URL存储至该数据库、从该待测URL列表中删除该URL并 返回S3

S8、通过预设的一散列函数将该URL处理为一散列值,判断该数据库 中是否存有该散列值,若是则从该待测URL列表中删除该URL并返回S3, 若否则将该URL及该散列值存储至该数据库、然后从该待测URL列表中删 除该URL并返回S3

其中,步骤S3用于将URL与正则表达式进行匹配。如果与正则表达式 匹配成功,则认定URL是伪静态URL,这时执行S8以将该URL与其相应 的散列值存入该数据库,若相应的散列值在数据库中已经存有,则不再重复 存储该URL和相应的散列值,以保证每一类伪静态URL在数据库中的唯一 性。在上述筛除方法中,步骤S3优先执行,如果匹配成功则跳过后面的步骤, 从而提高判别伪静态网页的速度。

URL根据参数的值分为数字型和非数字型以及GET和POST提交类型。 在步骤S41~S43中,从该数据库中搜索和当前URL路径相同的URL分类进 行遍历比较,比较参数和参数的值。其中该第一阈值可以由本领域技术人员 根据实际情况进行设置,本实施例中将其设置为3。根据参数和参数的值的 比对情况确定该URL是否需要进行爬取和检测,相应地,如果判断该URL 需要进行爬取和检测则对该URL设置爬虫标志位和检测标志位。在此种情 况下还需要同该数据库中的和当前URL路径不同的URL进行遍历比较,即 步骤S5~S6。反之,对于在该数据库中已经存储有和该URL相似度较高或者 重复的URL,则不对该URL设置标志位。

在步骤S5中实质上是对URL本身,即对URL的字符串的相似度进行比 较,在步骤S6则是对URL相对应的网页正文的相似度进行比较。其中,URL 相似度定义为编辑距离,即相比较的两个URL的字符串之间,由一个转成 另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另 一个字符,插入一个字符,删除一个字符。

本实施例中,该URL和不同路径URL的URL相似度由该URL的扩展 名、该URL的参数以及该URL和该任意一不同路径URL中至少一类字符 段的相同字符段频数确定。一类字符段的相同字符段频数通过下述步骤确 定:

S501、根据该类字符段相对应的预设规则分别从该URL和该任意一不同 路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段个 数;

S502、根据在URL中的先后顺序对比从该URL和该任意一不同路径URL 中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致字符 段个数;

S503、计算一致字符段个数和该URL对应的字符段个数的比值作为该类 字符段的相同字符段频数,每一类字符段为满足相应预设规则的URL中的 字符段,该URL中任意一类字符段的相同字符段频数。

每一类字符段对应一预设规则,预设规则根据字符段的分类要求进行预 先设置。

具体来说,本实施例中该URL和该任意一不同路径URL的URL相似 度由以下公式定义:

S12=a1*d12+a2*f(ext1)+g(cha12,num12,non12,per12)+a3*h(par1);

在这一公式中,d12为该URL和该任意一不同路径URL的编辑距离,ext1为该URL的扩展名、f为预设的扩展名集至数集的映射,par1为该URL的 参数、h为预设的参数集至数集的映射,cha12、num12、non12、per12依次分 别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符 段的相同字符段频数,g为预设的一函数,a1、a2、a3为预设的系数,S12为 该URL和该任意一不同路径URL的URL相似度。其中以下标1标记仅和 该URL自身的属性相关的参数,以下标12标记同时和该URL及该任意一 不同路径URL相关的参数。

其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规 则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第 三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符 为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为 从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。

更进一步地,上述公式中g(cha12,num12,non12,per12)一项可由下式定义: g(cha12,num12,non12,per12)=a4*cha12+a5*num12+a6*non12+a7*per12。式中a4、a5、 a6、a7为预设的系数,在该URL的扩展名ext1为html、xml或htm时f(ext1)=1, ext1为其他扩展名时f(ext1)=0,在该URL的参数par1为空时h(par1)=0,在 par1不为空时h(par1)=1。

本实施例的筛除方法中,S6包括以下步骤:

S61、从该URL和各个不同路径URL对应的网页正文中去除所有噪声标 签,其中噪声标签为以下html标签:

“br”、“p”、“font”、“em”、“label”、“span”、“strong”、“b”、“u”、“i”、“big”、 “small”、“sup”、“sub”。

S62、采用基于子树最优有序匹配规则的相似度度量方法或者基于子树最 优自由匹配规则的相似度度量方法计算去除噪声标签后的该URL和各个不 同路径URL对应的网页正文的相似度;

S63、判断S62计算得到的网页正文的相似度的最大值是否大于该第三阈 值,若是则对该URL取消爬虫标志位和检测标志位的设置并执行S7,若否 则执行S7

实施例2

本实施例的网页爬取方法和实施例1的筛除方法相比,差别仅在于:

本实施例的网页爬取方法还包括步骤S9和在该筛除方法执行前进行的 步骤S0,并且步骤S3相比于实施例1有所不同。

S0为:读取初始URL,并爬取该初始URL对应的网页正文,识别其中 是否有ajax或js动态生成的URL链接,若否则直接从中提取URL并将提 取的URL加入到该待测URL列表中,若是则采用QTWebkit引擎动态模拟 浏览器行为以抓取动态URL并将抓取的URL加入到待测URL列表中,然 后执行S1

S3为:判断该待测URL列表是否为空,若是则执行S9,若否则从该待 测URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则 表达式匹配成功则执行S8,若和所有正则表达式匹配失败则执行S41

S9为:从该数据库中选取一个设置有爬虫标志位和检测标志位的URL 作为该初始URL,并返回S0

本领域技术人员应当理解,上述步骤S0的执行分为两种情况。第一种情 况下S0相当于上述网页爬取方法中的初始步骤,这时的初始URL通常是由 用户手动进行设置或者预设。第二种情况下则是在上述网页爬取方法的进行 过程中执行步骤S0,这时初始URL是由步骤S9从该数据库中选取的符合条 件的URL,并不受用户的输入或者设置的控制。

实施例3

如图2所示,本实施例的伪静态URL的筛除系统包括:

URL列表模块1,用于获取记录有多个URL的一待测URL列表;

正则列表模块2,用于建立一数据库以及读取一URL正则列表,该URL 正则列表包括若干正则表达式;

正则表达式匹配模块3,用于在该待测URL列表发生变化时从该待测 URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则表 达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用 URL路径分类模块,其中在该待测URL列表发生变化时是指以下两种情况: 读取了新的URL正则列表以及原有URL正则列表中的URL被删除;

URL路径分类模块4,用于在该数据库中搜索和该URL具有相同路径 的URL作为同路径URL,将该数据库中的其他URL作为不同路径URL;

参数比对模块5,用于将该URL逐一同所有同路径URL进行参数及参 数的值的比对,在同所有同路径URL的比对结果均为参数不相同的情况下, 对该URL设置爬虫标志位和检测标志位并启用相似度判断模块,在同至少 一个同路径URL的比对结果为参数相同且参数的值属于非数字型的情况下 启用第一判断模块,在同至少一个同路径URL的比对结果为参数相同且参 数的值属于数字型的情况下启用第一更新模块;

第一判断模块6,用于判断同路径URL中和该URL具有相同参数的URL 的个数是否大于预设的一第一阈值,若是则启用第一更新模块,若否则对该 URL设置爬虫标志位和检测标志位并启用URL相似度判断模块;

URL相似度判断模块7,用于计算该URL和各个不同路径URL的URL 相似度,并判断URL相似度的最大值是否大于预设的一第二阈值,若是则 对该URL取消爬虫标志位和检测标志位的设置并启用第一更新模块,若否 则启用网页结构相似度判断模块,其中该URL和任意一不同路径URL的 URL相似度定义为两者的编辑距离;

网页结构相似度判断模块8,用于采用网页结构相似度算法计算该URL 和各个不同路径URL对应的网页正文的相似度,并判断计算得到的网页正 文的相似度的最大值是否大于预设的一第三阈值,若是则对该URL取消爬 虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更新模 块;

第一更新模块9,用于将该URL存储至该数据库,从该待测URL列表 中删除该URL;

第二更新模块10,用于通过预设的一散列函数将该URL处理为一散列 值,判断该数据库中是否存有该散列值,若是则从该待测URL列表中删除 该URL,若否则将该URL及该散列值存储至该数据库、然后从该待测URL 列表中删除该URL。

其中,URL相似度判断模块用于根据该URL的扩展名、该URL的参数 以及该URL和该任意一不同路径URL中至少一类字符段的相同字符段频数 确定该URL和任意一不同路径URL的URL相似度。

URL相似度判断模块包括一相同字符段频数单元,该相同字符段频数单 元用于首先根据该类字符段相对应的预设规则分别从该URL和该任意一不 同路径URL中提取满足该预设规则的字符段,并记录该URL包含的字符段 个数,然后根据在URL中的先后顺序对比从该URL和该任意一不同路径 URL中提取的字符段,并记录两者中提取的相一致的字符段的个数作为一致 字符段个数,最后计算一致字符段个数和该URL对应的字符段个数的比值 作为该类字符段的相同字符段频数,每一类字符段为满足相应预设规则的 URL中的字符段,该URL中任意一类字符段的相同字符段频数。

具体地,该URL和该任意一不同路径URL的URL相似度由以下公式 定义:

S12=a1*d12+a2*f(ext1)+g(cha12,num12,non12,per12)+a3*h(par1);

上述公式中,d12为该URL和该任意一不同路径URL的编辑距离,ext1为该URL的扩展名、f为预设的扩展名集至数集的映射,par1为该URL的 参数、h为预设的参数集至数集的映射,cha12、num12、non12、per12依次分 别为该URL中字母类字符段、数字类字符段、第三类字符段和第四类字符 段的相同字符段频数,g为预设的一函数,a1、a2、a3为预设的系数,S12为 该URL和该任意一不同路径URL的URL相似度。

其中,字母类字符段、数字类字符段及第三类字符段分别对应的预设规 则分别为将URL中的所有字母、数字及第三类字符划分为字母、数字及第 三类字符连续排列的字符段,且划分形成的字符段的个数最少,第三类字符 为除字母、数字和百分号以外的所有字符,第四类字符段对应的预设规则为 从URL中提取所有由百分号及其后连续排列的两个数字所形成的字符段。

上述公式中,g(cha12,num12,non12,per12)一项由下式确定: g(cha12,num12,non12,per12)=a4*cha12+a5*num12+a6*non12+a7*per12,其中a4、a5、 a6、a7为预设的系数,在该URL的扩展名ext1为html、xml或htm时f(ext1)=1, ext1为其他扩展名时f(ext1)=0,在该URL的参数par1为空时h(par1)=0,在 par1不为空时h(par1)=1。本实施例中a1+a2+a3+a4+a5+a6+a7=1,这7项系 数的取值可由本领域技术人员根据实际需要进行设置。

并且,网页结构相似度判断模块包括一噪声标签移除单元和一子树匹配 单元;

该噪声标签移除单元用于从该URL和各个不同路径URL对应的网页正 文中去除所有噪声标签,其中噪声标签为以下html标签:

“br”、“p”、“font”、“em”、“label”、“span”、“strong”、“b”、“u”、“i”、“big”、 “small”、“sup”、“sub”。

该子树匹配单元用于采用基于子树最优有序匹配规则的相似度度量方 法或者基于子树最优自由匹配规则的相似度度量方法计算去除噪声标签后 的该URL和各个不同路径URL对应的网页正文的相似度,然后判断计算得 到的网页正文的相似度的最大值是否大于该第三阈值,若是则对该URL取 消爬虫标志位和检测标志位的设置并启用第一更新模块,若否则启用第一更 新模块。

实施例4

本实施例的网页爬取系统和实施例3相比,差别仅在于,该网页爬取系 统还包括初始化模块和待爬取URL选取模块,并且其中的正则表达式匹配 模块和实施例3有所不同。

该初始化模块用于读取初始URL,并爬取该初始URL对应的网页正文, 识别其中是否有ajax或js动态生成的URL链接,若否则直接从中提取URL 并将提取的URL加入到该待测URL列表中,若是则采用QTWebkit引擎动 态模拟浏览器行为以抓取动态URL并将抓取的URL加入到待测URL列表 中,然后执行URL列表模块。

该正则表达式匹配模块用于判断该待测URL列表是否为空,若是则启 用待爬取URL选取模块,若否则在该待测URL列表发生变化时从该待测 URL列表中选取一URL与该若干正则表达式逐一匹配,若和任意一正则表 达式匹配成功则启用第二更新模块,若和所有正则表达式匹配失败则启用 URL路径分类模块。

该待爬取URL选取模块用于从该数据库中选取一个设置有爬虫标志位 和检测标志位的URL作为该初始URL,并启用初始化模块。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理 解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本 领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方 式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号