CN104376063A - 基于分类管理的多线程网络爬虫方法和信息实时更新系统 - Google Patents

基于分类管理的多线程网络爬虫方法和信息实时更新系统 Download PDF

Info

Publication number
CN104376063A
CN104376063A CN201410633279.7A CN201410633279A CN104376063A CN 104376063 A CN104376063 A CN 104376063A CN 201410633279 A CN201410633279 A CN 201410633279A CN 104376063 A CN104376063 A CN 104376063A
Authority
CN
China
Prior art keywords
module
information
multithreading
classification management
real
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.)
Granted
Application number
CN201410633279.7A
Other languages
English (en)
Other versions
CN104376063B (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.)
Nanjing huaruizhiguang Information Technology Research Institute Co., Ltd
Original Assignee
Nanjing Post and Telecommunication University
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 Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201410633279.7A priority Critical patent/CN104376063B/zh
Publication of CN104376063A publication Critical patent/CN104376063A/zh
Application granted granted Critical
Publication of CN104376063B publication Critical patent/CN104376063B/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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

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

Abstract

本发明公开了基于分类管理的多线程网络爬虫方法的信息实时更新系统,该系统包括页面获取模块,页面处理模块,模块化机制模块,多线程循环模块,标记队列管理模块,存储模块。系统采用多线程网络爬虫并加以改进,引入标记思想,对已经爬取结束的线程使用队列方式进行标记,解决一般多线程方法中循环爬虫时产生的相互干扰的问题。系统采用模块化机制实现各个不同信息的采集,以便于动态的增加、减少目标文件,方便整个系统的维护修改。本发明方法很好地利用了网络带宽资源,提高了网络信息采集的效率,并减少了多线程爬虫时的干扰,特别适用于信息实时更新系统的网络爬虫问题。

Description

