CN112486741B - 一种多进程多线程分布式爬虫方法、系统及装置 - Google Patents

一种多进程多线程分布式爬虫方法、系统及装置 Download PDF

Info

Publication number
CN112486741B
CN112486741B CN202011460209.8A CN202011460209A CN112486741B CN 112486741 B CN112486741 B CN 112486741B CN 202011460209 A CN202011460209 A CN 202011460209A CN 112486741 B CN112486741 B CN 112486741B
Authority
CN
China
Prior art keywords
crawler
virtual server
task
data
abnormal
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
CN202011460209.8A
Other languages
English (en)
Other versions
CN112486741A (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.)
Shenzhen Foresight Information Co ltd
Original Assignee
Shenzhen Foresight Information 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 Shenzhen Foresight Information Co ltd filed Critical Shenzhen Foresight Information Co ltd
Priority to CN202011460209.8A priority Critical patent/CN112486741B/zh
Publication of CN112486741A publication Critical patent/CN112486741A/zh
Application granted granted Critical
Publication of CN112486741B publication Critical patent/CN112486741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种多进程多线程分布式爬虫方法、系统及装置,属于大数据技术的领域,爬虫方法包括资源配置步骤、虚拟服务器获取步骤、虚拟服务器状态判断步骤、采集数据异常判断步骤、虚拟服务器切换步骤、数据清洗和存储步骤以及报警步骤;爬虫系统包括资源配置模块、虚拟服务器获取模块、虚拟服务器状态判断模块、采集数据异常判断模块、虚拟服务器切换模块、数据清洗和存储模块以及报警模块。与相关技术相比,本申请具有改善数据采集效率较低的问题的效果。

Description

