[发明专利]一种非入侵式的数据库爬虫的实现方法有效
申请号: | 201210528786.5 | 申请日: | 2012-12-07 |
公开(公告)号: | CN103870465B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 程行荣;张文章;余小峰;余顺丽 | 申请(专利权)人: | 厦门雅迅网络股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 厦门市首创君合专利事务所有限公司 35204 | 代理人: | 连耀忠 |
地址: | 361000 福建*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 入侵 数据库 爬虫 实现 方法 | ||
1.一种非入侵式的数据库爬虫的实现方法,其特征在于:首先,在设计数据库时,对提供给搜索引擎进行索引和检索的数据库表添加至少一个时间戳字段,当应用程序对数据库表中的记录更新的同时将该时间戳字段修改为更新时刻的时间戳,数据库爬虫初始化时,预先设置待跟踪数据变化的时间段包括开始时间和结束时间,同时还设置每次从数据库中拉取的更新记录的最大记录数,数据库爬虫进行拉取更新数据的步骤包括如下:
1)判断开始时间是否大于结束时间,若是,则数据库爬虫的任务结束,停止该爬虫的运行;若否则进入步骤2);
2)数据库爬虫将所述数据库中的时间戳字段值处于开始时间和结束时间之间的记录按顺序排列形成第一列表,依次从第一列表中获取最多为最大记录数的记录形成第二列表;
3)将第二列表中的记录逐条提取记录数据并提交给搜索引擎处理,根据第二列表中时间戳字段值最接近当前所述待跟踪数据变化结束时间的记录的时间戳来设置新的待跟踪数据变化时间段,重复步骤1)。
2.如权利要求1所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:在步骤2)中,数据库爬虫将所述数据库中时间戳字段值处于开始时间和结束时间之间的记录按照该时间戳字段值从小到大的顺序排列形成第一列表,从该第一列表的第0个开始提取最多为最大记录数的记录形成第二列表,该第二列表也按照该时间戳字段值从小到大的顺序排列。
3.如权利要求2所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:在步骤3)中,数据库爬虫将第二列表最后一条记录的时间戳字段的下一时刻值设为新的待跟踪数据变化的开始时间。
4.如权利要求1所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:数据库爬虫初始化时,预先设置一个参数offset来存储当次拉取的记录在第一列表的位置偏移量,该参数的初始值为0,在步骤2)中,数据库爬虫将所述数据库中所述时间戳字段值处于开始时间和结束时间之间的记录按顺序排列形成第一列表,然后从第一列表中的第offset个开始返回一个记录列表形成最多为最大记录数的第二列表。
5.如权利要求4所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:在步骤2)中,所述第一列表和第二列表分别为按所述时间戳字段值从小到大排列的列表。
6.如权利要求4或5所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:在步骤2)中,还包括有判断是否从数据库中拉取到有效的记录的步骤,若没有拉取到有效的记录,则在一段预设的时间内暂停数据库爬虫的运行,而后重复步骤2);若拉取到有效的记录,则进入步骤3)。
7.如权利要求6所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:数据库爬虫初始化时,预先设置一个参数pre_id来存储前一次拉取得到的第二列表中最后一个记录的编号,该参数的初始值为null,所述判断是否从数据库中拉取到有效的记录的步骤,具体包括如下,
2.1判断第二列表中的记录数是否为0,若是,则在一段预设的时间内暂停数据库爬虫的运行,而后重复步骤2);若否,则进入步骤2.2;
2.2判断pre_id是否为null,若是,则进入步骤3);若否,则判断是否出现记录拉取异常,若是,则重复步骤2);若否,则进入步骤3)。
8.如权利要求7所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:数据库爬虫初始化时,预先设置一个参数pre_last_modified来存储前一次拉取得到的第二列表中的最后一个记录的时间戳字段值,该参数的初始值为null,在步骤2.2中,判断是否出现记录拉取异常,具体包括如下步骤:
2.2.1判断第二列表中的第一个记录的编号是否等于pre_id,若否,则设置offset、pre_id,pre_last_modified为初始值,而后重复步骤2),若是则进入步骤2.2.2;
2.2.2判断该第二列表的记录数是否为1,若是,则在一段预设的时间内暂停数据库爬虫的运行,而后重复步骤2);若否,则将该第二列表的中的第一个记录从列表中移除,而后进入步骤3)。
9.如权利要求7或8所述的一种非入侵式的数据库爬虫的实现方法,其特征在于:在步骤3)中,具体包括如下步骤
3.1数据库爬虫依次遍历第二列表中的记录,并判断是否到达该第二列表的末尾,若是,则重复步骤1);若否则进入步骤3.2;
3.2提取第二列表中当前遍历到达的记录,将记录提交给搜索引擎处理,判断该记录的时间戳字段值是否等于pre_last_modified,若否,则将pre_last_modified设置为该时间戳字段值,将offset设置为0,而后进入步骤3.3;若是则将offset加1,而后进入步骤3.3;
3.3设置pre_id为该记录的编号,设置下一次拉取的开始时间为pre_last_modified,重复步骤3.1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210528786.5/1.html,转载请声明来源钻瓜专利网。