基于分类管理的多线程网络爬虫方法和信息实时更新系统
技术领域
本发明涉及一种基于分类管理的多线程网络爬虫方法和信息实时更新系统,属于计算机数据挖掘技术领域。
背景技术
随着因特网地飞速发展,人们越来越依赖计算机网络来查找需要的信息,而搜索引擎的出现可以让人们利用关键词查询相关的信息,但是对于直接快速的跟踪信息的变化,譬如某信息一旦出现更新,用户就能够收到邮件通知等,这样就能够根据特定用户的特定需求制定出特殊的方案。而本发明能很好地解决上述问题。
发明内容
本发明目的在于提供一种基于分类管理的多线程网络爬虫的信息实时更新系统,该系统是一种将多线程与队列标记相结合的策略,避免了多线程的串扰问题。该系统主要用于解决多线程网络爬虫可能产生干扰的问题。
本发明解决其技术问题所采用的技术方案是:一种基于分类管理的多线程网络爬虫的信息实时更新系统,该系统包括:页面获取模块,页面处理模块,模块化机制模块,多线程循环模块,标记队列管理模块,存储模块。
页面获取模块的功能是:获取页面源代码信息;
页面处理模块的功能是:根据源代码信息提取所需要的关键信息;
模块化机制模块的功能是:每一个不同的URL对应的基本网络爬虫程序放在不同的Python文件中,采用配置文件进行配置,方便修改与添加;
多线程循环模块的功能是:采用多线程方式采集信息,提高采集效率;
队列分类管理模块的功能是:区分爬取结束与未结束的线程,采用队列管理避免了下次循环时产生的线程冲突问题;
存储模块的功能是:将所获取的信息保存到数据库中。
本发明系统采用了模块化机制区分各个对象,并对某个对象程序采用多线程信息采集,为避免多线程采集过程中的串扰问题,引入了队列标记法,将已经采集到的信息放入列表当中,每次多线程开启前进行比对,以防止同一对象采集程序没有结束时再次被调用的“干扰”现象。
本发明还提供了一种基于分类管理的多线程网络爬虫方法,该方法包括如下步骤:
步骤1:从html页面爬取网站信息;
步骤2:利用beautiful soup4或正则匹配技术对获取的网页信息进行处理,提取关键信息,或通过网站下载链接,获取所需信息;
步骤3:将上述步骤2中采集的信息保存到MySQL数据库中;
步骤4:上述步骤1-3构成一个基本爬行程序,采用模块化机制管理每一个爬虫程序,爬行程序采用配置文件形式进行管理;
步骤5:整个信息实时更新系统采用多线程网络爬虫方式,并不断循环爬行程序,实时获取最新数据;
步骤6:引入队列分类管理模块,将上述步骤5中已经爬取结束的线程放入队列中进行标记,下一次循环则重新开启该线程,以保证数据的更新。
本发明所述方法引入队列标记的方式对URL实施分类管理。
本发明所述方法在多线程爬虫方式基础上加以改进,融合了标记管理的方法,将已经爬取到信息的线程进行标记,主要针对如下情况:某线程通过下载链接地址下载信息文件方式获取信息,该线程开启爬取时间较长,下一次循环开始后再次调取该程序线程,不断重复该采集程序但一直没能获取结果,此时会产生“冲突”。
有益效果:
1、本发明将多线程与队列标记方法相结合,融入网络爬虫中,更好地适用于实时更新系统,提高了信息的获取速度,并能够实时获取最新的信息。
2、本发明能够有效地避免多线程的串扰问题。
3、本发明采用模块化机制,能动态的增加和减少目标文件,也便于多线程爬虫的实现。
附图说明
图1为本发明的系统架构图。
图2为本发明中涉及的网络爬虫示意图。
图3为本发明的多线程循环网络爬虫标记策略流程图。
图4为本发明某单线程分类标记管理方法流程图。
图5为本发明的方法流程图。
具体实施方式
以下结合说明书附图对本发明创造作进一步的详细说明。
如图1所示,本发明提供了一种基于分类管理的多线程网络爬虫的信息实时更新系统,该系统包括页面获取模块,页面处理模块,模块化机制模块,多线程循环模块,队列分类管理模块,存储模块。
页面获取模块的功能是:获取页面源代码信息;
页面处理模块的功能是:根据源代码信息提取所需要的关键信息;
模块化机制模块的功能是:每一个不同的URL对应的基本网络爬虫程序放在不同的Python文件中,采用配置文件进行配置,方便修改与添加;
多线程循环模块的功能是:采用多线程方式采集信息,提高采集效率;
队列分类管理模块的功能是:区分爬取结束与未结束的线程,采用队列管理避免了下次循环时产生的线程冲突问题;
存储模块的功能是:将所获取的信息保存到数据库中。
如图5所示,本发明提供了一种基于分类管理的多线程网络爬虫方法,该方法具体步骤包括如下:
步骤1:采用urllib2技术获取页面源代码,利用网页地址进行HTTP模块交互,提取HTML数据,并将爬取后的页面传送给页面处理模块;
步骤2:采用Beautiful Soup4技术或者正则匹配技术获取所需要的特定信息,该信息通过对比存储模块中的信息,判断是否有更新,如有更新则覆盖保存;
步骤3:通过MySQL数据库来保存爬行过程中获取的相应数据;
步骤4:每一个URL对应的爬虫系统包含以上步骤1:步骤2:c三个步骤,每一个URL对应的采集系统单独放在一个Python文件中,并采用模块化机制管理这些Python文件,用配置文件的方式将Python文件对应的名称放在配置文件中。将;
步骤5:读取步骤d中的配置文件中存放的Python文件名,并放入队列中进行初始化标记操作;
步骤6:读取标记队列,采用多线程网络爬虫的方式开启多线程网络爬虫;
步骤7:对于已经爬取结束的线程采用队列管理的方法,将该程序名放入到队列进行标记,下一次循环对URL重新采集,未结束的线程在下一次循环中继续上一次的采集。
本发明的网络信息采集包含如下步骤:
步骤1:根据URL获取网站信息;
步骤2:对数据进行处理,得到所需关键信息;
步骤3:信息放入数据库。
如图2所示,本发明提供一种网络爬虫系统的实现方法,该方法包括:
步骤1:HTTP交互模块向服务器Web端口发起TCP连接;
步骤2:建立连接后向Web服务器请求报文,接收报文后进行HTTP包拆封,提取HTML数据;
步骤3:将数据交由HTML解析模块;
步骤4:将数据保存于数据库中。
本发明中的信息实时更新系统将图2所展示的简单爬虫系统模块化,某个网站信息的爬虫放到单独的程序当中,通过配置文件进行管理。
如图3所示,本发明设计多线程与队列分类管理相结合的方法,从配置文件中读取所要爬取的对象,初始化标记队列,采用多线程的方式将线程模块同时开启,对爬取结束的线程进行标记,供下次循环时重新爬取,不断循环网络爬虫,保证采集到最新的信息,不断更新数据库。图4则具体描绘某个单线程的分类标记处理方法,如果该线程运行结束,则进行标记放入队列当中,否则继续该单线程,直到线程运行结束为止。
本发明系统引入队列分类管理的方式,是将爬取结束的模块进行标记,从而避免了爬取未结束而在下次循环爬虫过程中重新被调用时产生的串扰现象。
以上所述实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以权利要求书为准。

