CN106657228A - 一种利用云端进行并发采集的爬虫实现方法 - Google Patents

一种利用云端进行并发采集的爬虫实现方法 Download PDF

Info

Publication number
CN106657228A
CN106657228A CN201610853399.7A CN201610853399A CN106657228A CN 106657228 A CN106657228 A CN 106657228A CN 201610853399 A CN201610853399 A CN 201610853399A CN 106657228 A CN106657228 A CN 106657228A
Authority
CN
China
Prior art keywords
reptile
webpage
cloud node
task
downloaded
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
Application number
CN201610853399.7A
Other languages
English (en)
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.)
Shandong Inspur Cloud Service Information Technology Co Ltd
Original Assignee
Shandong Inspur Cloud Service Information 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 Shandong Inspur Cloud Service Information Technology Co Ltd filed Critical Shandong Inspur Cloud Service Information Technology Co Ltd
Priority to CN201610853399.7A priority Critical patent/CN106657228A/zh
Publication of CN106657228A publication Critical patent/CN106657228A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种利用云端进行并发采集的爬虫实现方法,包括爬虫端和若干云节点服务端,爬虫端能够定时检查云端的状态,并选择云端进行任务发送;根据云端状态进行实时配置同步;根据云端已下载网页数,择机进行网页收取;通过本地缓存和数据实现异常容错处理,保证网页不丢失。该利用云端进行并发采集的爬虫实现方法与现有技术相比,通过爬虫端批次发送下载任务、批次收取下载网页,提高了传输效率,将爬虫和云端交互带来的影响降到最低。通过本地和数据库记录下载信息,实现了下载内容的异常容错处理和事物控制,保证下载任务被执行,减少传统爬虫中容易出现的网页丢失情况。

Description