一种多进程多线程分布式爬虫方法、系统及装置
技术领域
本申请涉及大数据技术的领域,尤其是涉及一种多进程多线程分布式爬虫方法、系统及装置。
背景技术
人工智能(AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,该领域的研究包括机器人、语音识别、图像识别、自然语言处理和专家系统等。
鉴于我国人工智能市场规模越来越庞大,为实现更加智能化的研究,需大量采集相关数据,便于进行后续数据分析及训练。
针对上述中的相关技术,发明人认为在用爬虫进行数据采集时,有些网站为了防止爬虫抓取信息,做了IP限制。例如限定单个IP在每分钟内只能访问100次,那么一台爬虫服务器/爬虫系统在每分钟内只能发起100次网络请求,当发起第101个请求时则会被目标服务器拒绝,使得爬虫服务器/爬虫系统不能快速采集目标任务所需要的数据,导致数据采集效率较低。
发明内容
为了改善数据采集效率较低的问题,本申请提供一种多进程多线程分布式爬虫方法、系统及装置。
第一方面,本申请提供一种多进程多线程分布式爬虫方法,采用如下的技术方案:
一种多进程多线程分布式爬虫方法,爬虫方法包括如下步骤,
资源配置步骤,根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL;
虚拟服务器获取步骤,基于负载均衡算法,获取一台虚拟服务器,所述虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据,所述任务数据包括第一目标数据和HTTP状态码;
虚拟服务器状态判断步骤,判断所述虚拟服务器是否可用,若是,则调用所述虚拟服务器采集返回任务数据,否则返回虚拟服务器获取步骤;
采集数据异常判断步骤,根据所述虚拟服务器采集返回的任务数据,判断所述虚拟服务器采集数据是否异常,若是,则获取所述虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据;
虚拟服务器切换步骤,根据所述异常次数,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常;以及,
数据清洗和存储步骤,对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
通过采用上述技术方案,根据任务数据中的HTTP状态码的类型,能够判断虚拟服务器采集数据的过程中是否因IP限制等原因而出现爬虫异常,若爬虫轻度异常,则虚拟服务器切换步骤切换新的虚拟服务器去采集并返回爬虫任务对应的任务数据,反复循环,直到采集到爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制,快速且高效地获取任务数据,进而有助于改善数据采集效率较低的问题;且使用多进程多线程以更多地利用CPU的资源,快速采集大量数据,从而有助于提高爬虫采集数据的性能。
可选的,所述虚拟服务器切换步骤的具体方法包括,
根据所述异常次数,基于频次阈值,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常。
通过采用上述技术方案,以频次阈值为判断标准,结合异常次数,能够快速判断虚拟服务器爬虫是否轻度异常,若爬虫轻度异常,则快速切换新的虚拟服务器采集爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制。
可选的,所述判断虚拟服务器访问是否异常的具体方法包括,
判断所述异常次数是否大于频次阈值,若是,则爬虫重度异常,否则,爬虫轻度异常。
可选的,所述爬虫方法还包括,
报警步骤,若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
通过采用上述技术方案,使得维修人员能够根据报警信息及时进行维护,以使爬虫尽早恢复,尽可能早地获取爬虫任务对应的任务数据,从而在一定程度上有助于提高采集数据的效率;且异常的爬虫任务挂起,能够在一定程度上防止异常的爬虫任务丢失。
可选的,所述虚拟服务器状态判断步骤的具体方法包括,
获取所述虚拟服务器的状态信息,根据所述状态信息判断虚拟服务器是否可用;
若是,则调用所述虚拟服务器采集返回任务数据;以及,
否则,等待相应时间后返回虚拟服务器获取步骤;
其中,所述状态信息包括可用状态和不可用状态。
通过采用上述技术方案,根据获取的虚拟服务器的状态信息,能够快速得到虚拟服务器可用还是不可用,若可用,则采集任务数据,否则,等待相应时间后返回虚拟服务器获取步骤获取新的虚拟服务器,直至新的虚拟服务器能够采集返回任务数据,从而有助于改善采集数据效率较低的问题。
可选的,所述报警信息包括但不限于电子邮件和/或短信。
通过采用上述技术方案,以电子邮件和/或短信作为报警信息,进一步使维修人员能够及时获知爬虫异常信息,从而有助于进一步改善数据采集效率较低的问题。
第二方面,本申请提供一种多进程多线程分布式爬虫系统,采用如下的技术方案:
一种多进程多线程分布式爬虫系统,所述爬虫系统包括,
资源配置模块,用于根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL;
虚拟服务器获取模块,用于基于负载均衡算法,获取一台虚拟服务器,所述虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据,所述任务数据包括第一目标数据和HTTP状态码;
虚拟服务器状态判断模块,用于判断所述虚拟服务器是否可用,若是,则调用所述虚拟服务器采集返回任务数据,否则进入虚拟服务器获取步模块;
采集数据异常判断模块,用于根据所述虚拟服务器采集返回的任务数据,判断所述虚拟服务器采集数据是否异常,若是,则获取所述虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据;
虚拟服务器切换模块,用于根据所述异常次数,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常;以及,
数据清洗和存储模块,用于对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
通过采用上述技术方案,虚拟服务器状态判断模块和采集数据异常判断模块根据虚拟服务器采集并返回的任务数据中的HTTP状态码的类型,能够判断虚拟服务器采集数据的过程中是否因IP限制等原因而爬虫异常,若爬虫轻度异常,则虚拟服务器切换模块切换新的虚拟服务器去采集并返回爬虫任务对应的任务数据,反复循环,直到采集到爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制,快速且高效地获取任务数据,进而大大改善数据采集效率较低的问题;且使用多进程多线程以更多地利用CPU的资源,快速采集大量数据,从而极大提高爬虫采集数据的性能。
可选的,所述爬虫系统还包括,
报警模块,用于若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
通过采用上述技术方案,使得维修人员能够根据报警信息及时进行维护,以使爬虫尽早恢复,尽可能早地获取爬虫任务对应的任务数据,从而在一定程度上能够提高采集数据的效率;且异常的爬虫任务挂起,能够在一定程度上防止异常的爬虫任务丢失。
第三方面,本申请提供一种多进程多线程分布式爬虫装置,采用如下的技术方案:
一种多进程多线程分布式爬虫装置,所述爬虫装置包括,
VPS拨号集群器,包括多台虚拟服务器;
状态服务器,用于采集各个虚拟服务器的拨号及采集任务数据时的状态信息;
监控服务器,用于监控如第二方面中的一种多进程多线程分布式爬虫系统的运行状态,显示所述爬虫系统的状态信息,以及手动控制但不限于所述爬虫任务的挂起、恢复和终止;以及,
节点服务器,用于控制爬虫任务的启动、挂起和终止,获取/切换虚拟服务器,对第三目标数据进行清洗数据并存储,以及监控状态服务器的工作状态。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行如第一方面中任一种方法的计算机程序。
附图说明
图1是本申请实施例一种多进程多线程分布式爬虫方法的第一流程图。
图2是本申请实施例一种多进程多线程分布式爬虫方法的第二流程图。
图3是本申请实施例一种多进程多线程分布式爬虫方法的第三流程图。
图4是本申请实施例一种多进程多线程分布式爬虫装置的结构示意图。
具体实施方式
以下结合附图1-4对本申请作进一步详细说明。
爬虫,是网络爬虫的简称,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
本申请实施例公开一种多进程多线程分布式爬虫方法。参照图1和图2,多进程多线程分布式爬虫方法包括如下步骤,
资源配置步骤101,根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL。
其中,爬虫任务包括但不限于任务名和HTTP请求的URL。统一资源定位系统(URL),是因特网的万维网服务程序上用于指定信息位置的表示方法。
虚拟服务器获取步骤102,基于负载均衡算法,获取一台虚拟服务器,虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据。
其中,任务数据包括第一目标数据和HTTP状态码。HTTP状态码是用以标识网页服务器超文本传输协议响应状态的三位数字代码,根据HTTP状态码就能够的达到访问网站/网页的响应状态。在本实施方式中,第一目标数据访问网页/网站的数据。
负载均衡建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。现有的负载均衡算法主要分为静态和动态两类。静态负载均衡算法以固定的概率分配任务,不考虑服务器的状态信息。动态负载均衡算法以服务器实时负载状态信息来决定任务的分配,如最小连接法、加权最小连接法等,本实施方式中,采用动态负载均衡算法的最小连接法。
虚拟服务器状态判断步骤103,判断虚拟服务器是否可用,若是,则调用虚拟服务器采集返回任务数据,否则,返回虚拟服务器获取步骤102。
其中,虚拟服务器在拨号时,会将采集任务挂起,此时,虚拟服务器的状态为不可用,虚拟服务器空闲时,没有采集任务,此时,虚拟服务器的状态为可用。被获取的虚拟服务器的状态为不可用时,会不断地循环回虚拟服务器步骤102,直到得到状态为可用的虚拟服务器。且,当虚拟服务器不可用时,等待相应时间后返回虚拟服务器获取步骤102,相应时间为预先设置的一个时间段,也可以理解为一定时间,即一定时间段。
采集数据异常判断步骤104,根据虚拟服务器采集返回的任务数据,判断虚拟服务器采集数据是否异常,若是,则获取虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据。
任务数据中包括有HTTP状态码,因此根据任务数据中的HTTP状态码的类型能够判断访问网站/网页响应的类型,从而能够得知虚拟服务采集数据是否异常。本实施方式中,第二目标数据是指访问网站/网页正常响应时,虚拟服务器采集并返回的任务数据。
虚拟服务器切换步骤105,根据异常次数,判断虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集爬虫任务对应的任务数据,否则,爬虫重度异常。
数据清洗和存储步骤106,对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
其中,数据清洗,是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。数据清洗后得到的第三目标数据,是有用的数据,可以存储于预先创建的数据库中。需要说明的是,数据清洗是常见的一种技术手段,本实施方式中不作进一步的阐述。
上述一种多进程多线程分布式爬虫方法的实施方式中,根据任务数据中的HTTP状态码的类型,能够判断虚拟服务器采集数据的过程中是否因IP限制等原因而爬虫异常,若爬虫轻度异常,则虚拟服务器切换步骤切换新的虚拟服务器去采集并返回爬虫任务对应的任务数据,反复循环,直到采集到爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制,快速且高效地获取任务数据,进而有助于改善数据采集效率较低的问题;且使用多进程多线程以更多地利用CPU的资源,快速采集大量数据,从而有助于提高爬虫采集数据的性能。
参照图1和图2,作为一种多进程多线程分布式爬虫方法进一步的实施方式,爬虫方法还包括,
报警步骤107,若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
上述一种多进程多线程分布式爬虫方法进一步的实施方式中,维修人员能够根据报警信息及时进行维护,以使爬虫尽早恢复,尽可能早地获取爬虫任务对应的任务数据,从而在一定程度上有助于提高采集数据的效率;且异常的爬虫任务挂起,能够在一定程度上防止异常的爬虫任务丢失。
其中,作为报警信息的一种实施方式,报警信息包括但不局限于电子邮件和/或短信。
作为报警信息的另一种实施方式,报警信息可以是蜂鸣声、报警灯等等。
参照图3,作为虚拟服务器切换步骤105的一种实施方式,虚拟服务器切换步骤105具体包括如下步骤,
1051、基于频次阈值,判断异常次数是否大于频次阈值。
1052、若异常次数大于频次阈值,则爬虫重度异常。
1053、若异常次数小于或等于频次阈值,则爬虫轻度异常。
1054、若虚拟服务器爬虫轻度异常,则基于负载均衡算法,获取一台新的虚拟服务器。
其中,频次阈值是预先设置的值,是根据大量的历史数据设定的值。
上述虚拟服务器切换步骤105的具体实施方式中,以频次阈值为判断标准,结合异常次数,能够快速判断虚拟服务器爬虫是否异常,若爬虫轻度异常,则快速切换新的虚拟服务器采集爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制。
本申请提供的一种多进程多线程分布式爬虫方法,开发人员只需要负责解析数据及存储数据,具有较高的易用性,能够使开发人员快速入手。具有扩展性,能够满足不断变化的数据业务需求。使用多进程多线程充分利用CPU的资源,快速采集大量数据,高并发,性能较好。
本申请实施例还公开一种多进程多线程分布式爬虫系统,爬虫系统包括,
资源配置模块,用于根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL。
虚拟服务器获取模块,用于基于负载均衡算法,获取一台虚拟服务器,虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据,任务数据包括第一目标数据和HTTP状态码。
虚拟服务器状态判断模块,用于判断虚拟服务器是否可用,若是,则调用虚拟服务器采集返回任务数据,否则进入虚拟服务器获取步模块。
采集数据异常判断模块,用于根据虚拟服务器采集返回的任务数据,判断虚拟服务器采集数据是否异常,若是,则获取虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据。
虚拟服务器切换模块,用于根据所述异常次数,判断虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集爬虫任务对应的任务数据,否则,爬虫重度异常。
数据清洗和存储模块,用于对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
上述一种多进程多线程分布式爬虫系统的实施方式中,虚拟服务器状态判断模块和采集数据异常判断模块根据虚拟服务器采集并返回的任务数据中的HTTP状态码的类型,能够判断虚拟服务器采集数据的过程中是否因IP限制等原因而爬虫异常,若爬虫轻度异常,则虚拟服务器切换模块切换新的虚拟服务器去采集并返回爬虫任务对应的任务数据,反复循环,直到采集到爬虫任务对应的任务数据,从而在一定程度上能够突破爬虫任务目标网站的IP限制,快速且高效地获取任务数据,进而大大改善数据采集效率较低的问题;且使用多进程多线程以更多地利用CPU的资源,快速采集大量数据,从而极大提高爬虫采集数据的性能。
作为爬虫系统进一步的实施方式,爬虫系统还包括,
报警模块,用于若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
上述爬虫系统进一步的实施方式中,若爬虫重度异常,则报警模块开始报警,使得维修人员能够根据报警信息及时进行维护,以使爬虫尽早恢复,尽可能早地获取爬虫任务对应的任务数据,从而在一定程度上能够提高采集数据的效率;且异常的爬虫任务挂起,能够在一定程度上防止异常的爬虫任务丢失。
本申请提供的一种多进程多线程分布式爬虫系统,当需要进行不同需求的数据获取时,只需要切换爬虫任务,无需改变系统内部模块,使得爬虫系统可复用率高。爬虫系统出现异常状况(爬虫重度异常)时,能够及时发出警告。
参照图4,本申请实施例还公开一种多进程多线程分布式爬虫装置,爬虫装置包括,
VPS拨号集群器201,包括多台虚拟服务器。
状态服务器202,用于采集各个虚拟服务器的拨号及采集任务数据时的状态信息。
其中,状态服务器202包括状态服务主节点和状态服务副节点。
监控服务器203,用于监控一种多进程多线程分布式爬虫系统的运行状态,显示爬虫系统的状态信息,以及手动控制但不限于爬虫任务的挂起、恢复和终止。
其中,监控服务器的监控服务控制面板,可以监控一种多进程多线程分布式爬虫系统的运行状态,显示爬虫系统的状态信息,以及手动控制但不限于爬虫任务的挂起、恢复和终止。
节点服务器204,用于控制爬虫任务的启动、挂起和终止,获取/切换虚拟服务器,对第三目标数据进行清洗数据并存储,以及监控状态服务器的工作状态。
其中,节点服务器中存在有多个节点服务,每个节点服务控制一个及一个以上的爬虫任务的工作状态。
在具体运行过程中,先启动状态服务主节点和状态服务副节点,VPS集群器201各个虚拟服务器提供拨号服务的配置文件中配置好状态服务主节点及状态服务副节点的IP地址及相应端口,启动拨号服务,拨号服务会向状态服务主节点和状态服务副节点进行注册。接着,在节点服务器204配置文件中配置VPS集群器中各个虚拟服务器的IP及端口,配置状态服务主节点和状态服务副节点的IP及端口;同时,配置一个及一个以上的爬虫任务,设置各个爬虫任务的线程数、爬虫的时间、爬虫出现异常的阈值频次等,并启动节点服务器。然后,在监控服务器201的配置文件中配置状态服务主节点和状态服务副节点的IP及端口,配置爬虫节点的IP及端口,启动监控服务器201,并在监控服务器201的服务控制面板上依次启动配置文件配置的爬虫节点,从而爬虫任务开始进行。
本申请提供的一种多进程多线程分布式爬虫装置,具有较好的可维护性,爬虫装置通过不同服务组件组成,耦合性低,能够持续不断的集成和部署。监控服务器能够监控爬虫系统内部组件的状态信息,以使开发人员能够获知爬虫系统的状态信息。
本申请实施例还公开一种计算机可读存储介质,存储有能够被处理器加载并执行如一种多进程多线程分布式爬虫方法中任一种方法的计算机程序。

Claims (9)

1.一种多进程多线程分布式爬虫方法,其特征在于:所述爬虫方法包括如下步骤,
资源配置步骤(101),根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL;
虚拟服务器获取步骤(102),基于负载均衡算法,获取一台虚拟服务器,所述虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据,所述任务数据包括第一目标数据和HTTP状态码;
虚拟服务器状态判断步骤(103),判断所述虚拟服务器是否可用,若是,则调用所述虚拟服务器采集返回任务数据,否则,将不断地循环回虚拟服务器获取步骤(102),直到得到状态为可用的虚拟服务器,且当虚拟服务器不可用时,等待相应时间后返回虚拟服务器获取步骤(102);
采集数据异常判断步骤(104),根据所述虚拟服务器采集返回的任务数据,判断所述虚拟服务器采集数据是否异常,若是,则获取所述虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据;
虚拟服务器切换步骤(105),根据所述异常次数,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常;以及,
数据清洗和存储步骤(106),对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
2.根据权利要求1所述的一种多进程多线程分布式爬虫方法,其特征在于:所述虚拟服务器切换步骤(105)的具体方法包括,
根据所述异常次数,基于频次阈值,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常。
3.根据权利要求2所述的一种多进程多线程分布式爬虫方法,其特征在于:所述判断虚拟服务器爬虫 是否轻度 异常的具体方法包括,
判断所述异常次数是否大于频次阈值,若是,则爬虫重度异常,否则,爬虫轻度异常。
4.根据权利要求1或2所述的一种多进程多线程分布式爬虫方法,其特征在于:所述爬虫方法还包括,
报警步骤(107),若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
5.根据权利要求4所述的一种多进程多线程分布式爬虫方法,其特征在于:所述报警信息包括但不限于电子邮件和/或短信。
6.一种多进程多线程分布式爬虫系统,其特征在于:所述爬虫系统包括,
资源配置模块,用于根据配置的爬虫任务开启多线程,并装配好请求的统一资源定位系统URL;
虚拟服务器获取模块,用于基于负载均衡算法,获取一台虚拟服务器,所述虚拟服务器用于拨号并采集返回爬虫任务对应的任务数据,所述任务数据包括第一目标数据和HTTP状态码;
虚拟服务器状态判断模块,用于判断所述虚拟服务器是否可用,若是,则调用所述虚拟服务器采集返回任务数据,否则,将不断地循环回虚拟服务器获取模块,直到得到状态为可用的虚拟服务器,且当虚拟服务器不可用时,等待相应时间后返回虚拟服务器获取模块;
采集数据异常判断模块,用于根据所述虚拟服务器采集返回的任务数据,判断所述虚拟服务器采集数据是否异常,若是,则获取所述虚拟服务器采集数据的异常次数,否则,任务数据为第二目标数据;
虚拟服务器切换模块,用于根据所述异常次数,判断所述虚拟服务器爬虫是否轻度异常,若是,则基于负载均衡算法,获取一台新的虚拟服务器,以采集所述爬虫任务对应的任务数据,否则,爬虫重度异常;以及,
数据清洗和存储模块,用于对第二目标数据进行数据清洗,得到第三目标数据,并将第三目标数据进行存储。
7.根据权利要求6所述的一种多进程多线程分布式爬虫系统,其特征在于:所述爬虫系统还包括,
报警模块,用于若爬虫重度异常,则将异常的爬虫任务挂起,并发送报警信息。
8.一种多进程多线程分布式爬虫装置,其特征在于:所述爬虫装置包括,
VPS拨号集群器,包括多台虚拟服务器;
状态服务器,用于采集各个虚拟服务器的拨号及采集任务数据时的状态信息;
监控服务器,用于监控如权利要求6所述的一种多进程多线程分布式爬虫系统的运行状态,显示所述爬虫系统的状态信息,以及手动控制但不限于所述爬虫任务的挂起、恢复和终止;以及,
节点服务器,用于控制爬虫任务的启动、挂起和终止,获取/切换虚拟服务器,对所述第三目标数据进行清洗数据并存储,以及监控状态服务器的工作状态。
9.一种计算机可读存储介质,其特征在于:储存有能够被处理器加载并执行如权利要求1至5中任一种方法的计算机程序。
CN202011460209.8A 2020-12-11 2020-12-11 一种多进程多线程分布式爬虫方法、系统及装置 Active CN112486741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011460209.8A CN112486741B (zh) 2020-12-11 2020-12-11 一种多进程多线程分布式爬虫方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011460209.8A CN112486741B (zh) 2020-12-11 2020-12-11 一种多进程多线程分布式爬虫方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112486741A CN112486741A (zh) 2021-03-12
CN112486741B true CN112486741B (zh) 2021-07-20

Family

ID=74916766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011460209.8A Active CN112486741B (zh) 2020-12-11 2020-12-11 一种多进程多线程分布式爬虫方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112486741B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614869B2 (en) * 2013-11-23 2017-04-04 Universidade da Coruña—OTRI System and server for detecting web page changes
CN106874487B (zh) * 2017-02-21 2020-08-18 国信优易数据有限公司 一种分布式爬虫管理系统及其方法
CN107241319B (zh) * 2017-05-26 2020-06-02 山东省科学院情报研究所 基于vpn的分布式网络爬虫系统及调度方法
CN109949175B (zh) * 2019-03-26 2023-05-05 桂林电子科技大学 一种基于协同过滤和相似性度量的用户属性推断方法
CN110516139B (zh) * 2019-09-05 2023-07-07 上海携程商务有限公司 爬虫系统及方法

Also Published As

Publication number Publication date
CN112486741A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN110062025B (zh) 数据采集的方法、装置、服务器及存储介质
CN105357038B (zh) 监控虚拟机集群的方法和系统
CN112231075B (zh) 一种基于云服务的服务器集群负载均衡控制方法及系统
CN1248132C (zh) 自主服务器场和服务器场中的自修复方法
EP2503733A1 (en) Data collecting method, data collecting apparatus and network management device
CN111274604B (zh) 服务访问方法、装置、设备及计算机可读存储介质
CN105898554A (zh) 实时转码的监控方法和实时转码系统
CN111124830B (zh) 一种微服务的监控方法及装置
CN112115031A (zh) 集群状态监控方法及装置
CN111767145A (zh) 容器调度系统、方法、装置和设备
CN114493203A (zh) 一种安全编排及自动化响应的方法和装置
CN109213912A (zh) 一种抓取网络数据的方法及网络数据抓取调度装置
CN112486741B (zh) 一种多进程多线程分布式爬虫方法、系统及装置
CN110750425A (zh) 数据库监控方法、装置、系统和存储介质
CN117478679A (zh) 基于数据分析的动态负载均衡方法
CN111930561B (zh) 流式任务自动化监控告警重启系统及方法
CN113961338A (zh) 一种动态线程池的管理系统、管理方法及线程任务处理方法
CN112860651A (zh) 任务日志分析方法、系统、计算机设备及存储介质
CN113094243B (zh) 节点性能检测方法和装置
CN110569238B (zh) 一种基于大数据的数据治理方法、系统、存储介质和服务端
CN116260703A (zh) 分布式消息服务节点cpu性能故障自恢复方法及装置
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN111376255A (zh) 机器人数据采集方法、装置及终端设备
US20070124343A1 (en) Method or apparatus for processing data in a system management application program
CN113407193A (zh) 一种系统部署方法、装置和设备

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
GR01 Patent grant
GR01 Patent grant