Claims (8)

1.一种基于分类管理的多线程网络爬虫的信息实时更新系统,其特征在于,所述系统包括:页面获取模块,页面处理模块,模块化机制模块,多线程循环模块,队列分类管理模块,存储模块;
页面获取模块的功能是:获取页面源代码信息;
页面处理模块的功能是:根据源代码信息提取所需要的关键信息;
模块化机制模块的功能是:每一个不同的URL对应的基本网络爬虫程序放在不同的Python文件中,采用配置文件进行配置,方便修改与添加;
多线程循环模块的功能是:采用多线程方式采集信息,提高采集效率;
队列分类管理模块的功能是:区分爬取结束与未结束的线程,采用队列管理避免了下次循环时产生的线程冲突问题;
存储模块的功能是:将所获取的信息保存到数据库中。
2.根据权利要求1所述的一种基于分类管理的多线程网络爬虫的信息实时更新系统,其特征在于:所述系统完成信息快速实时更新的功能,并更新数据库以及发邮件通知信息更新。
3.根据权利要求1所述的一种基于分类管理的多线程网络爬虫的信息实时更新系统,其特征在于:所述系统引入队列分类管理的方式,将爬取结束的模块进行标记。
4.一种网络爬虫系统的实现方法,其特征在于:所述方法包括如下步骤:
步骤1:HTTP交互模块向服务器Web端口发起TCP连接;
步骤2:建立连接后向Web服务器请求报文,接收报文后进行HTTP包拆封,提取HTML数据;
步骤3:将数据交由HTML解析模块;
步骤4:将数据保存于数据库中。
5.一种基于分类管理的多线程网络爬虫方法,其特征在于,所述方法包括如下步骤:
步骤1:从html页面爬取网站信息;
步骤2:利用beautiful soup4或正则匹配技术对获取的网页信息进行处理,提取关键信息,或通过网站下载链接,获取所需信息;
步骤3:将上述步骤2中采集的信息保存到MySQL数据库中;
步骤4:上述步骤1-3构成一个基本爬行程序,采用模块化机制管理每一个爬虫程序,爬行程序采用配置文件形式进行管理;
步骤5:整个信息实时更新系统采用多线程网络爬虫方式,并不断循环爬行程序,实时获取最新数据;
步骤6:引入队列分类管理模块,将上述步骤5中已经爬取结束的线程放入队列中进行标记,下一次循环则重新开启该线程,以保证数据的更新。
6.根据权利要求5所述的一种基于分类管理的多线程网络爬虫方法,其特征在于,所述方法的网络信息采集包括如下步骤:
步骤1:根据URL获取网站信息;
步骤2:对数据进行处理,得到所需关键信息;
步骤3:信息放入数据库。
7.根据权利要求5所述的一种基于分类管理的多线程网络爬虫方法的信息实时更新系统,其特征在于:引入队列标记的方式对URL实施分类管理。
8.根据权利要求5所述的一种基于分类管理的多线程网络爬虫方法,其特征在于:所述方法是将已经爬取到信息的线程进行标记。
CN201410633279.7A 2014-11-11 2014-11-11 基于分类管理的多线程网络爬虫方法和信息实时更新系统 Active CN104376063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410633279.7A CN104376063B (zh) 2014-11-11 2014-11-11 基于分类管理的多线程网络爬虫方法和信息实时更新系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410633279.7A CN104376063B (zh) 2014-11-11 2014-11-11 基于分类管理的多线程网络爬虫方法和信息实时更新系统

Publications (2)

Publication Number Publication Date
CN104376063A true CN104376063A (zh) 2015-02-25
CN104376063B CN104376063B (zh) 2019-02-19

Family

ID=52554970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410633279.7A Active CN104376063B (zh) 2014-11-11 2014-11-11 基于分类管理的多线程网络爬虫方法和信息实时更新系统