一种利用云端进行并发采集的爬虫实现方法
技术领域
本发明涉及计算机应用技术领域,具体地说是一种实用性强、利用云端进行并发采集的爬虫实现方法。
背景技术
随者互联网的飞速发展,大数据这个概念越来越受到人们的关注。企业可以通过网络爬虫采集互联网中的数据,数据本身具有一定的商业价值,并且可以对海量数据进行深加工找出更有价值的数据分析结果,并通过分析结果提供决策支持,驱动企业的加速发展。数据的价值越来越受到人们的关注。
但互联网上的数据,以指数级逐年增长,同时互联网也会针对爬虫做出限制,爬虫节点较少时爬取能力有限,所以大量使用云服务器进行分布式爬取成为流行。基于此,现提供一种基于利用云端进行并发采集的爬虫实现方法,使服务器上的爬虫能够将网页下载任务分发至云节点实现大规模分布式并发采集。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、利用云端进行并发采集的爬虫实现方法。
本发明的一种利用云端进行并发采集的爬虫实现方法,包括爬虫端和若干云节点服务端,其实现过程为:
1)爬虫端通过云节点服务端进行采集,爬虫端将采集任务批次发送到云节点服务端,通过校验、请求处理实现云节点服务端任务分发;
2)云节点服务端进行状态检测,实时检测云节点服务端的可用状态以及任务队列和下载队列排队情况,并根据云节点服务端情况选择是否发送任务或者是否立刻收取网页;
3)爬虫端将本地数据库的配置同步至云节点服务端;
4)云节点服务端网页收取,爬虫端向云节点服务端请求已经下载的页面,云节点服务端批量返回已经下载的页面;
5)实现下载任务的异常容错处理和事物控制,通过本地缓存和数据实现异常容错处理,保证网页不丢失。
所述步骤1)的详细过程为:
爬虫端从下载任务的生产者中接收下载任务,该生产者是数据库中的待下载数据或者消息队列中的待下载数据;
爬虫端定时同步现有任务配置至云节点服务端,云节点服务端根据规则进行间隔下载;
爬虫端检查所有云节点服务端状态,选择可用同时任务排队数小于排队阈值的云节点服务端;
爬虫端将任务均匀的发送至云节点服务端,并且记录发送信息备份到本地缓存以及数据库中。
爬虫端定时检查云节点服务端的状态是指通过tcp或http方式进行数据查看,查看云端的可用状态、已有任务配置数、待下载任务排队数、已下载网页数,并将状态等数值缓存到本地。
所述步骤3)中配置同步是指爬虫端从数据库加载任务配置,并推送至云节点服务端,实时检查云节点服务端配置和爬虫端是否相同,如果不同则全部同步一次。
所述步骤2)及步骤4)中的网页收取是指爬虫端定期检查云端已下载网页数,当已下载网页数超过指定阈值时立即收取该云端的网页。
所述步骤4)的详细过程为:
爬虫端定时检查云节点服务端已下载网页数,当已下载网页数超过已下载阈值时收取云节点已下载网页,并清空云节点上存储的网页;
该爬虫端定时从云节点服务端获取已下载网页队列中的网页数据,收取到网页后根据关键字段删除本地缓存和数据库中记录的备份信息,这里的关键字段包括任务ID、URL。
所述步骤5)中容错处理是指通过爬虫端缓存和数据库记录进行双重保障,对云端和爬虫端同时进行容错,即通过本地缓存和数据库记录任务发送历史,将收取的网页和发送历史进行对比,一定时间内未下载的网页视为下载失败,进行重发处理。
所述步骤5)的详细过程为:
爬虫端每次启动时均查询数据库中的任务备份信息,恢复未被下载的任务;且该爬虫端定时检查本地缓存,当有任务加入缓存的时间超过下载时长阈值时,视为下载失败,重启该下载任务。
本发明的一种利用云端进行并发采集的爬虫实现方法,具有以下优点:
本发明提供的一种利用云端进行并发采集的爬虫实现方法,使用分布式云端并发采集,相当于增加了采集资源,大大提高了采集的效率;通过爬虫端进行数据中转,也解决了云端直接访问本地数据带来的安全隐患;通过爬虫端批次发送下载任务、批次收取下载网页,提高了传输效率,将爬虫和云端交互带来的影响降到最低;通过本地和数据库记录下载信息,实现了下载内容的异常容错处理和事物控制,保证下载任务被执行,减少传统爬虫中容易出现的网页丢失情况,实用性强,适用范围广泛,易于推广。
附图说明
附图1为URL下载任务发送流程图。
附图2为云端定时检测流程图。
附图3为回收网页流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1、图2、图3所示,本发明的一种利用云端进行并发采集的爬虫实现方法,通过爬虫端对云节点的采集服务进行采集,并对其进行监控、管理。
包括爬虫端和云节点服务端两个主要模块,其中云节点服务端包括若干个,爬虫端能定期检验云节点服务端状态,查看URL存放容器剩余容量,批量发送待采集网页,批量回收已采集网页,批量发送网页采集规则等功能。云节点服务端接收要下载的任务,并对任务并发下载,并能反馈当前的任务量能信息,为了方便表述,下面将云节点服务端统称为云端。
一种基于分布式云端实现并发采集的爬虫实现策略,爬虫端能够定时检查云端的状态,并选择云端进行任务发送;根据云端状态进行实时配置同步;根据云端已下载网页数,择机进行网页收取;通过本地缓存和数据实现异常容错处理,保证网页不丢失。
所述的云端状态检查是指通过tcp或http等多种方式中的一种进行数据查看,查看云端的可用状态、已有任务配置数、待下载任务排队数、已下载网页数,并将状态等数值缓存到本地。
所述的配置同步是指爬虫端从数据库加载任务配置,并推送至云端,实时检查云端配置和爬虫端是否相同,如果不同则全部同步一次。
所述的网页收取是指爬虫端定期检查云端已下载网页数,当已下载网页数超过指定阈值时立即收取该云端的网页。
所述的容错处理是指通过爬虫端缓存和数据库记录进行双重保障,能对云端和爬虫端同时进行容错。
更加具体的,本发明的实现过程为:
1)爬虫端通过云端进行采集:将采集任务批次发送到云端,通过一系列的校验、请求等处理实现云端任务分发;
爬虫端从下载任务的生产者中接收下载任务,该生产者可以是数据库中的待下载数据、或者消息队列中的待下载数据。
爬虫端定时同步现有任务配置至云节点,云节点根据规则进行间隔下载。
2)云端状态检测机制:能够实时检测云端的可用状态以及任务队列和下载队列排队情况,并根据云端情况选择是否发送任务或者是否立刻收取网页;
爬虫端检查所有云节点状态,选择可用同时任务排队数小于排队阈值的云节点。爬虫端将任务均匀的发送至云节点,并且记录发送信息备份到本地缓存以及数据库中。
3)爬虫同步配置至云端:将本地数据库的配置同步至云端,解决了云端访问数据库的安全性问题;
爬虫端定时检查云节点已下载网页数,当已下载网页数超过已下载阈值时收取云节点已下载网页,并清空云节点上存储的网页。
4)云端网页收取:爬虫端向云端请求已经下载的页面,云端批量返回已经下载的页面;
定时获取已下载网页:后端定时从云端获取已下载网页队列中的网页数据,收取到网页后根据任务ID、URL等关键字段删除本地缓存和数据库中记录的备份信息。
5)实现下载任务的异常容错处理和事物控制:通过本地缓存和数据库记录任务发送历史,将收取的网页和发送历史进行对比,一定时间内未下载的网页视为下载失败,进行重发处理。
爬虫端每次启动时会查询数据库中的任务备份信息,恢复未被下载的任务。
爬虫端定时检查本地缓存,当有任务加入缓存的时间超过下载时长阈值时,视为下载失败,重启该下载任务。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种利用云端进行并发采集的爬虫实现方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (8)

