发明内容
本发明的目的是提供一种网页内容抓取方法及装置,可以识别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,不再重复进行网页抓取,减少带宽资源和存储资源的浪费。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明的网页内容抓取方法实施例1的流程图。如图1所示,所述方法可以包括:
步骤101:获取网页的URL信息;
通常,每个网页都可以具有与之对应的URL信息。不同的网页可以对应不同的URL信息。所述URL信息中至少包括路径信息和参数信息。
例如:“http://news.baidu.com/?fr=baiduer”这个URL信息中,“http://news.baidu.com/”这一部分就是路径信息,“fr=baiduer”这一部分就是参数信息。其中,fr为参数名称,baiduer为参数值。
步骤102:识别所述URL信息中包含的路径信息和参数信息;
一般来说,问号之后为URL信息的参数信息,问号之前为URL信息的路径信息。因此,识别所述URL信息中包含的路径信息和参数信息的具体方式可以包括:
识别所述URL信息中的信息分隔符(例如问号);信息分隔符还可以包括“&”。当同一个URL信息中具有多个参数时,多个参数之间可以使用“&”进行分隔。
将所述信息分隔符之前的信息确定为路径信息;
将所述信息分隔符之后的信息确定为参数信息。
步骤103:对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
通常,路径信息相同的URL信息对应的网页内容也是相同的。因此,步骤103中,归入同一个URL信息集的URL信息,在去掉参数信息之后,所对应的网页内容是相同的。
步骤104:将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
URL信息中的一部分参数信息,也是可以影响到该URL信息所对应的网页内容的。例如,下面这两个URL信息:
http://forum.book.sina.com.cn/forumdisplay.php?fid=14
http://forum.book.sina.com.cn/forumdisplay.php?fid=51
上面两个URL信息的路径信息是相同的,均为http://forum.book.sina.com.cn/forumdisplay.php,但是两者对应的页面内容是不同的。这种情况下,fid这个参数是有效参数,需要保留。
也就是说,对于包含有效参数的URL信息,在抓取对应的网页内容时,需要采用包含所述有效参数的完整的URL信息进行网页抓取。
步骤105:抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
综上所述,本实施例中,通过识别URL信息中包含的路径信息和参数信息,对于路径信息相同的URL信息,将在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;只抓取包含有效参数的URL信息对应的网页内容,从而可以对于不包含有效参数的URL,不再重复进行网页抓取,减少带宽资源和存储资源的浪费。
需要说明的是,有些URL信息中,可能只包含路径信息,不包含参数信息,采用本申请的方案,对于只包含路径信息的URL信息对应的网页内容,也是可以进行抓取的。抓取过程与现有技术中相似,此处不再赘述。
图2为本发明的网页内容抓取方法实施例2的流程图。如图2所示,所述方法可以包括:
步骤201:获取网页的URL信息;
步骤202:识别所述URL信息中包含的路径信息和参数信息;
步骤203:对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
步骤204:将所述URL信息集中,在每个URL信息中均出现但是参数值变化的参数,或者未在全部URL信息中均出现的参数,确定为无效参数;
例如,对于以下两个URL信息:http://news.baidu.com/?fr=baiduer和http://news.baidu.com/,其中,“fr=baiduer”这部分参数就是没有在全部URL信息中均出现的参数,因此,可以将“fr”这个参数确定为无效参数。
又例如,对于以下两个URL信息:http://news.baidu.com/?fr=baiduer和http://news.baidu.com/?fr=mopper,假设上述两个URL信息对应的网页内容相同,则也可以确定“fr”这个参数属于在每个URL信息中均出现但是参数值变化的参数,即无效参数。
步骤205:对于包含无效参数的URL信息对应的网页内容,不再进行抓取;
由于包含无效参数的URL信息,与同一URL信息集中,不包含无效参数的URL信息,对应的网页内容是相同的,因此,可以不再对包含无效参数的URL信息对应的网页内容进行抓取。
具体的,不再对包含无效参数的URL信息对应的网页内容进行抓取的一种具体实现方式可以是:
对于包含无效参数的URL信息,去掉其中的无效参数,得到不包含无效参数的URL信息;
对所述不包含无效参数的URL信息对应的网页内容进行抓取。
步骤206:将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
步骤207:抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
图3为本发明的网页内容抓取方法实施例3的流程图。如图3所示,所述方法可以包括:
步骤301:获取网页的URL信息;
步骤302:识别所述URL信息中包含的路径信息和参数信息;
步骤303:对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
可以通过网络爬虫抓取所述URL信息对应的网页内容。
步骤304:获取所述URL信息集中的第一URL信息和第二URL信息;所述第一URL信息和第二URL信息中包含相同的第一参数,且所述第一参数在所述第一URL信息和第二URL信息中具有不同的参数值;
步骤305:获取所述第一URL信息对应的第一网页内容以及所述第二URL信息对应的第二网页内容;
步骤306:判断所述第一网页内容与所述第二网页内容是否相同;
例如,http://forum.book.sina.com.cn/forumdisplay.php?fid=14和http://forum.book.sina.com.cn/forumdisplay.php?fid=51。上面两个URL信息的路径信息是相同的,均为http://forum.book.sina.com.cn/forumdisplay.php,但是两者对应的同一参数信息的参数值是不同的。如果上面两个URL信息对应的网页内容相同,则表示fid这个参数是无效参数,如果对应的网页内容不相同,则表示fid这个参数是有效参数。
具体的,可以通过对路径信息相同的URL信息对应的网页内容的哈希(hash)值进行比较,从而判断路径信息相同的URL信息对应的网页内容是否相同。关于hash值的计算方法在现有技术中已经很成熟,在此不再赘述。
步骤307:如果所述第一网页内容与所述第二网页内容相同,则将所述第一参数确定为无效参数。
步骤308:所述第一网页内容与所述第二网页内容不相同,则将所述第一参数确定为有效参数;
步骤309:抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
图4为本发明的网页内容抓取方法实施例4的流程图。如图4所示,所述方法可以包括:
步骤401:获取网页的URL信息;
步骤402:识别所述URL信息中包含的路径信息和参数信息;
步骤403:对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
步骤404:将所述URL信息集中,在每个URL信息中均出现但是参数值变化的参数,或者未在全部URL信息中均出现的参数,确定为无效参数;
步骤405:在确定出所述无效参数后,在预设时间内对所述无效参数进行验证,判断是否出现反例;
所述预设时间可以是24小时,也可以根据实际需要自行设定。因为网络中的URL信息数量庞大,更新时间短,所以有一部分无效参数虽然被确定为无效参数,但是可能在后续的时间内,会成为有效参数。这就需要对无效参数进行验证。
具体的,对所述无效参数进行验证,判断是否出现反例,可以包括以下步骤:
获取包含无效参数的第三URL信息对应的第三网页内容;
删除所述第三URL信息中的无效参数,得到第四URL信息;
获取所述第四URL信息对应的第四网页内容;
判断所述第三网页内容与所述第四网页内容是否相同;
如果不相同,则确定出现反例。
步骤406:如果出现反例,则将所述无效参数确定为有效参数。
步骤407:对于包含无效参数的URL信息对应的网页内容,不再进行抓取;
步骤408:将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
步骤409:抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
本实施例中,通过在预设时间内对所述无效参数进行验证,判断是否出现反例,如果出现反例,则将所述无效参数确定为有效参数,可以进一步提高本发明的网页内容抓取方法的准确率。
需要说明的是,本发明实施例中的网页内容抓取方法,不只是可以用在对网页内容第一次进行抓取的过程中,在后续的抓取过程中,也可以一直使用。具体的,可以将生成的有效参数,无效参数进行存储,在后续的抓取过程中,如果发现新的包含无效参数的URL信息,可以验证其是否与不包含该无效参数的URL信息对应的网页内容相同,如果相同,则该无效参数保留,如果不相同,则可以将该无效参数确定为有效参数。
本发明还公开了一种网页内容抓取装置。
图5为本发明的网页内容抓取装置实施例1的结构图。如图5所示,所述装置可以包括:
信息获取模块501,用于获取网页的URL信息;
信息识别模块502,用于识别所述URL信息中包含的路径信息和参数信息;
聚类模块503,用于对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
有效参数确定模块504,用于将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
网页内容抓取模块505,用于抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
综上所述,本实施例中,通过识别URL信息中包含的路径信息和参数信息,对于路径信息相同的URL信息,将在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;只抓取包含有效参数的URL信息对应的网页内容,从而可以对于不包含有效参数的URL,不再重复进行网页抓取,减少带宽资源和存储资源的浪费。
图6为本发明的网页内容抓取装置实施例2的结构图。如图6所示,所述装置可以包括:
信息获取模块501,用于获取网页的URL信息;
信息识别模块502,用于识别所述URL信息中包含的路径信息和参数信息;
聚类模块503,用于对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
无效参数确定模块601,用于将所述URL信息集中,在每个URL信息中均出现但是参数值变化的参数,或者未在全部URL信息中均出现的参数,确定为无效参数;
无效参数过滤模块602,用于对于包含无效参数的URL信息对应的网页内容,不再进行抓取。
有效参数确定模块504,用于将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
网页内容抓取模块505,用于抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
图7为本发明的网页内容抓取装置实施例3的结构图。如图7所示,所述装置可以包括:
信息获取模块501,用于获取网页的URL信息;
信息识别模块502,用于识别所述URL信息中包含的路径信息和参数信息;
第一URL信息获取单元701,用于获取所述URL信息集中的第一URL信息和第二URL信息;所述第一URL信息和第二URL信息中包含相同的第一参数,且所述第一参数在所述第一URL信息和第二URL信息中具有不同的参数值;
第一及第二网页内容获取单元702,用于获取所述第一URL信息对应的第一网页内容以及所述第二URL信息对应的第二网页内容;
第一判断单元703,用于判断所述第一网页内容与所述第二网页内容是否相同;
无效参数确定单元704,用于当所述第一判断单元的判断结果为是时,将所述第一参数确定为无效参数。其中,第一URL信息获取单元701,第一及第二网页内容获取单元702,第一判断单元703和无效参数确定单元704可以包含于所述聚类模块503。
有效参数确定模块504,用于将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
网页内容抓取模块505,用于抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
图8为本发明的网页内容抓取装置实施例4的结构图。如图8所示,所述装置可以包括:
信息获取模块501,用于获取网页的URL信息;
信息识别模块502,用于识别所述URL信息中包含的路径信息和参数信息;
聚类模块503,用于对于路径信息相同的URL信息进行聚类,得到包含多个URL信息的URL信息集;
无效参数确定模块601,用于将所述URL信息集中,在每个URL信息中均出现但是参数值变化的参数,或者未在全部URL信息中均出现的参数,确定为无效参数;
无效参数过滤模块602,用于对于包含无效参数的URL信息对应的网页内容,不再进行抓取。
验证模块801,用于在确定出所述无效参数后,在预设时间内对所述无效参数进行验证,判断是否出现反例;
无效参数变更模块802,用于当所述验证模块的判断结果为是时,将所述无效参数确定为有效参数。
有效参数确定模块504,用于将所述URL信息集中,在每个URL信息中均出现并且参数值不变的参数,确定为有效参数;
网页内容抓取模块505,用于抓取有效URL信息对应的网页内容;
其中,所述有效URL信息中的参数均为有效参数。
所述验证模块801可以包括:
第三网页内容获取单元,用于获取包含无效参数的第三URL信息对应的第三网页内容;
无效参数删除单元,用于删除所述第三URL信息中的无效参数,得到第四URL信息;
第四网页内容获取单元,用于获取所述第四URL信息对应的第四网页内容;
第二判断单元,用于判断所述第三网页内容与所述第四网页内容是否相同;
反例确定单元,用于当所述第二判断单元的判断结果为否时,确定出现反例。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。