CN104408195B - 爬虫程序工作状态的判断方法和装置 - Google Patents

爬虫程序工作状态的判断方法和装置 Download PDF

Info

Publication number
CN104408195B
CN104408195B CN201410779531.5A CN201410779531A CN104408195B CN 104408195 B CN104408195 B CN 104408195B CN 201410779531 A CN201410779531 A CN 201410779531A CN 104408195 B CN104408195 B CN 104408195B
Authority
CN
China
Prior art keywords
request
result data
crawls
crawl
analysis module
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.)
Active
Application number
CN201410779531.5A
Other languages
English (en)
Other versions
CN104408195A (zh
Inventor
何恺铎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410779531.5A priority Critical patent/CN104408195B/zh
Publication of CN104408195A publication Critical patent/CN104408195A/zh
Application granted granted Critical
Publication of CN104408195B publication Critical patent/CN104408195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种爬虫程序工作状态的判断方法和装置。其中,该判断方法包括:判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,第一爬取请求为链接分析模块发出的最后一个请求;若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则判断第一结果数据是否产生第二爬取请求,其中,第二爬取请求为解析第一结果数据产生的请求;若第一结果数据未产生第二爬取请求,则判断出爬虫程序的工作状态为结束爬取;若第一结果数据产生第二爬取请求,则判断出爬虫程序的工作状态为正在爬取。采用本发明,解决了现有技术中判断爬虫程序是否结束的准确性差的问题,实现了准确判断爬虫程序的工作状态。

Description

爬虫程序工作状态的判断方法和装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种爬虫程序工作状态的判断方法和装置。
背景技术
爬虫程序是构建互联网搜索引擎的基本组件,具备自动分析并爬取网站上所有页面的功能。其核心步骤是,首先爬取一个或多个给定的初始页面,随后对返回的页面进行链接分析,生成新的页面爬取请求,如此循环往复,直至不再有新的页面爬取请求生成为止。
一般来说,可以将爬虫程序分为链接分析模块与页面爬取模块,这两个模块是互相依赖的,既是对方资源的生产者,也是对方资源的消费者,这种相互依赖关系导致了爬取结束的判定比较困难,因为理论上链接分析的结束需要等待页面爬取模块的结束,页面爬取模块的结束也需要等待链接分析模块的结束,而在多线程时需要考虑线程的相关性,使得对爬虫程序的结束的判定更为困难。
传统的爬虫程序,在判断爬虫程序是否结束时,需要始终追踪页面爬取模块中待爬取请求的数量和正在执行的爬取请求的数量。仅当该两个数量同时为零时,才能判定爬虫结束。
现有技术方案在多线程环境下具有较高的技术难度,并存在竞争条件风险。在多线程环境下,首先,获取和追踪这队列请求数量和正在进行的爬取任务数量必须分别使用线程安全的数据结构;其次,判断两个数量同时为零具有较高的技术难度,因为作此判定需要进行两个条件判断,而这两个条件判断作为一个整体不具备原子性。而在两个条件判断的间隙,状态可能发生了变化,导致判定结果错误。
针对现有技术中判断爬虫程序是否结束的准确性差的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种爬虫程序工作状态的判断方法和装置,以解决现有技术中判断爬虫程序是否结束的准确性差的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种爬虫程序工作状态的判断方法。根据本发明的爬虫程序工作状态的判断方法包括:判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,第一爬取请求为链接分析模块发出的最后一个请求;若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则判断第一结果数据是否产生第二爬取请求,其中,第二爬取请求为解析第一结果数据产生的请求;若第一结果数据未产生第二爬取请求,则判断出爬虫程序的工作状态为结束爬取;若第一结果数据产生第二爬取请求,则判断出爬虫程序的工作状态为正在爬取。
进一步地,判断第一结果数据是否产生第二爬取请求包括:若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则开启计时器计时;在预设时间段内判断链接分析模块是否输出第二爬取请求;若链接分析模块输出第二爬取请求,则判断出第一结果数据产生第二爬取请求,停止并重置计时器;若链接分析模块未输出第二爬取请求,则判断出第一结果数据未产生第二爬取请求。
进一步地,在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,判断方法还包括:设置链接分析模块输出的各个第三爬取请求的第一标签;设置执行第三爬取请求得到第一结果数据的第二标签;建立第一标签与第二标签的映射关系,其中,第三爬取请求包括第一爬取请求;判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据包括:通过第一标签和第二标签的映射关系判断第一结果数据是否为第一爬取请求所产生的数据。
进一步地,在设置链接分析模块输出的各个第三爬取请求的第一标签的同时,判断方法还包括:保存第一标签,停止并重置计时器的计时。
进一步地,在判断出爬虫程序的工作状态为结束爬取之后,判断方法还包括:关闭爬虫程序的链接分析模块和页面爬取模块。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种爬虫程序工作状态的判断装置。
根据本发明的爬虫程序工作状态的判断装置包括:第一判断模块,用于判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,第一爬取请求为链接分析模块发出的最后一个请求;第二判断模块,用于若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则判断第一结果数据是否产生第二爬取请求,其中,第二爬取请求为解析第一结果数据产生的请求;第一确定模块,用于若第一结果数据未产生第二爬取请求,则判断出爬虫程序的工作状态为结束爬取;第二确定模块,用于若第一结果数据产生第二爬取请求,则判断出爬虫程序的工作状态为正在爬取。
进一步地,第二判断模块包括:启动模块,用于若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则开启计时器计时;第二判断子模块,用于在预设时间段内判断链接分析模块是否输出第二爬取请求;第三确定模块,用于若链接分析模块输出第二爬取请求,则判断出第一结果数据产生第二爬取请求,停止并重置计时器;第四确定模块,用于若链接分析模块未输出第二爬取请求,则判断出第一结果数据未产生第二爬取请求。
进一步地,判断装置还包括:第一设置模块,用于在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,设置链接分析模块输出的各个第三爬取请求的第一标签;第二设置模块,用于设置执行第三爬取请求得到第一结果数据的第二标签;建立第一标签与第二标签的映射关系,其中,第三爬取请求包括第一爬取请求;第一判断模块包括:第一判断子模块,用于通过第一标签和第二标签的映射关系判断第一结果数据是否为第一爬取请求所产生的数据。
进一步地,判断装置还包括:保存模块,用于在设置链接分析模块输出的各个第三爬取请求的第一标签的同时,保存第一标签,停止并重置计时器的计时。
进一步地,判断装置还包括:关闭模块,用于在判断出爬虫程序的工作状态为结束爬取之后,关闭爬虫程序的链接分析模块和页面爬取模块。
采用本发明,通过判断爬虫程序的链接分析模块发出的第一爬取请求与接收到的第一结果数据的关系来判断是否当前爬虫程序是否结束。具体地,若链接分析模块接收到第一结果数据,则分析该第一结果数据是否为第一爬取请求所产生,若该第一结果数据是第一爬取请求所产生,则判断第一结果数据是否产生第二爬取请求,若第一结果数据产生第二爬取请求,则判断出链接分析模块接收到第一结果数据之后,产生了新的爬取请求,爬虫程序仍处于运行状态;若第一结果数据不产生第二爬取请求则判断出链接分析模块接收到第一结果数据之后,未产生新的爬取请求,爬虫程序的工作状态为结束。采用本发明,解决了现有技术中判断爬虫程序是否结束的准确性差的问题,实现了准确判断爬虫程序的工作状态。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的爬虫程序工作状态的判断方法的流程图;
图2是根据本发明实施例的爬虫程序工作状态的判断方法的原理示意图;以及
图3是根据本发明实施例的爬虫程序工作状态的判断装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种爬虫程序工作状态的判断方法。图1是根据本发明实施例的爬虫程序工作状态的判断方法的流程图。如图1所示,该方法可以包括步骤如下:
步骤S102,判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据。
其中,第一爬取请求为链接分析模块发出的最后一个请求。
步骤S104,若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则判断第一结果数据是否产生第二爬取请求。
其中,第二爬取请求为解析第一结果数据产生的请求。
步骤S106,若第一结果数据未产生第二爬取请求,则判断出爬虫程序的工作状态为结束爬取。
步骤S108,若第一结果数据产生第二爬取请求,则判断出爬虫程序的工作状态为正在爬取。
采用本发明,通过判断爬虫程序的链接分析模块发出的第一爬取请求与接收到的第一结果数据的关系来判断是否当前爬虫程序是否结束。具体地,若链接分析模块接收到第一结果数据,则分析该第一结果数据是否为第一爬取请求所产生,若该第一结果数据是第一爬取请求所产生,则判断第一结果数据是否产生第二爬取请求,若第一结果数据产生第二爬取请求,则判断出链接分析模块接收到第一结果数据之后,产生了新的爬取请求,爬虫程序仍处于运行状态;若第一结果数据不产生第二爬取请求则判断出链接分析模块接收到第一结果数据之后,未产生新的爬取请求,爬虫程序的工作状态为结束。采用本发明,解决了现有技术中判断爬虫程序是否结束的准确性差的问题,实现了准确判断爬虫程序的工作状态。
通过本发明的上述实施例,无需同时分别判断页面爬取模块和链接分析模块中正在爬取的数量和待爬取任务的数量之间的关系,简化了判断条件,实现了对判断爬虫程序的结束与否的简单判断。
根据本发明的上述实施例,判断第一结果数据是否产生第二爬取请求可以包括:若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则开启计时器计时;在预设时间段内判断链接分析模块是否输出第二爬取请求;若链接分析模块输出第二爬取请求,则判断出第一结果数据产生第二爬取请求,停止并重置计时器;若链接分析模块未输出第二爬取请求,则判断出第一结果数据未产生第二爬取请求。
具体地,若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据时则开启计时器计时,并判断该第一结果数据回到链接分析模块后,是否有新的第二爬取请求生成,当计时器计时满预设时间段之前产生第二爬取请求生成,则停止并重置计数器;当计时器计时满预设时间段时仍无第二爬取请求生成,则判断出第一结果数据未产生第二爬取请求。
需要进一步说明的是,上述实施例中预设时间段可以为3秒,此方法主要是利用了链接分析模块的运算皆为内存计算,能在可预估在一定时间内完成运算,可以为3秒。
根据本发明的上述实施例,在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,判断方法还可以包括:设置链接分析模块输出的各个第三爬取请求的第一标签;设置执行第三爬取请求得到第一结果数据的第二标签;建立第一标签与第二标签的映射关系,其中,第三爬取请求包括第一爬取请求;判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据包括:通过第一标签和第二标签的映射关系判断第一结果数据是否为第一爬取请求所产生的数据。
其中,上述实施例中的第一标签与第二标签的映射关系可以为相等关系,即,第一标签的值等于第二标签的值,即爬取结果与对应的爬取请求使用同样的标签。
通过本发明的上述实施例,通过为爬取请求打上唯一标签,并判定最后离开链接分析模块的标签回到链接分析模块后,是否有新的爬取请求生成,若未产生新的爬取请求,爬虫程序的工作状态为结束,实现了准确判断爬虫程序的工作状态。
下面结合图2详述本发明的上述实施例,如图2所示,在链接分析模块90中初始化一个计时器,用于计时;标签设置模块91用于为链接分析模块的输出的每一个第三爬取请求设置第一标签;页面设置模块80用于为执行第三爬取请求得到第一结果数据设置第二标签;同时建立第一标签和第二标签的映射关系(在该实施例中第一标签和第二标签相同),标签检查模块92通过该映射关系判断第一结果数据是否为第一爬取请求所产生的数据。其中,标签设置模块91和标签检查模块92为链接分析模块90的子模块。图2中的步骤S304是指第三爬取请求由链接分析模块发送至页面爬取模块,步骤S302是指第一结果数据由页面爬取模块发送至链接分析模块。
需要进一步说明的是,标签设置模块91会不断更新第一标签,每一个第三爬取请求输出时,标签设置模块都会赋给它一个新的标签,并将这个新的标签记为第一标签。
通过本发明的上述实施例,无需追踪爬虫程序中待爬取请求数量和正在运行的爬取请求数量这两个变量,从而规避了线程安全相关的复杂性和竞争风险。本发明的上述实施例仅需对第三爬取请求和第一结果数据设置唯一标签(即第一标签和第二标签),并通过标签判定最后离开链接分析模块的标签回到链接分析模块后,是否有新的爬取请求生成,若无新请求生成,开启计时器计时,当一段时间之后,仍无新请求生成,则判定爬取结束,从而准确判断爬虫程序的结束状态。
需要进一步说明的是,在设置链接分析模块输出的各个第三爬取请求的第一标签的同时,判断方法还可以包括:保存第一标签,停止并重置计时器的计时。
在上述实施例中,每输出一个爬取请求,标签设置模块91为其设置一个标签,同时更新第一标签,并且停止并重置计时器的计时。
具体地,在上述实施例可用一个数据表保存所有的第三爬取请求和对应的第一标签,在判断是否结束爬虫程序时,可从该数据表中读取数据,通过使用这个数据表能够提高查询效率,达到了简化对爬虫程序结束条件的简化的效果,使得爬虫程序的结束更容易判断。
在本发明的上述实施例中,在判断出爬虫程序的工作状态为结束爬取之后,判断方法还可以包括:关闭爬虫程序的链接分析模块和页面爬取模块。
在本发明的上述实施例中,判定最后离开链接分析模块的爬取请求的结果回到链接分析模块后,是否有新的爬取请求生成;若无新请求生成,则开启计时器计时,当一段时间之后,仍无新爬取请求生成,则判定爬取结束,此时可关闭链接分析模块与页面爬取模块。
在上述实施例中,无需分析待爬取请求数量和正在进行的爬取请求数量两个变量,而是为每一个第三爬取请求设置第一标签、为每一个第一结果数据设置第二标签,分别将所有第三爬取请求和第一结果数据当成一个整体。在判断过程中,仅当第一标签和第二标签匹配(如,相同)时,即第一结果数据是链接分析模块所发出的最后一个请求(即上述实施例中的第一爬取请求)所产生的时候,开启计时器,若经过预设时间段链接分析模块无新的爬取请求(即上述实施例中的第二爬取请求)输出,则判定爬虫程序结束,即关闭链接分析模块和页面爬取模块。通过本发明的上述方法,达到了对爬虫程序判定时条件简单、判定效率高且不易出错的效果。
通过本发明上述实施例,仅需对模块边界的输出打上唯一标签,并通过追踪“当前最后一个爬取请求”并利用链接分析的性能可预判性,巧妙地得到结束条件的触发,具有逻辑简单、无竞争风险且判断结果准确地优点。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种爬虫程序工作状态的判断装置。图3是根据本发明实施例的爬虫程序工作状态的判断装置的示意图。如图3所示,该判断装置可以包括模块如下:第一判断模块10、第二判断模块30、第一确定模块50以及第二确定模块70。
其中,第一判断模块10用于判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,第一爬取请求为链接分析模块发出的最后一个请求;第二判断模块30用于若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则判断第一结果数据是否产生第二爬取请求,其中,第二爬取请求为解析第一结果数据产生的请求;第一确定模块50用于若第一结果数据未产生第二爬取请求,则判断出爬虫程序的工作状态为结束爬取;第二确定模块70用于若第一结果数据产生第二爬取请求,则判断出爬虫程序的工作状态为正在爬取。
采用本发明,通过判断爬虫程序的链接分析模块发出的第一爬取请求与接收到的第一结果数据的关系来判断是否当前爬虫程序是否结束。具体地,若链接分析模块接收到第一结果数据,则第一判断模块分析该第一结果数据是否为第一爬取请求所产生,若该第一结果数据是第一爬取请求所产生,则第二判断模块判断第一结果数据是否产生第二爬取请求,若第一结果数据产生第二爬取请求,则判断出链接分析模块接收到第一结果数据之后,产生了新的爬取请求,爬虫程序仍处于运行状态;若第一结果数据不产生第二爬取请求则判断出链接分析模块接收到第一结果数据之后,未产生新的爬取请求,爬虫程序的工作状态为结束。采用本发明,解决了现有技术中判断爬虫程序是否结束的准确性差的问题,实现了准确判断爬虫程序的工作状态。
通过本发明的上述实施例,无需同时分别判断页面爬取模块和链接分析模块中正在爬取的数量和待爬取任务的数量之间的关系,简化了判断条件,实现了对判断爬虫程序的结束与否的简单判断。
在本发明的上述实施例中,第二判断模块可以包括:启动模块,用于若链接分析模块接收到的第一结果数据为第一爬取请求所产生的数据,则开启计时器计时;第二判断子模块,用于在预设时间段内判断链接分析模块是否输出第二爬取请求;第三确定模块,用于若链接分析模块输出第二爬取请求,则判断出第一结果数据产生第二爬取请求,停止并重置计时器;第四确定模块,用于若链接分析模块未输出第二爬取请求,则判断出第一结果数据未产生第二爬取请求。
通过本发明的上述实施例,不用同时分别判断页面爬取模块和链接分析模块中正在进行的爬取请求的数量和待爬取请求的数量之间的关系,简化了判断条件,实现了对判断爬虫程序的结束与否的简单判断。
根据本发明的上述实施例,判断装置还可以包括:第一设置模块,用于在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,设置链接分析模块输出的各个第三爬取请求的第一标签;第二设置模块,用于设置执行第三爬取请求得到第一结果数据的第二标签;建立第一标签与第二标签的映射关系,其中,第三爬取请求包括第一爬取请求;第一判断模块包括:第一判断子模块,用于通过第一标签和第二标签的映射关系判断第一结果数据是否为第一爬取请求所产生的数据。
其中,上述实施例中的第一标签与第二标签的映射关系可以为相等关系,即,第一标签的值等于第二标签的值,即爬取结果与对应的爬取请求使用同样的标签。
本发明所提供的方法仅需对第三爬取请求和第一结果数据设置唯一标签(即第一标签和第二标签),并通过标签判断第一爬取请求和第一结果数据之间的关系判断是否结束爬虫程序,简化了爬虫程序的结束的判定条件,达到了对爬虫程序是否结束进行判定时实现条件简单、无竞争风险的效果。
需要进一步说明的是,第一设置模块(该模块的功能与上述的标签设置模块功能类似)可不断更新第一标签:每一个第三爬取请求输出时,标签设置模块都会赋给它一个新的标签,并将这个新的标签记为第一标签。
通过本发明的上述实施例,无需追踪爬虫程序中待爬取请求数量和正在运行的爬取请求数量这两个变量,从而规避了线程安全相关的复杂性和竞争风险。本发明的上述实施例仅需对第三爬取请求和第一结果数据设置唯一标签(即第一标签和第二标签),并通过标签判定最后离开链接分析模块的标签回到链接分析模块后,是否有新的爬取请求生成,若无新请求生成,开启计时器计时,当一段时间之后,仍无新请求生成,则判定爬取结束,从而准确判断爬虫程序的结束状态。
在上述实施例中,该判断装置还可以包括:保存模块,用于在设置链接分析模块输出的各个第三爬取请求的第一标签的同时,保存第一标签,停止并重置计时器的计时。
需要进一步说明的是,在上述实施例中保存模块还可以包括一个数据模块,用于保存所有的第三爬取请求和对应的第一标签,在判断是否结束爬虫程序时,需要从该数据模块中读取数据,通过使用这个数据模块能够提高查询效率,达到了简化对爬虫程序结束条件的简化的效果,使得爬虫程序的结束更容易判断。
在本发明的上述实施例中,其特征在于,该判断装置还可以包括:关闭模块,用于在判断出爬虫程序的工作状态为结束爬取之后,关闭爬虫程序的链接分析模块和页面爬取模块。
通过本发明上述实施例,仅需对模块边界的输出打上唯一标签,并通过追踪“当前最后一个爬取请求”并利用链接分析的性能可预判性,巧妙地得到结束条件的触发,具有逻辑简单、无竞争风险且判断结果准确地优点。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
从以上的描述中,可以看出,本发明实现了如下技术效果:
采用本发明,通过判断爬虫程序的链接分析模块发出的第一爬取请求与接收到的第一结果数据的关系来判断是否当前爬虫程序是否结束。具体地,若链接分析模块接收到第一结果数据,则分析该第一结果数据是否为第一爬取请求所产生,若该第一结果数据是第一爬取请求所产生,则判断第一结果数据是否产生第二爬取请求,若第一结果数据产生第二爬取请求,则判断出链接分析模块接收到第一结果数据之后,产生了新的爬取请求,爬虫程序仍处于运行状态;若第一结果数据不产生第二爬取请求则判断出链接分析模块接收到第一结果数据之后,未产生新的爬取请求,爬虫程序的工作状态为结束。采用本发明,解决了现有技术中判断爬虫程序是否结束的准确性差的问题,实现了准确判断爬虫程序的工作状态。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种爬虫程序工作状态的判断方法,其特征在于,包括:
判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,所述第一爬取请求为所述链接分析模块发出的最后一个请求;
若所述链接分析模块接收到的第一结果数据为所述第一爬取请求所产生的数据,则判断所述第一结果数据是否产生第二爬取请求,其中,所述第二爬取请求为解析所述第一结果数据产生的请求;
若所述第一结果数据未产生所述第二爬取请求,则判断出所述爬虫程序的工作状态为结束爬取;
若所述第一结果数据产生所述第二爬取请求,则判断出所述爬虫程序的工作状态为正在爬取。
2.根据权利要求1所述的判断方法,其特征在于,判断所述第一结果数据是否产生第二爬取请求包括:
若所述链接分析模块接收到的第一结果数据为所述第一爬取请求所产生的数据,则开启计时器计时;
在预设时间段内判断所述链接分析模块是否输出所述第二爬取请求;
若所述链接分析模块输出所述第二爬取请求,则判断出所述第一结果数据产生所述第二爬取请求,停止并重置所述计时器;
若所述链接分析模块未输出所述第二爬取请求,则判断出所述第一结果数据未产生所述第二爬取请求。
3.根据权利要求1所述的判断方法,其特征在于,
在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,所述判断方法还包括:设置所述链接分析模块输出的各个第三爬取请求的第一标签;设置执行所述第三爬取请求得到第一结果数据的第二标签;建立所述第一标签与所述第二标签的映射关系,其中,所述第三爬取请求包括所述第一爬取请求;
判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据包括:通过所述第一标签和所述第二标签的映射关系判断所述第一结果数据是否为所述第一爬取请求所产生的数据。
4.根据权利要求3所述的判断方法,其特征在于,在设置所述链接分析模块输出的各个第三爬取请求的第一标签的同时,所述判断方法还包括:
保存所述第一标签,停止并重置计时器的计时。
5.根据权利要求1至4中任意一项所述的判断方法,其特征在于,在判断出所述爬虫程序的工作状态为结束爬取之后,所述判断方法还包括:
关闭所述爬虫程序的所述链接分析模块和页面爬取模块。
6.一种爬虫程序工作状态的判断装置,其特征在于,包括:
第一判断模块,用于判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据,其中,所述第一爬取请求为所述链接分析模块发出的最后一个请求;
第二判断模块,用于若所述链接分析模块接收到的第一结果数据为所述第一爬取请求所产生的数据,则判断所述第一结果数据是否产生第二爬取请求,其中,所述第二爬取请求为解析所述第一结果数据产生的请求;
第一确定模块,用于若所述第一结果数据未产生所述第二爬取请求,则判断出所述爬虫程序的工作状态为结束爬取;
第二确定模块,用于若所述第一结果数据产生所述第二爬取请求,则判断出所述爬虫程序的工作状态为正在爬取。
7.根据权利要求6所述的判断装置,其特征在于,所述第二判断模块包括:
启动模块,用于若所述链接分析模块接收到的第一结果数据为所述第一爬取请求所产生的数据,则开启计时器计时;
第二判断子模块,用于在预设时间段内判断所述链接分析模块是否输出所述第二爬取请求;
第三确定模块,用于若所述链接分析模块输出所述第二爬取请求,则判断出所述第一结果数据产生所述第二爬取请求,停止并重置所述计时器;
第四确定模块,用于若所述链接分析模块未输出所述第二爬取请求,则判断出所述第一结果数据未产生所述第二爬取请求。
8.根据权利要求6所述的判断装置,其特征在于,所述判断装置还包括:
第一设置模块,用于在判断爬虫程序的链接分析模块接收到的第一结果数据是否为第一爬取请求所产生的数据之前,设置所述链接分析模块输出的各个第三爬取请求的第一标签;
第二设置模块,用于设置执行所述第三爬取请求得到第一结果数据的第二标签;建立所述第一标签与所述第二标签的映射关系,其中,所述第三爬取请求包括所述第一爬取请求;
所述第一判断模块包括:第一判断子模块,用于通过所述第一标签和所述第二标签的映射关系判断所述第一结果数据是否为所述第一爬取请求所产生的数据。
9.根据权利要求8所述的判断装置,其特征在于,所述判断装置还包括:
保存模块,用于在设置所述链接分析模块输出的各个第三爬取请求的第一标签的同时,保存所述第一标签,停止并重置计时器的计时。
10.根据权利要求6至9中任意一项所述的判断装置,其特征在于,所述判断装置还包括:
关闭模块,用于在判断出所述爬虫程序的工作状态为结束爬取之后,关闭所述爬虫程序的所述链接分析模块和页面爬取模块。
CN201410779531.5A 2014-12-15 2014-12-15 爬虫程序工作状态的判断方法和装置 Active CN104408195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410779531.5A CN104408195B (zh) 2014-12-15 2014-12-15 爬虫程序工作状态的判断方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410779531.5A CN104408195B (zh) 2014-12-15 2014-12-15 爬虫程序工作状态的判断方法和装置

Publications (2)

Publication Number Publication Date
CN104408195A CN104408195A (zh) 2015-03-11
CN104408195B true CN104408195B (zh) 2017-12-19

Family

ID=52645826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410779531.5A Active CN104408195B (zh) 2014-12-15 2014-12-15 爬虫程序工作状态的判断方法和装置

Country Status (1)

Country Link
CN (1) CN104408195B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557334B (zh) * 2015-09-25 2020-02-07 北京国双科技有限公司 爬虫任务完成的判断方法和装置
CN110968770B (zh) * 2018-09-29 2023-09-05 北京国双科技有限公司 一种终止爬虫工具爬取的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137022A (zh) * 2011-04-01 2011-07-27 华为技术有限公司 提供用于识别数据包的信息的方法、爬虫引擎及网络系统
CN104050037A (zh) * 2014-06-13 2014-09-17 淮阴工学院 一种基于指定电子商务网站的定向爬虫的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065341B2 (en) * 2008-10-01 2011-11-22 Sap Ag Systems and methods for efficient data transfer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137022A (zh) * 2011-04-01 2011-07-27 华为技术有限公司 提供用于识别数据包的信息的方法、爬虫引擎及网络系统
CN104050037A (zh) * 2014-06-13 2014-09-17 淮阴工学院 一种基于指定电子商务网站的定向爬虫的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
网络爬虫技术的研究;孙立伟等;《电脑知识与技术》;20100530;第6卷(第15期);第4112-4115页 *
网络爬虫技术研究;于成龙等;《东莞理工学院学报》;20110630;第18卷(第3期);第25-29页 *

Also Published As

Publication number Publication date
CN104408195A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN110147722A (zh) 一种视频处理方法、视频处理装置及终端设备
CN107770263A (zh) 一种基于边缘计算的物联网终端安全接入方法及系统
CN104598518B (zh) 一种内容的推送方法和装置
CN108090091A (zh) 网页爬取方法和装置
CN110570400B (zh) 一种芯片3d封装检测的信息处理方法和装置
CN107040863A (zh) 实时业务推荐方法及系统
CN104537005B (zh) 用于网页爬取的数据处理方法及装置
CN106155812A (zh) 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
CN109818949A (zh) 一种基于神经网络的反爬虫方法
CN109617706A (zh) 工业控制系统防护方法及工业控制系统防护装置
CN106022568A (zh) 一种工作流的处理方法和装置
CN104408195B (zh) 爬虫程序工作状态的判断方法和装置
Zarreh et al. Risk assessment for cyber security of manufacturing systems: A game theory approach
CN104618403A (zh) 安全网关的访问控制方法和装置
CN109951846A (zh) 无线网络识别方法、装置、存储介质及计算机设备
CN110442596A (zh) 数据库信息的获取方法、装置、存储介质及电子装置
CN109491857A (zh) 一种基于规则引擎的数据监控方法、系统及终端设备
CN109756363A (zh) 数据传输稳定性控制方法、装置、计算机设备及存储介质
CN104967698B (zh) 一种爬取网络数据的方法和装置
CN109543117A (zh) 基于智能推荐的服务推送方法及终端设备
CN110162769A (zh) 文本主题输出方法和装置、存储介质及电子装置
CN110119396A (zh) 数据管理方法及相关产品
CN106528841B (zh) 智能足球赛事成绩记录分析系统及方法
CN110071845A (zh) 一种对未知应用进行分类的方法及装置
CN105978898B (zh) 一种变电站监控系统网络安全威胁评估方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Crawler working state judging method and device

Effective date of registration: 20190531

Granted publication date: 20171219

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20171219