1.一种利用云端进行并发采集的爬虫实现方法,其特征在于,包括爬虫端和若干云节点服务端,其实现过程为:
1)爬虫端通过云节点服务端进行采集,爬虫端将采集任务批次发送到云节点服务端,通过校验、请求处理实现云节点服务端任务分发;
2)云节点服务端进行状态检测,实时检测云节点服务端的可用状态以及任务队列和下载队列排队情况,并根据云节点服务端情况选择是否发送任务或者是否立刻收取网页;
3)爬虫端将本地数据库的配置同步至云节点服务端;
4)云节点服务端网页收取,爬虫端向云节点服务端请求已经下载的页面,云节点服务端批量返回已经下载的页面;
5)爬虫端实现下载任务的异常容错处理和事物控制,通过本地缓存和数据实现异常容错处理,保证网页不丢失。
2.根据权利要求1所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤1)的详细过程为:
爬虫端从下载任务的生产者中接收下载任务,该生产者是数据库中的待下载数据或者消息队列中的待下载数据;
爬虫端定时同步现有任务配置至云节点服务端,云节点服务端根据规则进行间隔下载;
爬虫端定时检查所有云节点服务端状态,选择可用同时任务排队数小于排队阈值的云节点服务端;
爬虫端将任务均匀的发送至云节点服务端,并且记录发送信息备份到本地缓存以及数据库中。
3.根据权利要求2所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,爬虫端定时检查云节点服务端的状态是指通过tcp或http方式进行数据查看,查看云端的可用状态、已有任务配置数、待下载任务排队数、已下载网页数,并将状态等数值缓存到本地。
4.根据权利要求1所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤3)中配置同步是指爬虫端从数据库加载任务配置,并推送至云节点服务端,实时检查云节点服务端配置和爬虫端是否相同,如果不同则全部同步一次。
5.根据权利要求1所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤2)及步骤4)中的网页收取是指爬虫端定期检查云端已下载网页数,当已下载网页数超过指定阈值时立即收取该云端的网页。
6.根据权利要求5所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤4)的详细过程为:
爬虫端定时检查云节点服务端已下载网页数,当已下载网页数超过已下载阈值时收取云节点已下载网页,并清空云节点上存储的网页;
该爬虫端定时从云节点服务端获取已下载网页队列中的网页数据,收取到网页后根据关键字段删除本地缓存和数据库中记录的备份信息,这里的关键字段包括任务ID、URL。
7.根据权利要求1所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤5)中容错处理是指通过爬虫端缓存和数据库记录进行双重保障,对云端和爬虫端同时进行容错,即通过本地缓存和数据库记录任务发送历史,将收取的网页和发送历史进行对比,一定时间内未下载的网页视为下载失败,进行重发处理。
8.根据权利要求7所述的一种利用云端进行并发采集的爬虫实现方法,其特征在于,所述步骤5)的详细过程为:
爬虫端每次启动时均查询数据库中的任务备份信息,恢复未被下载的任务;且该爬虫端定时检查本地缓存,当有任务加入缓存的时间超过下载时长阈值时,视为下载失败,重启该下载任务。
CN201610853399.7A 2016-09-27 2016-09-27 一种利用云端进行并发采集的爬虫实现方法 Pending CN106657228A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610853399.7A CN106657228A (zh) 2016-09-27 2016-09-27 一种利用云端进行并发采集的爬虫实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610853399.7A CN106657228A (zh) 2016-09-27 2016-09-27 一种利用云端进行并发采集的爬虫实现方法

