CN103248625B - 一种网络爬虫运行异常监控方法和系统 - Google Patents
一种网络爬虫运行异常监控方法和系统 Download PDFInfo
- Publication number
- CN103248625B CN103248625B CN201310152396.7A CN201310152396A CN103248625B CN 103248625 B CN103248625 B CN 103248625B CN 201310152396 A CN201310152396 A CN 201310152396A CN 103248625 B CN103248625 B CN 103248625B
- Authority
- CN
- China
- Prior art keywords
- web crawlers
- abnormal
- state
- download
- running status
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种网络爬虫运行异常监控方法,该方法包括以下步骤:检测网络爬虫运行状态;判断网络爬虫运行状态是否存在异常;当爬虫运行状态出现异常时,进行异常报警。本发明还提供了一种网络爬虫运行异常监控系统,该系统包括网络爬虫运行状态检测单元、状态判断单元、报警单元。本发明提供的网络爬虫运行异常监控方法和系统能够及时检测出网络爬虫的异常运行状态,并且发出报警信息,提高了网络爬虫的运行可靠性。
Description
技术领域
本发明涉及一种网络爬虫运行异常监控方法和系统。
背景技术
网络爬虫是一种抓取网页的程序。网络爬虫通过网页的链接地址来寻找网页,例如:从网站某一个页面(通常是首页)开始,读取该页面的内容,并且找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
有的时候,网络爬虫需要抓取的数据可达数千万,面对这样大的抓取平台,在每一个环节,如网页下载、文档解析、正则匹配都可能出现运行异常的问题,从而影响了网络爬虫程序的运行可靠性。因此,需要设计一个较为完善的异常检测与监控方案。
发明内容
针对现有技术的缺陷,本发明的目的是提供一种能够监测网络爬虫多种运行状态的方法和系统。
本发明提供了一种网络爬虫运行异常监控方法,该方法包括以下步骤:a.检测网络爬虫运行状态;b.判断网络爬虫运行状态是否存在异常;c.当爬虫运行状态出现异常时,进行异常报警。
优选地,检测网络爬虫运行状态包括检测下载状态。
优选地,步骤b包括:当网络连接故障或网站对IP地址屏蔽时,判断下载状态存在异常。
优选地,当满足如下两个公式条件时,判定IP地址被网站屏蔽:
其中:downLoadOks表示下载成功数,downLoadFails表示下载失败数,extractMissings表示文档解析抽取失败数,threshold1和threshold2为阈值。
优选地,检测网络爬虫运行状态包括检测内容解析状态。优选地,通过Dom选择器或正则匹配方法对内容进行解析。
优选地,在步骤b中,当出现以下任一种情况时,判断正则匹配方法出现异常:(1)正则匹配出现死循环;(2)url地址改变或者内容发生改版。
优选地,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则判断出现了正则匹配死循环。
优选地,检测网络爬虫运行状态包括数据保存状态和网络异常状态。
优选地,将需要保存的数据通过网络传递给调度端,如果传递失败,说明网络存在异常,同时数据保存也存在异常
优选地,检测网络爬虫运行状态包括检测内存占用状态。更优选地,对爬虫系统中使用到的各种类对象,进行实时的内存占用状态统计,当部分类对象占用空间超过一定的阈值,或者整个爬虫程序占用内存超过一定的阈值,则判断内存状态出现异常。
优选地,步骤c包括:当爬虫运行状态出现异常时,通过发送邮件或发送短信的方式进行异常报警。
本发明还提供了一种网络爬虫运行异常监控系统,该系统包括网络爬虫运行状态检测单元、状态判断单元、报警单元,其中:网络爬虫运行状态检测单元用于检测网络爬虫运行状态;状态判断单元用于判断所述网络爬虫运行状态是否存在异常;报警单元用于当爬虫运行状态出现异常时进行异常报警。
优选地,所述爬虫运行状态检测单元包括下载状态检测模块。
优选地,下载状态检测模块用于当网络连接故障或网站对IP地址屏蔽时,判断下载状态存在异常。
优选地,所述爬虫运行状态检测单元包括内容解析状态检测模块。
优选地,内容解析状态检测模块为正则匹配状态检测模块,正则匹配状态检测模块包括计时器,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则判断出现了正则匹配死循环。
优选地,所述爬虫运行状态检测单元包括数据保存和网络异常状态检测模块,数据保存和网络异常状态检测模块用于检测通过网络通信传递给调度端的待保存数据,如果传递失败,判断网络存在异常,并且保存也存在异常。
优选地,所述爬虫运行状态检测单元包括内存状态监控模块,以进行内存状态监控,对网络爬虫使用到的各种类对象进行实时的内存占用状态统计,如果某些类对象占用空间超过一定的阈值,或者整个网络爬虫程序占用内存超过一定的阈值,则判断出现了内存状态异常。
优选地,报警单元为电子邮件发送模块或短信发送模块。
相对于现有技术,本发明提供的网络爬虫运行异常监控方法和系统能够及时检测出网络爬虫的异常运行状态,并且发出报警信息,提高了网络爬虫的运行可靠性。
附图说明
图1是本发明一种优选实施方式的网络爬虫运行异常监控方法的流程图;
图2是本发明一种优选实施方式的网络爬虫运行异常监控系统的结构框图。
具体实施方式
图1是本发明一种优选实施方式的网络爬虫运行异常监控方法的流程图,如图所示:
网络爬虫的工作过程如下:首先由抓取端程序下载某一网页的html内容,然后再由调度端程序对下载的内容进行解析,获取需要的数据结果。本发明监测上述过程中是否出现了运行异常状况,如果出现异常,则需要及时向用户报警。
在步骤101,检测网络爬虫运行状态。在本发明的优选实施方式中,可以对网络爬虫的下载状态、内容解析状态、正则匹配状态、数据保存状态、网络异常状态、内存占用状态进行检测。
在步骤102,判断网络爬虫运行状态是否存在异常。如果出现异常,则在步骤103向用户报警,如果没有异常,则在步骤104继续网络爬虫的运行。
针对步骤101提及的各种运行状态:其中:在步骤1011,可以通过检测下载成功、下载失败的信息来监控下载状态是否异常。下载程序可以有各种适合的网络下载软件模块实现,下载失败状态通常表现为两种情形:网络连接故障;某个网站对该节点的IP地址的屏蔽。这两种情形都会导致出现下载失败的异常状态,当下载失败后,相关的软件模块,例如下载监听器,通过对下载状态进行检测,获得下载成功或下载失败信息。
优选地,如果同时满足如下两个公式条件,就可以认定在某个节点某个网站被屏蔽:
其中:downLoadOks表示下载成功数,downLoadFails表示下载失败数,extractMissings表示文档解析抽取失败数,threshold1和threshold2为阈值,例如threshold1和threshold2均为0.9。
优选地,在步骤1012,还可以对内容解析状态进行监控。解析的目的是解析出需要抓取的内容,例如抓取出价格。
目前在爬虫系统的解析过程可以通过两种方法进行,第一种是使用Dom选择器选择网页中的web元素进行解析。Dom选择器读取网页数据结构中特定元素,如果读取到所需的元素,则解析成功;如果未读取到所需的元素,则解析失败。
第二种解析方法是使用正则匹配方法来进行解析。正则匹配方法是首先设定一个正则表达式,然后对特定网页中的内容与正则表达式进行正则匹配,如果经过正则匹配抓取出了所需的数据,则解析成功;如果未能抓取出所需的数据,则解析失败。本领域技术人员可以理解,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,用来检索和/或替换那些符合某个模式的文本内容。正则匹配主要体现为url地址匹配或html解析内容匹配。以具体事例说明:
url地址匹配示例如下:
原地址(url):
http://detail.tmall.com/venus/spu_detail.htm?spm=a220o.1000855.1000983.1.ZTd6q3&spu_id=215812503&no_switch=1&default_item_id=19336727591
正则表达式为:
(?i)(http(s)?://){1}detail\.tmall\.com/venus/spu_detail\.htm.*?(\?|&)(default_item_id)=(\d+).*
正则表达式在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。通过上面的地址正则表达式对原地址进行正则匹配,在进行正则匹配时,其中()匹配的是一个序列号index代表的字符串,如第一个()经过正则匹配,结果将是位置序号index为0的匹配出来的字符串,在本爬虫系统中,需要匹配出一种重要的id值,就是最后一个(\d+)对原地址进行匹配的这个字符串“19336727591”,该字符串就是本正则表达式想要匹配的结果。
内容匹配示例如下:
内容对应的地址:
http://detail.tmall.com/venus/spu_detail.htm?spm=a220o.1000855.1000983.1.HJTmFA&spu_id=215789842&no_switch=1&default_item_id=17438497015
限于篇幅,截取一部分该网页源代码对应的内容(后面需要正则匹配的内容包含在该部分内容里)如下:
正则表达式(下面表达式的意思是匹配出库存量):
<span id="J_SpanStock".*?>(.*?)</span>
用该正则表达式匹配上面的网页源码内容,将会通过(.*?)把181匹配出来,这个数据就是本正则表达式想要匹配出的结果,即抓取了对应页面中的库存量字符串,从而获取库存量数据。
但是,在进行匹配的时候,可能出现异常的情况包括:(1)正则匹配出现死循环,一直匹配不出结果;(2)由于url地址改变或者网页改版导致内容发生改版,最终导致匹配不出所需的结果。因此,需要对这两种状态监控。具体地,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则认为出现了死循环。相反,如果在预定时间内收到的解析结果是“匹配为空”时,可以认为url地址已改变或者导致内容发生改版。
优选地,在步骤1013,还可以监控数据保存状态及网络状态。在本实施例中,将监控数据保存状态及网络异常状态结合起来,将需要保存的数据通过网络通信传递给调度端,如果传递失败,说明网络存在异常,同时保存也存在异常,此时监控到保存异常之后,获取异常状态。当出现数据保存状态异常和网络异常状态后,可以采用重新抓取数据和再保存数据的处理来解决异常。
优选地,在步骤1014,进行内存状态监控。针对爬虫系统中使用到的各种类对象,进行实时的内存占用状态统计,如果某些类对象占用空间超过一定的阈值,或者整个爬虫程序占用内存超过一定的阈值,则说明出现了内存状态异常。
在步骤103,当爬虫运行状态出现异常时,进行异常报警。更优选地,当爬虫运行状态出现异常时,通过发送邮件或发送短信的方式进行异常报警。所述邮件或短信中可以通过文字或声音、图像等方式向用户传达报警信息。例如在邮件中,向用户发送文字“内存状态异常”。
相应地,本发明还提供了一种网络爬虫运行异常监控系统,所述系统包括网络爬虫运行状态检测单元210、状态判断单元220、报警单元230。其中:
网络爬虫运行状态检测单元210用于检测网络爬虫运行状态。状态判断单元220用于判断所述网络爬虫运行状态是否存在异常。报警单元230用于当爬虫运行状态出现异常时进行异常报警。
网络爬虫运行状态检测单元210可以包括多个监听、检测程序,例如所述爬虫运行状态检测单元可以包括下载状态检测模块211。下载程序可以有各种适合的网络下载软件模块实现,下载失败状态通常表现为两种情形:网络连接故障;某个网站对该节点的IP地址的屏蔽。这两种情形都会导致出现下载失败的异常状态,当下载失败后,相关的软件模块,例如下载监听器,通过对下载状态进行检测,获得下载成功或下载失败信息。
优选地,下载状态检测模块用于当网络连接故障或网站对IP地址屏蔽时,判断下载状态存在异常。
优选地,所述爬虫运行状态检测单元210还包括内容解析状态检测模块212。解析可以通过DOM选择器或正则匹配模块来实现。更优选地,内容解析状态检测模块为正则匹配状态检测模块,正则匹配状态检测模块包括计时器,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则判断出现了正则匹配死循环。
优选地,所述爬虫运行状态检测单元210还包括数据保存和网络异常状态检测模块213,数据保存和网络异常状态检测模块用于检测通过网络通信传递给调度端的待保存数据,如果传递失败,判断网络存在异常,并且保存也存在异常。
优选地,所述爬虫运行状态检测单元210还包括内存状态监控模块214,以进行内存状态监控。针对爬虫系统中使用到的各种类对象,进行实时的内存占用状态统计,如果某些类对象占用空间超过一定的阈值,或者整个爬虫程序占用内存超过一定的阈值,则说明出现了内存状态异常。
优选地,报警单元230为电子邮件发送模块或短信发送模块。所述邮件或短信中可以通过文字或声音、图像等方式向用户传达报警信息。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到在不脱离本发明主旨的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (12)
1.一种网络爬虫运行异常监控方法,其特征在于,所述方法包括以下步骤:
a.检测网络爬虫运行状态;其中,网络爬虫运行状态包括:下载状态、内容解析状态、数据保存和网络异常状态、内存占用状态;
b.判断网络爬虫运行状态是否存在异常;
c.当爬虫运行状态出现异常时,进行异常报警;
步骤b包括:当网络连接故障或网站对IP地址屏蔽时,判断下载状态存在异常;
当满足如下两个公式条件时,判定IP地址被网站屏蔽:
其中:downLoadOks表示下载成功数,downLoadFails表示下载失败数,extractMissings表示文档解析抽取失败数,threshold1和threshold2为阈值。
2.根据权利要求1所述的方法,其特征在于,通过Dom选择器或正则匹配方法对内容进行解析。
3.根据权利要求2所述的方法,其特征在于,在步骤b中,当出现以下任一种情况时,判断正则匹配方法出现异常:
(1)正则匹配出现死循环;
(2)url地址改变或者内容发生改版。
4.根据权利要求3所述的方法,其特征在于,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则判断出现了正则匹配死循环。
5.根据权利要求1所述的方法,其特征在于,将需要保存的数据通过网络传递给调度端,如果传递失败,说明网络存在异常,同时数据保存也存在异常。
6.根据权利要求1所述的方法,其特征在于,对爬虫系统中使用到的各种类对象,进行实时的内存占用状态统计,当部分类对象占用空间超过一定的阈值,或者整个爬虫程序占用内存超过一定的阈值,则判断内存状态出现异常。
7.根据权利要求1所述的方法,其特征在于,步骤c包括:当爬虫运行状态出现异常时,通过发送邮件或发送短信的方式进行异常报警。
8.一种网络爬虫运行异常监控系统,其特征在于,所述系统包括网络爬虫运行状态检测单元、状态判断单元、报警单元,其中:
网络爬虫运行状态检测单元用于检测网络爬虫运行状态,所述爬虫运行状态检测单元包括以:下载状态检测模块、内容解析状态检测模块、包括数据保存和网络异常状态检测模块、内存状态监控模块;
状态判断单元用于判断所述网络爬虫运行状态是否存在异常;
报警单元用于当爬虫运行状态出现异常时进行异常报警;
下载状态检测模块用于当网络连接故障或网站对IP地址屏蔽时,判断下载状态存在异常;当满足如下两个公式条件时,判定IP地址被网站屏蔽:
其中:downLoadOks表示下载成功数,downLoadFails表示下载失败数,extractMissings表示文档解析抽取失败数,threshold1和threshold2为阈值。
9.根据权利要求8所述的系统,其特征在于,内容解析状态检测模块为正则匹配状态检测模块,正则匹配状态检测模块包括计时器,当开始正则匹配时,开始计时,如果在预定时间未收到解析结果时,则判断出现了正则匹配死循环。
10.根据权利要求8所述的系统,其特征在于,所述数据保存和网络异常状态检测模块用于检测通过网络通信传递给调度端的待保存数据,如果传递失败,判断网络存在异常,并且保存也存在异常。
11.根据权利要求8所述的系统,其特征在于,所述内存状态监控模块用于进行内存状态监控,对网络爬虫使用到的各种类对象进行实时的内存占用状态统计,如果某些类对象占用空间超过一定的阈值,或者整个网络爬虫程序占用内存超过一定的阈值,则判断出现了内存状态异常。
12.根据权利要求8所述的系统,其特征在于,报警单元为电子邮件发送模块或短信发送模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310152396.7A CN103248625B (zh) | 2013-04-27 | 2013-04-27 | 一种网络爬虫运行异常监控方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310152396.7A CN103248625B (zh) | 2013-04-27 | 2013-04-27 | 一种网络爬虫运行异常监控方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103248625A CN103248625A (zh) | 2013-08-14 |
CN103248625B true CN103248625B (zh) | 2016-09-14 |
Family
ID=48927847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310152396.7A Active CN103248625B (zh) | 2013-04-27 | 2013-04-27 | 一种网络爬虫运行异常监控方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103248625B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491165B (zh) * | 2013-09-22 | 2017-04-12 | 复旦大学 | 自动检测屏蔽的通用分布式爬虫系统 |
CN103997438A (zh) * | 2014-06-03 | 2014-08-20 | 浪潮集团有限公司 | 一种云计算中自动监控分布式网络爬虫的方法 |
CN104537005B (zh) * | 2014-12-15 | 2018-04-06 | 北京国双科技有限公司 | 用于网页爬取的数据处理方法及装置 |
CN106789392A (zh) * | 2016-11-16 | 2017-05-31 | 山东浪潮云服务信息科技有限公司 | 一种监控网络爬虫的方法、装置和系统 |
CN108170551B (zh) * | 2018-01-03 | 2021-06-22 | 深圳壹账通智能科技有限公司 | 基于爬虫系统的前后端错误处理方法、服务器及存储介质 |
CN108228431A (zh) * | 2018-01-04 | 2018-06-29 | 北京中关村科金技术有限公司 | 一种配置化爬虫质量监测的方法及系统 |
CN110717131B (zh) * | 2018-06-27 | 2022-07-05 | 北京国双科技有限公司 | 页面改版的监控方法及相关系统 |
CN109818828A (zh) * | 2019-02-20 | 2019-05-28 | 成都嗨翻屋科技有限公司 | 一种分布式爬虫系统监控方法及装置 |
CN111538886B (zh) * | 2020-04-30 | 2024-04-19 | 萍乡市安源数字投资有限公司 | 一种基于人工智能的大数据采集存储系统及方法 |
CN112256529A (zh) * | 2020-10-22 | 2021-01-22 | 优车库网络科技发展(深圳)有限公司 | 网络爬虫监控方法、装置、计算机设备和存储介质 |
CN112100083B (zh) * | 2020-11-13 | 2021-02-02 | 北京智慧星光信息技术有限公司 | 爬虫模板变更的监测方法、系统、电子设备及存储介质 |
CN112464066B (zh) * | 2020-11-25 | 2024-03-15 | 中国信息安全测评中心 | 一种数据爬取过程的监测方法及系统 |
CN116361529B (zh) * | 2023-06-01 | 2023-11-10 | 北京拓普丰联信息科技股份有限公司 | 一种爬虫监控的方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452463A (zh) * | 2007-12-05 | 2009-06-10 | 浙江大学 | 定向抓取页面资源的方法和装置 |
CN101510195A (zh) * | 2008-02-15 | 2009-08-19 | 刘峰 | 基于爬虫技术的网站安全防护与测试诊断系统构造方法 |
CN102724059A (zh) * | 2012-03-31 | 2012-10-10 | 常熟市支塘镇新盛技术咨询服务有限公司 | 基于MapReduce的网站运行状态监控与异常检测 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205076A1 (en) * | 2001-03-06 | 2004-10-14 | International Business Machines Corporation | System and method to automate the management of hypertext link information in a Web site |
-
2013
- 2013-04-27 CN CN201310152396.7A patent/CN103248625B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452463A (zh) * | 2007-12-05 | 2009-06-10 | 浙江大学 | 定向抓取页面资源的方法和装置 |
CN101510195A (zh) * | 2008-02-15 | 2009-08-19 | 刘峰 | 基于爬虫技术的网站安全防护与测试诊断系统构造方法 |
CN102724059A (zh) * | 2012-03-31 | 2012-10-10 | 常熟市支塘镇新盛技术咨询服务有限公司 | 基于MapReduce的网站运行状态监控与异常检测 |
Also Published As
Publication number | Publication date |
---|---|
CN103248625A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103248625B (zh) | 一种网络爬虫运行异常监控方法和系统 | |
CN107026821B (zh) | 报文的处理方法及装置 | |
CN112468520B (zh) | 一种数据检测方法、装置、设备及可读存储介质 | |
CN104462509A (zh) | 垃圾评论检测方法及装置 | |
CN101610268B (zh) | 一种关键字过滤的实现方法和设备 | |
CN105743730A (zh) | 为移动终端的网页服务提供实时监控的方法及其系统 | |
CN103001946B (zh) | 网站安全检测方法和设备 | |
CN102801574A (zh) | 一种网页链接的检测方法、装置和系统 | |
CN102356390A (zh) | 诸如用于Web服务器的灵活的日志记录 | |
CN107977473B (zh) | 基于Logback的分布式系统日志的检索方法和系统 | |
CN102970282B (zh) | 网站安全检测系统 | |
CN102316087A (zh) | 网络应用攻击的检测方法 | |
CN108965296A (zh) | 一种用于智能家居设备的漏洞检测方法及检测装置 | |
CN105260469B (zh) | 一种处理网站地图的方法、装置及设备 | |
CN102123058A (zh) | 一种对网络协议解码器进行测试的测试设备和方法 | |
CN109040097A (zh) | 一种跨站脚本攻击的防御方法、装置、设备和存储介质 | |
CN107612730A (zh) | 一种日志采集分析方法、装置以及系统 | |
CN102833269A (zh) | 跨站攻击的检测方法、装置和具有该装置的防火墙 | |
CN101895517B (zh) | 一种脚本语义提取方法和提取装置 | |
US9973471B2 (en) | Protection method and computer system thereof for firewall apparatus disposed to application layer | |
CN107623666A (zh) | 信息搜索的方法、装置和系统 | |
CN114564947A (zh) | 轨道交通信号故障运维方法、装置及电子设备 | |
CN101257461A (zh) | 基于分类的内容过滤方法及其装置 | |
CN104778232B (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
CN109492146B (zh) | 一种防web爬虫的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |