CN107102997A - 数据爬取方法及装置 - Google Patents
数据爬取方法及装置 Download PDFInfo
- Publication number
- CN107102997A CN107102997A CN201610096587.XA CN201610096587A CN107102997A CN 107102997 A CN107102997 A CN 107102997A CN 201610096587 A CN201610096587 A CN 201610096587A CN 107102997 A CN107102997 A CN 107102997A
- Authority
- CN
- China
- Prior art keywords
- page
- link
- crawlers
- buffer queue
- list page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Abstract
本发明公开了一种数据爬取方法及装置,涉及数据处理技术领域,解决了现有的数据爬取方法爬取数据重复率较高的问题。本发明的主要技术方案为:接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。本发明主要用于爬取网页数据。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据爬取方法及装置。
背景技术
爬虫是人们为了形象描述计算机程序在网络不断通过定制的入口网址去提取网页的链接,并根据这些链接再度抓取更深的其它未知的链接,以此下去,将这样的程序抓取形为形容成类似爬虫似的动作,称之为爬虫,爬虫通过下载指定网站的所有链接来获取开发者想要获取的信息。
爬虫在爬取网页时,首先需要具备一个指定的网址种子表,该表中记录着每一个需要爬取的网站入口地址,以及一些爬取行为的配置信息,如爬取深度,模拟请求的元信息等。然后将网址种子表定时注入到爬虫系统中,使得爬虫系统将网址种子表中的爬取任务分配给各个爬虫程序。其中,对于爬虫爬取的网页中不包含具体内容的网页为列表页;包含具体内容的网页为文章页。
目前,爬虫程序在爬取列表页后,会向广播服务器发送其爬取的列表页信息,广播服务器在接收到爬取的列表页信息后,将爬取的列表页信息转发给其他爬虫程序,以减少爬虫程序重复爬取列表页的情况。然而,由于广播服务器发送信息的延迟,将会导致其他爬虫程序对已爬取过的列表页进行重复爬取,因此现有的数据爬取方法的爬取重复率较高。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的数据爬取方法及装置。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明实施例提供了一种数据爬取方法,该方法包括:
接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
另一方面,本发明实施例还提供一种数据爬取装置,该装置包括:
接收单元,用于接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断单元,用于判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
发送单元,用于若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种数据爬取方法及装置,首先接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接,若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。与目前通过爬虫程序向广播服务器发送其爬取的信息,然后由广播服务器负责将爬取的消息转发给其他的爬虫程序,以实现均衡控制各个爬虫程序爬取列表页链接对应的页面相比,在本发明实施例中,当爬虫程序接收到爬取任务后,首先向缓存队列发送页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后根据缓存队列中存储的已爬取过的列表页链接判断是否对页面爬取请求信息中的列表页链接进行爬取,即以缓存队列中存储的链接判断页面爬取请求信息中的列表页链接是否为已经爬取过的链接,因此通过本发明实施例可以减少数据爬取的重复率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种数据爬取方法流程图;
图2为本发明实施例提供的另一种数据爬取方法流程图;
图3为本发明实施例提供的一种数据爬取装置的组成框图;
图4为本发明实施例提供的另一种数据爬取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
本发明实施例提供了一种数据爬取方法,如图1所示,所述方法包括:
101、接收爬虫程序发送的页面爬取请求信息。
其中,所述页面爬取请求信息中包括列表页链接。需要说明的是,列表页链接为列表页的URL(Uniform Resource Locator,统一资源定位符),所述列表页为不包含内容的网页,而包含具体内容的网页为文章页。
102、判断缓存队列中是否存在所述列表页链接。
其中,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接。需要说明的是,缓存队列中的列表页链接是实时更新的,当所述页面爬取请求信息中的列表页链接不在缓存队列中时,需要将页面爬取请求信息中的列表页链接等信息对应存储到缓存队列中。
例如,缓存队列中存储的已经爬取过的列表页链接为:http://www.sina.com.cn/、http://www.ganji.com/、http://www.dangdang.com/,若页面爬取请求信息中的列表页链接为:http://www.sina.com.cn/,则经过判断得出缓存队列中存在对应的列表页链接,说明当前的任务链接是已经爬取过的,爬虫程序无需再对列表页链接对应的页面进行爬取;若页面爬取请求信息中的列表页链接为:https://ju.taobao.com/,则经过判断得出缓存队列中不存在对应的列表页链接,则需要爬虫程序对列表页链接对应的页面进行爬取,在爬虫程序爬取列表页链接对应的页面之后,还需要将页面爬取请求信息中的列表页链接等信息对应保存到缓存队列当中。
103、若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息。
进一步地,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。对于本发明实施例,当爬虫程序接收到爬取任务后,首先向缓存队列发送页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后根据缓存队列中存储的已爬取过的列表页链接判断是否对页面爬取请求信息中的列表页链接进行爬取,若缓存队列中存在对应的列表页链接,说明页面爬取请求信息中的列表页链接是已经爬取过的,爬虫程序无需再对该条列表页链接对应的页面进行爬取,因此通过本发明实施例可以减少数据爬取的重复率。
本发明实施例提供了另一种数据爬取方法,如图2所示,所述方法包括:
201、接收爬虫程序发送的页面爬取请求信息。
其中,所述页面爬取请求信息中包括列表页链接。需要说明的是,列表页链接为列表页的URL(Uniform Resource Locator,统一资源定位符),所述列表页为不包含内容的网页,而包含具体内容的网页为文章页。
对于本发明实施例,所述接收爬虫程序发送的页面爬取请求信息之前,所述方法还包括:接收所述爬虫程序发送的事物处理函数;根据所述事物处理函数初始化所述缓存队列,并计算所述事物处理函数对应的唯一标识码;将所述唯一标识码发送给所述爬虫程序,以使得所述爬虫程序通过所述唯一标识码向所述缓存队列发送页面爬取请求信息。其中,所述事物处理函数用于指示缓存队列如何对接收到的页面爬取请求信息进行处理,其中,事物处理函数具体可以根据缓存队列中处理数据的实际需求进行配置,也可以根据用户的需求进行配置,本发明实施例不做具体限定。在本发明实施例中,在缓存队列收到事物处理函数后,会将事物处理函数加载进程序中并返回给爬虫程序一串唯一标识码。其中,唯一标识码具体可以为通过MD5(Message-Digest Algorithm 5,信息摘要算法5)算法得到的标识码,也可有SHA1(Secure Hash Algorithm,安全哈希算法)算法得到的标识码,本发明实施例不做具体限定。
在本发明实施例中,由于唯一标识码是缓存队列是通过对事物处理函数进行哈希运算取得的结果,也就是说同一事物处理函数传入缓存队列,得到的标识码是一致的,所以无论爬虫程序发送相同的事物处理函数到缓存队列多少次,得到的返回标识码都是一样的。因此根据事物处理函数初始化缓存队列之后,每次调用只需要以标识码来代替事物处理函数即可,从而避免了事物处理函数过长而造成的网络开销。
例如,若缓存队列中定义了事务处理函数需要两个参数:“arg1”、“arg2”。那么调用缓存队列时就需要携带以下三个参数:“code”、“arg1”、“arg2”。其中,“code”为缓存队列通过事务处理函数得到的唯一标识码,“arg1”、“arg2”为页面爬取请求信息中的参数,所述参数具体可以为列表页链接、缓存时间、爬取间隔时间、剩余爬取层级等,本发明实施例不做具体限定。需要说明的是,本发明实施例不限制参数的格式以及传输方式。
对于本发明实施例,所述页面爬取请求信息中还包括与所述列表页链接对应的爬取间隔时间、剩余爬取层级。需要说明的是,爬虫程序关于爬取层级控制的原理:在爬虫任务注入爬虫系统时,会由管理员对爬虫任务可爬取的层级做出限制。比如对爬取sina.com的任务设置最多爬取三级。那么该任务在爬取sina.com主页后,会将主页所有链接抽取出来进行下一轮爬取。这些抽取出来的链接在下次爬取时,剩余层级就会由最初的三级减少为两级。当层级为0时爬虫任务就会结束。
202、判断缓存队列中是否存在所述列表页链接。
其中,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接。需要说明的是,缓存队列中的列表页链接是实时更新的,当所述页面爬取请求信息中的列表页链接不在缓存队列中时,需要将页面爬取请求信息中的列表页链接等信息对应存储到缓存队列中。
203a、若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息。
进一步地,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。对于本发明实施例,当爬虫程序接收到爬取任务后,首先向缓存队列发送页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后根据缓存队列中存储的已爬取过的列表页链接判断是否对页面爬取请求信息中的列表页链接进行爬取,若缓存队列中存在对应的列表页链接,说明页面爬取请求信息中的列表页链接是已经爬取过的,爬虫程序无需再对该条列表页链接进行爬取,因此通过本发明实施例可以减少数据爬取的重复率。
对于本发明实施例,在所述缓存队列中不存在所述列表页链接之后,所述方法还包括:将所述页面爬取请求信息中的列表页链接,及与所述列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级对应存储到所述缓存队列中。
在本发明实施例中,所述方法还包括:按照预置时间间隔将所述缓存队列中缓存时间与爬取间隔时间的和大于当前时间对应的缓存数据删除。其中,所述预置时间间隔可以根据实际需要进行配置,如10分钟、20分钟、30分钟等,本发明实施例不做具体限定。对于本发明实施例,缓存队列定时的对所有的缓存信息进行清理,起到缓存生存时间控制的功能。本发明通过循环遍历缓存队列中的缓存数据,查找缓存时间与爬取间隔时间的和大于当前时间的缓存数据。如果缓存数据中的缓存时间加上爬取间隔时间大于当前时间,那么表示该条缓存已失效,因此需要将其删除,从而通过本发明实施例可以减少缓存队列中缓存数据的数量,进而提高了查找缓存队列中列表页链接的时间,提高了数据爬取的效率。需要说明的是,当重复的列表页链接再次发送到缓存队列时,由于该条列表页链接对应的缓存数据已经不存在,因此直接创建新的缓存数据到缓存队列中即可。
203b、若所述缓存队列中存在所述列表页链接,则判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间。
其中,步骤203b为步骤203a的并列步骤,若所述缓存队列中存在所述列表页链接,则判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间。需要说明的是,由于网站管理员会对网页内容进行定期更新,因此每个网页会有一个有效时间,本发明中的爬取间隔时间即为网页的有效时间,若当前时间晚于对应链接的缓存时间及爬取间隔时间的和,则说明缓存队列中存储的对应连接的内容已经过期,因此需要对其进行重新爬取,因此通过判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和是否早于当前时间,可以提高数据爬取的精确度。
203b1、若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,则向所述爬虫程序发送所述页面爬取请求的确认信息。
进一步地,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
例如,当前时间为2016-01-20上午8:10,缓存队列中对应列表页链接的缓存时间为2016-01-10上午8:10,爬取间隔时间为3天,即缓存队列中对应列表页链接的有效时间为2016-01-13上午8:10。因此经过判断缓存队列中对应列表页链接的缓存时间及爬取间隔时间的和早于当前时间,即2016-01-13上午8:10早于2016-01-20上午8:10,由此说明缓存队列中与列表页链接对应链接的内容已经过期,需要通过爬虫程序对列表页链接进行重新爬取。因此在缓存队列中对应列表页链接的缓存时间及爬取间隔时间的和早于当前时间的情况下,需要向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取,以满足数据爬取的准确性。
在本发明实施例中,若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,则向所述爬虫程序发送所述页面爬取请求的确认信息之后,所述方法还包括:通过所述当前时间,及所述列表页链接对应的爬取间隔时间、剩余爬取层级更新所述缓存队列中对应列表页链接的缓存时间、爬取间隔时间、剩余爬取层级。需要说明的是,由于列表页链接有可能与爬虫队列中对应链接的爬取时间间隔、剩余爬取层级不一致,因此在爬虫程序对列表页链接爬取后,需要将缓存队列中的列表页链接对应的缓存时间、爬取时间间隔、剩余爬取层级等信息进行更新,以实时更新缓存队列中爬取数据的状态。
203b2、若所述对应链接的缓存时间及爬取间隔时间的和晚于当前时间,则判断所述列表页链接的剩余爬取层级是否大于缓存队列中对应链接的剩余爬取层级。
其中,步骤203b2为步骤203b1的并列步骤,若所述对应链接的缓存时间及爬取间隔时间的和晚于当前时间,则判断所述列表页链接的剩余爬取层级是否大于缓存队列中对应链接的剩余爬取层级。
对于本发明实施例,若所述对应链接的缓存时间及爬取间隔时间的和晚于当前时间,则还需要判断所述列表页链接的剩余爬取层级是否大于缓存队列中对应链接的剩余爬取层级。如果列表页链接的剩余爬取层级更深,则允许爬虫程序对页面爬取请求信息中的列表页链接对应的页面进行爬取,并爬虫程序爬取之后将列表页链接的剩余爬取层级以及缓存时间记录在缓存队列中。例如:一个爬虫任务注入了列表页链接sina.com,爬取层级为3,爬取时间间隔为10分钟。另一个爬虫任务在相隔两分钟后注入了列表页链接sina.com,爬取层级为4,列表页爬取时间间隔为10分钟。由于后一个爬虫任务在前一个任务的列表页爬取间隔内,说明列表页链接对应的网页内容未过期,但是后一个列表页链接的爬取深度大于前一个列表页链接。如果后一个任务仅以爬取时间间隔作为是否需要进行爬取的考量,那么sina.com的第四层就不会被爬取到。因此通过本发明实施例,可以提高了数据爬取的深度,即提高爬虫程序爬取的数据量。
203b2A、若大于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的确认信息。
进一步地,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
在本发明实施例中,若列表页链接的剩余爬取层级大于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的确认信息之后,所述方法还包括:通过所述当前时间,及所述列表页链接对应的爬取间隔时间、剩余爬取层级更新所述缓存队列中列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级。需要说明的是,由于列表页链接有可能与爬虫队列中对应链接的爬取时间间隔、剩余爬取层级不一致,因此在爬虫程序对列表页链接爬取后,需要将缓存队列中的列表页链接对应的缓存时间、爬取时间间隔、剩余爬取层级等信息进行更新,以实时更新缓存队列中爬取数据的状态,从而提高缓存队列根据缓存数据判断是否对页面爬取请求信息中的列表页链接进行爬取的准确性,进而提高了爬虫程序爬取数据的数量及准确度。
203b2B、若小于等于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的取消信息。
进一步地,以使得所述爬虫程序取消对所述列表页链接的爬取任务。其中,步骤203b2B为步骤203b2A的并列步骤,若列表页链接的剩余爬取层级小于等于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的取消信息,以使得所述爬虫程序取消对所述列表页链接的爬取任务。
本发明实施例提供的一种数据爬取方法,首先接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接,若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。与目前通过爬虫程序向广播服务器发送其爬取的信息,然后由广播服务器负责将爬取的消息转发给其他的爬虫程序,以实现均衡控制各个爬虫程序爬取列表页链接对应的页面相比,在本发明实施例中,当爬虫程序接收到爬取任务后,首先向缓存队列发送页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后根据缓存队列中存储的已爬取过的列表页链接判断是否对页面爬取请求信息中的列表页链接进行爬取,即以缓存队列中存储的链接判断页面爬取请求信息中的列表页链接是否为已经爬取过的链接,因此通过本发明实施例可以减少数据爬取的重复率。
进一步地,本发明实施例提供一种数据爬取装置,如图3所示,所述装置包括:接收单元31、判断单元32、发送单元33。
接收单元31,用于接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断单元32,用于判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
发送单元33,用于若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
需要说明的是,本发明实施例提供的一种数据爬取装置所涉及各功能单元的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
进一步地,本发明实施例提供另一种数据爬取装置,如图4所示,所述装置包括:接收单元41、判断单元42、发送单元43。
接收单元41,用于接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断单元42,用于判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
发送单元43,用于若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
对于本发明实施例,所述页面爬取请求信息中还包括与所述列表页链接对应的爬取间隔时间、剩余爬取层级,所述装置还包括:
存储单元44,用于将所述页面爬取请求信息中的列表页链接,及与所述列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级对应存储到所述缓存队列中。
所述判断单元42,还用于若所述缓存队列中存在所述列表页链接,则判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间;
所述发送单元43,用于若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
所述判断单元42,还用于若所述对应链接的缓存时间及爬取间隔时间的和晚于当前时间,则判断所述列表页链接的剩余爬取层级是否大于缓存队列中对应链接的剩余爬取层级;
所述发送单元43,用于若大于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取;
所述发送单元43,还用于若小于等于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的取消信息,以使得所述爬虫程序取消对所述列表页链接的爬取任务。
对于本发明实施例,所述装置还包括:
更新单元45,用于通过所述当前时间,及所述列表页链接对应的爬取间隔时间、剩余爬取层级更新所述缓存队列中列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级。
删除单元46,用于按照预置时间间隔将所述缓存队列中缓存时间与爬取间隔时间的和大于当前时间对应的缓存数据删除。
对于本发明实施例,所述装置还包括:初始化单元47;
所述接收单元41,还用于接收所述爬虫程序发送的事物处理函数;
所述初始化单元47,用于根据所述事物处理函数初始化所述缓存队列,并计算所述事物处理函数对应的唯一标识码;
所述发送单元43,还用于将所述唯一标识码发送给所述爬虫程序,以使得所述爬虫程序通过所述唯一标识码向所述缓存队列发送页面爬取请求信息。
需要说明的是,本发明实施例提供的一种数据爬取装置所涉及各功能单元的其他相应描述,可以参考图2所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供的一种数据爬取装置,首先接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接,若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。与目前通过爬虫程序向广播服务器发送其爬取的信息,然后由广播服务器负责将爬取的消息转发给其他的爬虫程序,以实现均衡控制各个爬虫程序爬取列表页链接对应的页面相比,在本发明实施例中,当爬虫程序接收到爬取任务后,首先向缓存队列发送页面爬取请求信息,所述页面爬取请求信息中包括列表页链接,然后根据缓存队列中存储的已爬取过的列表页链接判断是否对页面爬取请求信息中的列表页链接进行爬取,即以缓存队列中存储的链接判断页面爬取请求信息中的列表页链接是否为已经爬取过的链接,因此通过本发明实施例可以减少数据爬取的重复率。
所述数据爬取装置包括处理器和存储器,上述接收单元、判断单元、发送单元、存储单元、更新单元、删除单元和初始化单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少数据爬取的重复率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据爬取方法,其特征在于,包括:
接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
2.根据权利要求1所述的方法,其特征在于,所述页面爬取请求信息中还包括与所述列表页链接对应的爬取间隔时间、剩余爬取层级,在所述缓存队列中不存在所述列表页链接之后,所述方法还包括:
将所述页面爬取请求信息中的列表页链接,及与所述列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级对应存储到所述缓存队列中。
3.根据权利要求2所述的方法,其特征在于,所述判断缓存队列中是否存在所述列表页链接之后,所述方法还包括:
若所述缓存队列中存在所述列表页链接,则判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间;
若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
4.根据权利要求3所述的方法,其特征在于,所述判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间之后,所述方法还包括:
若所述对应链接的缓存时间及爬取间隔时间的和晚于当前时间,则判断所述列表页链接的剩余爬取层级是否大于缓存队列中对应链接的剩余爬取层级;
若大于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取;
若小于等于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的取消信息,以使得所述爬虫程序取消对所述列表页链接的爬取任务。
5.根据权利要求3或4所述的方法,其特征在于,若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,或所述列表页链接的剩余爬取层级大于缓存队列中对应链接的剩余爬取层级,则向所述爬虫程序发送所述页面爬取请求的确认信息之后,所述方法还包括:
通过所述当前时间,及所述列表页链接对应的爬取间隔时间、剩余爬取层级更新所述缓存队列中对应列表页链接的缓存时间、爬取间隔时间、剩余爬取层级。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
按照预置时间间隔将所述缓存队列中缓存时间与爬取间隔时间的和大于当前时间对应的缓存数据删除。
7.根据权利要求1所述的方法,其特征在于,所述接收爬虫程序发送的页面爬取请求信息之前,所述方法还包括:
接收所述爬虫程序发送的事物处理函数;
根据所述事物处理函数初始化所述缓存队列,并计算所述事物处理函数对应的唯一标识码;
将所述唯一标识码发送给所述爬虫程序,以使得所述爬虫程序通过所述唯一标识码向所述缓存队列发送页面爬取请求信息。
8.一种数据爬取装置,其特征在于,包括:
接收单元,用于接收爬虫程序发送的页面爬取请求信息,所述页面爬取请求信息中包括列表页链接;
判断单元,用于判断缓存队列中是否存在所述列表页链接,所述缓存队列中存储有爬虫程序已经爬取过的列表页链接;
发送单元,用于若所述缓存队列中不存在所述列表页链接,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
9.根据权利要求8所述的装置,其特征在于,所述页面爬取请求信息中还包括与所述列表页链接对应的爬取间隔时间、剩余爬取层级,所述装置还包括:
存储单元,用于将所述页面爬取请求信息中的列表页链接,及与所述列表页链接对应的缓存时间、爬取间隔时间、剩余爬取层级对应存储到所述缓存队列中。
10.根据权利要求9所述的装置,其特征在于,
所述判断单元,还用于若所述缓存队列中存在所述列表页链接,则判断缓存队列中与所述列表页链接对应链接的缓存时间及爬取间隔时间的和,是否早于当前时间;
所述发送单元,用于若所述对应链接的缓存时间及爬取间隔时间的和早于当前时间,则向所述爬虫程序发送所述页面爬取请求的确认信息,以使得所述爬虫程序对所述列表页链接对应的页面进行爬取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610096587.XA CN107102997A (zh) | 2016-02-22 | 2016-02-22 | 数据爬取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610096587.XA CN107102997A (zh) | 2016-02-22 | 2016-02-22 | 数据爬取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107102997A true CN107102997A (zh) | 2017-08-29 |
Family
ID=59658592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610096587.XA Pending CN107102997A (zh) | 2016-02-22 | 2016-02-22 | 数据爬取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107102997A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271576A (zh) * | 2018-08-29 | 2019-01-25 | 中译语通科技股份有限公司 | 一种基于新闻列表实时抓取方法 |
CN110020076A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 网页数据爬取的方法和装置 |
CN111428115A (zh) * | 2020-04-16 | 2020-07-17 | 行吟信息科技(上海)有限公司 | 一种网页信息处理方法及装置 |
CN111898012A (zh) * | 2020-07-23 | 2020-11-06 | 昆山领创信息科技有限公司 | 一种web应用自动抓包方法 |
CN113965371A (zh) * | 2021-10-19 | 2022-01-21 | 北京天融信网络安全技术有限公司 | 网站监测过程中的任务处理方法、装置、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178736A (zh) * | 2007-12-11 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 网页抓取方法和网页抓取服务器 |
US20090327338A1 (en) * | 2008-06-26 | 2009-12-31 | Nec (China) Co., Ltd. | Hierarchy extraction from the websites |
CN101826110A (zh) * | 2010-04-13 | 2010-09-08 | 北京大学 | 一种BitTorrent种子文件爬取方法 |
CN102355488A (zh) * | 2011-08-15 | 2012-02-15 | 北京星网锐捷网络技术有限公司 | 爬虫种子获取方法与设备及爬虫爬取方法与设备 |
CN103023714A (zh) * | 2012-11-21 | 2013-04-03 | 上海交通大学 | 基于网络话题的活跃度与集群结构分析系统及方法 |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
-
2016
- 2016-02-22 CN CN201610096587.XA patent/CN107102997A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178736A (zh) * | 2007-12-11 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 网页抓取方法和网页抓取服务器 |
US20090327338A1 (en) * | 2008-06-26 | 2009-12-31 | Nec (China) Co., Ltd. | Hierarchy extraction from the websites |
CN101826110A (zh) * | 2010-04-13 | 2010-09-08 | 北京大学 | 一种BitTorrent种子文件爬取方法 |
CN102355488A (zh) * | 2011-08-15 | 2012-02-15 | 北京星网锐捷网络技术有限公司 | 爬虫种子获取方法与设备及爬虫爬取方法与设备 |
CN103023714A (zh) * | 2012-11-21 | 2013-04-03 | 上海交通大学 | 基于网络话题的活跃度与集群结构分析系统及方法 |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020076A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 网页数据爬取的方法和装置 |
CN109271576A (zh) * | 2018-08-29 | 2019-01-25 | 中译语通科技股份有限公司 | 一种基于新闻列表实时抓取方法 |
CN111428115A (zh) * | 2020-04-16 | 2020-07-17 | 行吟信息科技(上海)有限公司 | 一种网页信息处理方法及装置 |
CN111898012A (zh) * | 2020-07-23 | 2020-11-06 | 昆山领创信息科技有限公司 | 一种web应用自动抓包方法 |
CN113965371A (zh) * | 2021-10-19 | 2022-01-21 | 北京天融信网络安全技术有限公司 | 网站监测过程中的任务处理方法、装置、终端及存储介质 |
CN113965371B (zh) * | 2021-10-19 | 2023-08-29 | 北京天融信网络安全技术有限公司 | 网站监测过程中的任务处理方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107102997A (zh) | 数据爬取方法及装置 | |
US10979213B2 (en) | Blockchain compression using summary and padding blocks | |
CN105243159B (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN102792292B (zh) | 站点性能优化和因特网业务处理的系统和方法 | |
CN108228282A (zh) | 用于网站页面加载的方法及装置 | |
CN101482882A (zh) | 跨域处理cookie的方法及其系统 | |
CN111967610A (zh) | 基于区块链的联邦学习激励方法、装置、设备及存储介质 | |
CN105635229B (zh) | 数据回填方法及装置 | |
US9495453B2 (en) | Resource download policies based on user browsing statistics | |
US20080147875A1 (en) | System, method and program for minimizing amount of data transfer across a network | |
CN107807937A (zh) | 一种网站seo处理方法、装置及系统 | |
CN107770563A (zh) | 一种弹幕消息处理方法及装置 | |
CN103765858A (zh) | 用于在用户在通信网络内的浏览期间监视用户的方法和服务器 | |
CN106649301A (zh) | 数据查询的方法、装置及系统 | |
CN107045507A (zh) | 网页爬取方法及装置 | |
CN108011931A (zh) | Web数据采集方法和Web数据采集系统 | |
US20150058435A1 (en) | Fast Mobile Web Applications Using Cloud Caching | |
CN106656920A (zh) | Http服务的处理方法及装置 | |
CN106873952A (zh) | 移动端网页开发的数据处理系统和方法、及应用装置 | |
CN105868234A (zh) | 缓存数据的更新方法及装置 | |
López-Pimentel et al. | Blockchain and off-chain: A solution for audit issues in supply chain systems | |
CN104933054B (zh) | 缓存资源文件的url存储方法及装置、缓存服务器 | |
CN106776635A (zh) | 知识库数据的更新方法及装置 | |
CN106649304A (zh) | 数据查询的方法、装置及系统 | |
US10191818B2 (en) | Filtered replication of data in distributed system of data centers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170829 |