Publications (1)

Publication Number Publication Date
CN106657228A true CN106657228A (zh) 2017-05-10

Family

ID=58853283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610853399.7A Pending CN106657228A (zh) 2016-09-27 2016-09-27 一种利用云端进行并发采集的爬虫实现方法

Country Status (1)

Country Link
CN (1) CN106657228A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657053A (zh) * 2017-10-17 2018-02-02 山东浪潮云服务信息科技有限公司 一种爬虫实现方法及装置
CN108416073A (zh) * 2018-06-15 2018-08-17 中国联合网络通信集团有限公司 一种网络爬虫方法及***
CN108509513A (zh) * 2018-03-08 2018-09-07 平安科技(深圳)有限公司 平台客户数据回流方法、电子装置、设备及存储介质
CN108900563A (zh) * 2018-03-30 2018-11-27 世纪龙信息网络有限责任公司 数据的发送方法、装置、计算机设备和存储介质
CN109150984A (zh) * 2018-07-27 2019-01-04 平安科技(深圳)有限公司 获取数据资源的方法和装置
CN109522469A (zh) * 2018-12-28 2019-03-26 浪潮软件集团有限公司 一种分布式爬虫的调度管理方法
CN109829095A (zh) * 2019-02-12 2019-05-31 苏州思必驰信息科技有限公司 网页信息的获取方法及***
CN110673968A (zh) * 2019-09-26 2020-01-10 科大国创软件股份有限公司 一种基于令牌环的舆情监控目标保护方法
CN110990675A (zh) * 2019-11-25 2020-04-10 爱信诺征信有限公司 网页数据爬取方法及***
CN111415668A (zh) * 2020-04-23 2020-07-14 惠州莫思特科技有限公司 一种智能语言控制***及装置
CN111638964A (zh) * 2020-06-09 2020-09-08 武汉虹旭信息技术有限责任公司 一种集中式互联网数据采集***及采集方法
WO2020237799A1 (zh) * 2019-05-29 2020-12-03 网宿科技股份有限公司 一种网站探测的方法和***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559219A (zh) * 2013-10-18 2014-02-05 北京京东尚科信息技术有限公司 分布式网络爬虫抓取任务调度方法、调度端设备及抓取节点
CN104820680A (zh) * 2015-04-17 2015-08-05 南京大学 一种通用型分布式爬虫调度***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559219A (zh) * 2013-10-18 2014-02-05 北京京东尚科信息技术有限公司 分布式网络爬虫抓取任务调度方法、调度端设备及抓取节点
CN104820680A (zh) * 2015-04-17 2015-08-05 南京大学 一种通用型分布式爬虫调度***

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657053A (zh) * 2017-10-17 2018-02-02 山东浪潮云服务信息科技有限公司 一种爬虫实现方法及装置
WO2019169696A1 (zh) * 2018-03-08 2019-09-12 平安科技(深圳)有限公司 平台客户数据回流方法、电子装置、设备及存储介质
CN108509513A (zh) * 2018-03-08 2018-09-07 平安科技(深圳)有限公司 平台客户数据回流方法、电子装置、设备及存储介质
CN108900563A (zh) * 2018-03-30 2018-11-27 世纪龙信息网络有限责任公司 数据的发送方法、装置、计算机设备和存储介质
CN108416073A (zh) * 2018-06-15 2018-08-17 中国联合网络通信集团有限公司 一种网络爬虫方法及***
WO2020019476A1 (zh) * 2018-07-27 2020-01-30 平安科技(深圳)有限公司 获取数据资源的方法和装置
CN109150984A (zh) * 2018-07-27 2019-01-04 平安科技(深圳)有限公司 获取数据资源的方法和装置
CN109522469A (zh) * 2018-12-28 2019-03-26 浪潮软件集团有限公司 一种分布式爬虫的调度管理方法
CN109522469B (zh) * 2018-12-28 2023-06-06 浪潮软件集团有限公司 一种分布式爬虫的调度管理方法
CN109829095A (zh) * 2019-02-12 2019-05-31 苏州思必驰信息科技有限公司 网页信息的获取方法及***
WO2020237799A1 (zh) * 2019-05-29 2020-12-03 网宿科技股份有限公司 一种网站探测的方法和***
CN110673968A (zh) * 2019-09-26 2020-01-10 科大国创软件股份有限公司 一种基于令牌环的舆情监控目标保护方法
CN110990675A (zh) * 2019-11-25 2020-04-10 爱信诺征信有限公司 网页数据爬取方法及***
CN111415668A (zh) * 2020-04-23 2020-07-14 惠州莫思特科技有限公司 一种智能语言控制***及装置
CN111638964A (zh) * 2020-06-09 2020-09-08 武汉虹旭信息技术有限责任公司 一种集中式互联网数据采集***及采集方法