Country Status (1)

Country Link
CN (1) CN104376063B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204871A (zh) * 2015-10-30 2015-12-30 亚信科技(南京)有限公司 一种插件式开发方法和装置
CN105260405A (zh) * 2015-09-22 2016-01-20 北京云知声信息技术有限公司 一种网络爬虫方法及装置
CN105760550A (zh) * 2016-03-23 2016-07-13 江苏物联网研究发展中心 面向大数据存储中心的互联网数据采集系统和采集方法
CN105868412A (zh) * 2016-04-28 2016-08-17 焦点科技股份有限公司 一种基于b2b平台的多线程数据抓取方法
CN105930385A (zh) * 2016-04-13 2016-09-07 珠海迈科智能科技股份有限公司 一种数据爬取方法及系统
CN106776934A (zh) * 2016-11-30 2017-05-31 努比亚技术有限公司 一种移动终端及网络爬虫的实现方法
CN107239558A (zh) * 2017-06-09 2017-10-10 成都布林特信息技术有限公司 通用互联网数据采集方法
CN107256180A (zh) * 2017-05-19 2017-10-17 腾讯科技(深圳)有限公司 数据处理方法、装置及终端
CN107590236A (zh) * 2017-09-09 2018-01-16 杭州数立方征信有限公司 一种面向建筑施工企业的大数据采集方法和系统
CN107678856A (zh) * 2017-09-20 2018-02-09 苏宁云商集团股份有限公司 一种处理业务实体中增量信息的方法及装置
CN109284194A (zh) * 2018-08-16 2019-01-29 平安科技(深圳)有限公司 数据采集方法、征信主体设备、计算机设备及存储介质
CN109783728A (zh) * 2018-12-29 2019-05-21 安徽听见科技有限公司 页面爬虫规则更新方法及系统
CN111428176A (zh) * 2020-03-04 2020-07-17 北京明略软件系统有限公司 用户行为的获取方法和装置
CN112035725A (zh) * 2020-09-03 2020-12-04 北大方正集团有限公司 数据采集系统和方法
CN112862424A (zh) * 2020-12-30 2021-05-28 佛山欧神诺云商科技有限公司 通知信息管理方法、终端、系统以及存储装置
CN116501945A (zh) * 2023-06-27 2023-07-28 深圳市豪斯莱科技有限公司 一种多线程浏览器驱动爬虫方法、系统和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999549A (zh) * 2012-09-25 2013-03-27 金博 一种实现网络爬虫任务的方法
CN103870329A (zh) * 2014-03-03 2014-06-18 同济大学 基于加权轮叫算法的分布式爬虫任务调度方法
CN103970788A (zh) * 2013-02-01 2014-08-06 北京英富森信息技术有限公司 一种基于网页爬取的爬虫技术
US20140258296A1 (en) * 2013-03-11 2014-09-11 Dell Products L.P. System and method for management of network monitoring information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999549A (zh) * 2012-09-25 2013-03-27 金博 一种实现网络爬虫任务的方法
CN103970788A (zh) * 2013-02-01 2014-08-06 北京英富森信息技术有限公司 一种基于网页爬取的爬虫技术
US20140258296A1 (en) * 2013-03-11 2014-09-11 Dell Products L.P. System and method for management of network monitoring information
CN103870329A (zh) * 2014-03-03 2014-06-18 同济大学 基于加权轮叫算法的分布式爬虫任务调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
金梅: "网络爬虫性能提升与功能拓展的研究与实现", 《中国优秀硕士论文全文数据库 信息科技辑》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260405A (zh) * 2015-09-22 2016-01-20 北京云知声信息技术有限公司 一种网络爬虫方法及装置
CN105260405B (zh) * 2015-09-22 2019-08-16 北京云知声信息技术有限公司 一种网络爬虫方法及装置
CN105204871A (zh) * 2015-10-30 2015-12-30 亚信科技(南京)有限公司 一种插件式开发方法和装置
CN105760550A (zh) * 2016-03-23 2016-07-13 江苏物联网研究发展中心 面向大数据存储中心的互联网数据采集系统和采集方法
CN105930385A (zh) * 2016-04-13 2016-09-07 珠海迈科智能科技股份有限公司 一种数据爬取方法及系统
CN105868412B (zh) * 2016-04-28 2019-05-03 焦点科技股份有限公司 一种基于b2b平台的多线程数据抓取方法
CN105868412A (zh) * 2016-04-28 2016-08-17 焦点科技股份有限公司 一种基于b2b平台的多线程数据抓取方法
CN106776934A (zh) * 2016-11-30 2017-05-31 努比亚技术有限公司 一种移动终端及网络爬虫的实现方法
CN107256180A (zh) * 2017-05-19 2017-10-17 腾讯科技(深圳)有限公司 数据处理方法、装置及终端
CN107239558A (zh) * 2017-06-09 2017-10-10 成都布林特信息技术有限公司 通用互联网数据采集方法
CN107590236A (zh) * 2017-09-09 2018-01-16 杭州数立方征信有限公司 一种面向建筑施工企业的大数据采集方法和系统
CN107678856A (zh) * 2017-09-20 2018-02-09 苏宁云商集团股份有限公司 一种处理业务实体中增量信息的方法及装置
CN109284194A (zh) * 2018-08-16 2019-01-29 平安科技(深圳)有限公司 数据采集方法、征信主体设备、计算机设备及存储介质
CN109284194B (zh) * 2018-08-16 2024-05-24 平安科技(深圳)有限公司 数据采集方法、征信主体设备、计算机设备及存储介质
CN109783728A (zh) * 2018-12-29 2019-05-21 安徽听见科技有限公司 页面爬虫规则更新方法及系统
CN111428176A (zh) * 2020-03-04 2020-07-17 北京明略软件系统有限公司 用户行为的获取方法和装置
CN112035725A (zh) * 2020-09-03 2020-12-04 北大方正集团有限公司 数据采集系统和方法
CN112862424A (zh) * 2020-12-30 2021-05-28 佛山欧神诺云商科技有限公司 通知信息管理方法、终端、系统以及存储装置
CN116501945A (zh) * 2023-06-27 2023-07-28 深圳市豪斯莱科技有限公司 一种多线程浏览器驱动爬虫方法、系统和可读存储介质