Similar Documents

Publication Publication Date Title
CN106657228A (zh) 一种利用云端进行并发采集的爬虫实现方法
CN110062025B (zh) 数据采集的方法、装置、服务器及存储介质
CN105488610B (zh) 一种电力应用***故障实时分析诊断方法
CN107071009A (zh) 一种负载均衡的分布式大数据爬虫***
CN107239382A (zh) 一种容器应用的日志处理方法及***
CN106534244B (zh) 一种代理资源的调度方法及装置
CN104077402B (zh) 数据处理方法和数据处理***
CN111046011B (zh) 日志收集方法、***、装置、电子设备及可读存储介质
CN103970788A (zh) 一种基于网页爬取的爬虫技术
US7908160B2 (en) System and method for producing audit trails
CN105743730B (zh) 为移动终端的网页服务提供实时监控的方法及其***
CN102970358B (zh) 网盘中移动客户端的本地缓存的控制方法和装置
CN106487596A (zh) 分布式服务跟踪实现方法
CN105243159A (zh) 一种基于可视化脚本编辑器的分布式网络爬虫***
CN103500213B (zh) 基于预读取的页面热点资源更新方法和装置
CN106202569A (zh) 一种基于大数据量的清洗方法
CN105589943B (zh) 搜索结果页面的图片适应性处理的方法、装置和服务器
US10044820B2 (en) Method and system for automated transaction analysis
CN111209460A (zh) 基于scrapy爬虫框架的数据采集***及方法
CN109359263B (zh) 一种用户行为特征提取方法及***
CN102937931A (zh) 一种日志数据传输的方法和***
CN107239563A (zh) 舆情信息动态监控方法
CN109710440A (zh) 网页前端的异常处理方法、装置、存储介质及终端设备
CN105978967A (zh) 控制信息推送的方法和装置
CN111143158A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170510

RJ01 Rejection of invention patent application after publication