Also Published As

Publication number Publication date
CN104376063B (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN104376063A (zh) 基于分类管理的多线程网络爬虫方法和信息实时更新系统
CN102646129B (zh) 一种主题相关的分布式网络爬虫系统
CN101727498A (zh) 一种基于web结构的网页信息自动提取方法
CN105162627B (zh) 发现与呈现网络应用访问信息的方法和系统
CN105045838A (zh) 基于分布式存储系统的网络爬虫系统
CN103942335A (zh) 一种针对网页结构变化的不间断爬虫系统构建方法
CN102622443A (zh) 一种面向微博的定制化筛选系统及方法
CN104050037A (zh) 一种基于指定电子商务网站的定向爬虫的实现方法
CN102902771A (zh) 一种图片搜索方法、装置及服务器
CN104516982A (zh) 一种基于Nutch的Web信息提取方法和系统
CN102542061B (zh) 一种产品的智能分类方法
CN103970788A (zh) 一种基于网页爬取的爬虫技术
CN102164186A (zh) 一种实现云搜索服务的方法及系统
CN104598536B (zh) 一种分布式网络信息结构化处理方法
CN107239546A (zh) 一种网页局部内容跟踪与提醒的方法
CN110309386B (zh) 一种网页爬取的方法和装置
CN104199893B (zh) 一种快速将全媒体内容发布的系统和方法
CN103970843A (zh) 一种Web日志预处理中基于UUID的会话合并方法
CN102811207A (zh) 网络信息推送方法及系统
CN109299105A (zh) 一种局域网地质数据的检索与获取方法、装置
CN104598561A (zh) 一种基于文本的农业视频智能分类方法及装置
CN204790999U (zh) 一种工业大数据收集和处理系统
CN100336061C (zh) 多媒体对象检索设备和方法
CN108205548A (zh) 一种基于农业网页信息采集的网络蜘蛛结构及其工作方法
CN110110182A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201029

Address after: Room 2, No.2, No.2, Kechuang Road, NO.201, Qixia District, Nanjing, Jiangsu Province

Patentee after: Nanjing huaruizhiguang Information Technology Research Institute Co., Ltd

Address before: 210003 Gulou District, Jiangsu, Nanjing new model road, No. 66

Patentee before: NANJING University OF POSTS AND TELECOMMUNICATIONS