CN103678571A - 应用于单台多核处理器主机的多线程网络爬虫执行方法 - Google Patents

应用于单台多核处理器主机的多线程网络爬虫执行方法 Download PDF

Info

Publication number
CN103678571A
CN103678571A CN201310661466.1A CN201310661466A CN103678571A CN 103678571 A CN103678571 A CN 103678571A CN 201310661466 A CN201310661466 A CN 201310661466A CN 103678571 A CN103678571 A CN 103678571A
Authority
CN
China
Prior art keywords
url
thread
seed
webpage
buffer queue
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
CN201310661466.1A
Other languages
English (en)
Other versions
CN103678571B (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.)
China Southern Power Grid Internet Service Co ltd
Ourchem Information Consulting Co ltd
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201310661466.1A priority Critical patent/CN103678571B/zh
Publication of CN103678571A publication Critical patent/CN103678571A/zh
Application granted granted Critical
Publication of CN103678571B publication Critical patent/CN103678571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出的应用于单台多核处理器主机的多线程网络爬虫执行方法包括步骤:S10、创建网页爬取线程、网页分析线程以及URL种子线程;S20、将URL种子载入URL种子缓冲队列;S30、从URL种子缓冲队列中取出URL种子块,遍历URL条目进行网页爬取;S40、将网页内容及其URL封装载入网页缓冲队列;S50、通过查询哈希表进行URL分析,将URL载入待爬取URL列表;S60、待爬取URL列表中元素达到最大值时写入URL缓冲队列;S70、从URL缓冲队列中取出URL列表并重排,封装成URL种子块插入URL种子缓冲队列。本发明可避免额外的线程切换或等待、误判率极低,一定程度上解决了“礼貌”爬取问题。

Description

应用于单台多核处理器主机的多线程网络爬虫执行方法
【技术领域】
本发明涉及一种应用于单台多核处理器主机的多线程网络爬虫执行方法。
【背景技术】
网络爬虫(Web Crawler),又称为网络蜘蛛(Web Spider)或网络机器人(WebRobot),是一个自动下载网页的计算机程序或自动化脚本,是搜索引擎的重要组成部分。网络爬虫通常从一个称为种子集的URL集合开始运行,它首先将这些URL全部放入到一个有序的待爬行队列里,按照一定的顺序从中取出URL并下载所指向的页面,分析页面内容,提取新的URL并存入待爬行URL队列中,如此重复上面的过程,直到URL队列为空或满足某个爬行终止条件,从而遍历Web。
网络爬虫作为搜索引擎的基础构件之一,在各大互联网公司的大力发展之下,技术已比较完善。如谷歌、百度等公司部署于各自集群上的大规模分布式网络爬虫支持着其搜索引擎的日常工作。而出于商业机密的考虑,目前各个搜索引擎使用的网络爬虫系统的技术内幕一般都不公开,现有的文献也仅限于概要性介绍。目前的网络爬虫大都采用分布式架构,性能优越,而针对运行于单机的爬虫的研究工作较少,实现复杂且细节不公开。
近年来,机器学习、数据挖掘等学科成为各研究单位研究的热点。而这些领域内很多研究需要基于对以网页数据为代表的海量互联网数据的分析。网络爬虫作为获取Web数据的基本技术,决定着所获取数据的内容是否丰富、信息能否得到及时更新,它的性能及有效性直接影响到后续研究工作的成功与否。目前,现有技术主要存在以下几点缺陷:(1)各个学科领域内网络爬虫程序通用性低、性能差异较大,移植到不同配置机器时会发生由于处理器内核利用不充分或线程过多而增加系统线程切换以引起程序效率降低。(2)存在于网络的网页数量多,现有分布式爬虫所采用的去重方法实现复杂且内存消耗量在单机难以承受;(3)广度优先爬虫容易产生“礼貌”爬行问题,即短时间内大量访问同一主机,影响普通用户访问;(4)传统竞争型网页缓冲对线程并行度影响较大,无法充分发挥多核CPU的性能。
【发明内容】
本发明旨在解决上述现有技术中存在的问题,提出一种应用于单台多核处理器主机的多线程网络爬虫执行方法。
本发明提出的应用于单台多核处理器主机的多线程网络爬虫执行方法包括以下步骤:S10、基于主机处理器核数以及线程数量创建网页爬取线程、网页分析线程以及URL种子线程,申请哈希表空间;S20、获取包含URL列表的初始URL种子文件,将所述初始URL种子文件中的URL种子载入URL种子缓冲队列;S30、网页爬取线程从URL种子缓冲队列中取出URL种子块,采用仅遍历URL种子块中URL条目的策略进行网页爬取;S40、当爬取的网页数量达到网页爬取线程设定的最大阈值时,将网页内容和其对应的URL封装并载入网页缓冲队列;S50、网页分析线程每次从网页缓冲队列中取出一个队列元素,并对所述队列元素中每一个网页通过查询哈希表进行URL分析,排除重复出现的URL,将新出现的URL载入待爬取URL列表;S60、当待爬取URL列表中元素达到最大值时写入URL缓冲队列,当一个网页缓冲队列元素中所有网页被分析后,将元素对象插入网页磁盘缓存,由清空网页缓存线程写入磁盘;S70、URL种子生成线程每次从URL缓冲队列中取出URL列表并重排,封装成URL种子块并插入URL种子缓冲队列。
本发明具有如下优点:(1)分解基于广度优先搜索,按照主机配置达到工作负载最均衡的状态,避免额外的线程切换或等待,将程序在当前多核处理器上的性能最大化;(2)低误判的两次哈希URL去重模型使得本框架系统在进行10亿量级的URL的去重操作时仅需要256MB的内存空间,误判率大大降低;(3)采用简单有效的随即乱序种子生成代替分布式爬虫方案中广泛采用的Web划分方式,在一定程度上解决了“礼貌”爬取问题,执行效率更高;(4)为框架内的缓冲队列设定生产阈值与消费阈值,增加了各线程如网页爬取线程、网页分析线程、URL种子生成线程、清空URL缓存区线程之间的并行度,提高了多核CPU的利用率。
【附图说明】
图1为本发明一实施例的应用于单台多核处理器主机的多线程网络爬虫执行方法流程图。
图2为本发明一实施例的应用于单台多核处理器主机的多线程网络爬虫框架结构图。
图3为本发明一实施例的URL种子缓冲队列结构示意图。
图4为本发明一实施例的网页爬取线程及网页分析线程数据示意图。
图5为本发明一实施例的网页缓冲队列数据示意图。
图6为本发明一实施例的基于验证位的两次哈希去重算法模型图。
图7为本发明一实施例的生产线程、缓冲队列、消费者线程工作原理图。
【具体实施方式】
下面结合具体实施例及附图对本发明作进一步详细说明。下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明的技术方案,而不应当理解为对本发明的限制。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
本发明提供一种应用于单台多核处理器主机的多线程网络爬虫执行方法。如图1所示,本发明提出的应用于单台多核处理器主机的多线程网络爬虫执行方法,包括以下步骤:S10、基于主机处理器核数以及线程数量创建网页爬取线程、网页分析线程以及URL种子线程,申请哈希表空间;S20、获取包含URL列表的初始URL种子文件,将所述初始URL种子文件中的URL种子载入URL种子缓冲队列;S30、网页爬取线程从URL种子缓冲队列中取出URL种子块,采用仅遍历URL种子块中URL条目的策略进行网页爬取;S40、当爬取的网页数量达到网页爬取线程设定的最大阈值时,将网页内容和其对应的URL封装并载入网页缓冲队列;S50、网页分析线程每次从网页缓冲队列中取出一个队列元素,并对所述队列元素中每一个网页通过查询哈希表进行URL分析,排除重复出现的URL,将新出现的URL载入待爬取URL列表;S60、当待爬取URL列表中元素达到最大值时写入URL缓冲队列,当一个网页缓冲队列元素中所有网页被分析后,将元素对象插入网页磁盘缓存,由清空网页缓存线程写入磁盘;S70、URL种子生成线程每次从URL缓冲队列中取出URL列表并重排,封装成URL种子块并插入URL种子缓冲队列。
如图2所示,本发明提出的应用于单台多核处理器主机的多线程网络爬虫框架执行过程主要有URL种子生成、网页爬取、网页分析(包括URL去重)、将网页数据写入磁盘等。其间使用了URL种子缓冲队列、网页缓冲队列及URL缓冲队列减少线程通信和磁盘访问次数来提高系统的效率。未在图中标出的过程有初始化过程及结束清理过程。用户在该框架之上编写自己的网络爬虫时只需重写“清空网页缓存区”方法来自定义文件的输出格式,其它部分不需要进行改动。
用户在机器上部署本框架系统时,可通过框架的XML配置文件自定义网页爬取线程、网页分析线程、生成种子线程的数目及各缓存区大小。如不进行自定义配置,系统将根据预定义的运行策略表自动匹配在当前机器上最优的执行方案。
本框架所设计的各个线程执行的周期不同,其中工作量最大的网页爬取线程和网页分析线程需要一直循环执行并尽量不使其发生等待;生成URL种子线程工作量适中,有一定时间内生成URL种子线程将处于等待状态;清空网页缓存区线程、装载URL缓存区线程及清空URL缓存区线程工作量最小,大部分时间处于等待状态。根据以上知识指导设计最优策略表,并根据大量实验得出最优策略表如下:
针对目前常用的商用多核处理器,按照以下方案自动获得CPU的逻辑内核数并进行匹配:
(1)双核处理器:1个网页爬取线程、1个网页分析线程,1个生成URL种子线程;
(2)四核处理器或双核四线程处理器:1个网页爬取线程、2个网页分析线程、1个生成URL种子线程;
(3)六核处理器:2个网页爬取线程、2个网页分析线程、1个生成URL种子线程;
(4)八核处理器或四核八线程处理器:2个网页爬取线程、3个网页分析线程、1个生成URL种子线程;
(5)六核十二线程处理器:4个网页爬取线程、5个网页分析线程、1个生成URL种子线程;
(6)八核十六线程处理器:5个网页爬取线程、7个网页分析线程、2个生成URL种子线程。
在本框架之上开发网络爬虫程序时需要提供一个初始URL种子文件,该文件内容为若干条用户感兴趣的URL列表。框架首先通过初始化模块申请哈希表空间,创建所有线程,并将用户提供的初始种子文件中的URL种子加载入URL种子缓冲队列中,种子缓冲队列的结构如图3所示,其元素为一个URL种子块的地址或指针变量,每个变量指向一个存储在堆空间中的600条URL列表组成的种子块对象。此时其他线程处于等待状态,网页爬取线程(如图4所示)从URL种子缓冲队列中取出URL种子块对象进行网页爬取,爬取时仅遍历URL种子数据块中的URL条目,而不进行更深一层的宽度优先搜索。因为本框架能够保证URL种子缓冲队列中的所有URL条目均不重复,所以用这些URL种子进行网页爬取的所有网页爬取线程所获得网页内容也均不重复(不考虑URL不同但网页内容相同的情况)。当爬取的网页数量达到网页爬取线程设定的最大值500时,将网页内容写入网页缓冲队列中。写入前需将网页内容和其对应的URL封装成为网页缓冲队列的元素对象,如图4所示,网页缓冲队列的元素为100条URL和其相应的网页内容这样一对值的顺序排列组成。网页分析线程(如图4所示)每次从网页缓冲队列中摘下一个队列元素,对元素中每一个网页进行URL分析,通过查询哈希表,检查每个经过网页分析所提取到的URL是否重复出现,若是新的URL则加入待爬取URL列表中。当待爬取URL列表达到最大值时将其写入URL缓冲队列中。当一个网页缓冲队列元素中所有网页都已被分析后,将该元素对象插入网页磁盘缓存中,由清空网页缓存线程定期写入磁盘。URL缓冲队列的内容即为URL种子生成线程的源数据,URL种子生成线程每次从URL缓冲队列中摘下5个元素的URL列表,将这些URL重新排列,封装成5个URL种子块插入URL种子缓冲队列中。至此,网络爬虫的一个工作循环已完成。
在本发明提出的应用于单台多核处理器主机的多线程网络爬虫执行方法中,采用基于位验证的两次哈希去重方法创建所述哈希表,所述两次哈希去重方法包括ELFhash变型算法以及HFIp型URL哈希算法。设计哈希表的目标是为10亿量级的URL条目进行去重操作。为节省内存资源,不考虑处理冲突的键,因为要检测冲突键需要存储URL键值,而URL占用存储空间较多。本方案在此只存储某个哈希值是否已被查询的状态,被查询或未被查询状态用一个bit就可以表示。为存储10亿条URL记录的哈希状态,最多需要长度为109/8=1.25*108的char型数组hashTable[1.25*108](一个char型变量有8位),该数组所占用内存约为125MB。为访问到数组元素char中每个位的值,设置一个长度为8的掩码数组mask[8]。从mask[0]、mask[1]到mask[7],它们的值分别是:0x00000001,0x00000010,0x00000100,0x00001000,0x00010000,0x00100000,0x01000000,0x10000000。访问URL的哈希值状态的步骤为:(1)计算URL的哈希值(hashValue):hashValue=哈希函数(URL)。(2)该URL的哈希状态hashStatus=hashTable[hashValue/8]^mask[hashValue%8]。哈希状态(hashStatus)的值分为0和非0两种,0表示此URL未出现过,非0表示此URL出现过,哈希表中所有元素初始值都为0。
当哈希表的规模增大时,哈希函数的不均匀率即冲突率也会随之升高,从而使发生误判的概率增加。例如当某URL1与另一URL2发生碰撞时,会误判URL2与URL1重复。考虑到不同哈希算法分布差异很大,可以认为相同URL键在两个计算过程不同的哈希函数中发生碰撞这两个事件关联性很小。可以近似的认为同一键在这两个哈希函数下同时发生碰撞的概率为两个函数冲突率之积。因此再增加一张同样规模的哈希表,采用数学过程差别较大的的哈希算法,每次计算URL的两种哈希值,并分别到两个表进行查询,只要其中一个表中状态位为0,就说明该URL不重复。即该URL的最终哈希状态为哈希函数表1状态与哈希函数表2状态的或运算。查询的过程将两个哈希表中的该URL哈希值对应的位都置1表示该URL已出现过。如图6所示,在选用哈希算法时,尽量选用对URL哈希值分布均匀且计算速度快的算法,本系统中采用一个ELFhash算法的变型如代码1所示,进行哈希值的计算,另一个算法为常用的URL哈希算法HFIp如代码2所示。由实验数据得知两种算法在进行大规模URL集的哈希查找时,性能较为优越,且统计均匀性较好。
Figure BDA0000432961280000071
本方案中网页爬取模块仅仅按照URL种子中的URL列表抓取网页,而不进行进一步的搜索。因此使网页爬取模块阶段不产生重复问题,网页爬取线程将获得的网页内容写入网页缓冲队列,网页分析线程从网页缓冲队列中取网页数据,分析提取网页中的URL,并将这些URL去重后放入URL缓冲队列中。此时由于从同一个网页中提取的URL相邻存储,一般情况下直接将这些URL作为种子给网页爬取线程按照广度优先搜索进行网页爬取,这种情况下会造成在短时间内大量访问同一域名下的URL,即“礼貌”爬行问题。在将搜索步骤与网页爬取线程解耦后,原本在网页爬取线程内部的完成广度优先搜索现在成为宏观尺度上的广度优先搜索,即网页爬取线程、网页分析线程、URL种子生成线程共同构成URL的广度优先搜索。在种子生成线程中从URL缓存列表中一次提取大量URL(5*600=3000条)进行随机重排,使得来自各个域名的URL均匀的分布。然后将打乱次序的URL封装成种子块插入URL种子缓冲队列。此时网页爬取线程用乱序种子进行网页爬取,这样能能很好的避免“礼貌”爬取问题。
在本发明中,如图7所示,为网页缓冲队列、URL缓冲队列、URL种子缓冲队列统一设定生产阈值为0.2,该生产阈值的作用为:当各个缓冲队列中的元素数量小于等于缓冲区总长度的20%时,立即唤醒各缓冲队列的生产者线程为缓冲队列填充数据。网页缓冲队列的生产者线程为网页爬取线程,消费者为网页分析线程;URL缓冲队列的生产者线程为网页分析线程,消费者为清空URL缓存区线程;URL种子缓冲队列的生产者线程为URL种子生成线程,消费者为网页爬取线程。本方案中在各缓冲队列在到达生产阈值时就主动唤醒生产者线程,而此时缓冲队列还有20%的数据,消费者线程就能够不用等待生产者线程补充缓冲区而继续工作,由此提高了消费者线程与生产者线程之间的并行度。相应的,为网页缓冲队列、URL缓冲队列、URL种子缓冲队列统一设定消费阈值为0.8,当各个缓冲队列中的元素数量大于等于缓冲区总长度的80%时,唤醒各个缓冲队列的消费者线程从缓冲队列中取出数据。该消费阈值的作用为:当各个缓冲队列中的元素数量大于等于缓冲区总长度的80%时,唤醒各个缓冲队列的消费者线程为缓冲队列清空数据。
本发明通过构建一个适用于单台商用多核处理器主机上多线程通用网络爬虫框架,并合理设计各线程的工作负载,从而优化网络爬虫程序在单台多核处理器主机上运行的效率。本发明具有如下特点:
(1)分解基于广度优先搜索的网页爬取,由网页爬取线程、网页分析线程、种子生成线程和URL种子缓冲队列、网页缓冲队列、URL缓冲队列共同完成宏观尺度的基于广度优先搜索的网页爬取。这样针对工作量大的网页爬取线程和网页分析线程可根据处理器的核心数目多启动若干数量的这两种线程以充分发挥多核处理器的性能。为不同核心数目的常见商用处理器设计了一个可自动匹配的执行计划策略表,根据次策略表可自动匹配得到当前机器的最优执行方案,即按照此配置能达到工作负载最均衡的状态,避免额外的线程切换或等待,将程序在当前多核处理器上的性能最大化。
(2)提出低内存消耗,低误判的两次哈希URL去重模型,使得本框架系统在进行10亿量级的URL的去重操作时仅需要125MB*2=256MB的内存空间。远远少于一般采用完全内存方式的去重模型的内存需求量,为5G-8G或5G-8G的1/8即600M-1G。若一般完全内存方式的去重模型URL重复误判率为x,则本方案的URL重复误判率为x2,误判率大大降低。
(3)采用简单有效的随即乱序种子生成代替分布式爬虫方案中广泛采用的Web划分方式,在一定程度上解决了“礼貌”爬取问题,且相比Web划分方式执行效率更高。
(4)为框架内的缓冲队列设定生产阈值与消费阈值,增加了各线程如网页爬取线程、网页分析线程、URL种子生成线程、清空URL缓存区线程之间的并行度,提高了多核CPU的利用率。
虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来解释和说明本发明的技术方案,而并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、变形、改进等,均应包含在本发明的权利要求保护范围之内。

Claims (10)

1.一种应用于单台多核处理器主机的多线程网络爬虫执行方法,包括以下步骤:
S10、基于主机处理器核数以及线程数量创建网页爬取线程、网页分析线程以及URL种子线程,申请哈希表空间;
S20、获取包含URL列表的初始URL种子文件,将所述初始URL种子文件中的URL种子载入URL种子缓冲队列;
S30、网页爬取线程从URL种子缓冲队列中取出URL种子块,采用仅遍历URL种子块中URL条目的策略进行网页爬取;
S40、当爬取的网页数量达到网页爬取线程设定的最大阈值时,将网页内容和其对应的URL封装并载入网页缓冲队列;
S50、网页分析线程每次从网页缓冲队列中取出一个队列元素,并对所述队列元素中每一个网页通过查询哈希表进行URL分析,排除重复出现的URL,将新出现的URL载入待爬取URL列表;
S60、当待爬取URL列表中元素达到最大值时写入URL缓冲队列,当一个网页缓冲队列元素中所有网页被分析后,将元素对象插入网页磁盘缓存,由清空网页缓存线程写入磁盘;
S70、URL种子生成线程每次从URL缓冲队列中取出URL列表并重排,封装成URL种子块并插入URL种子缓冲队列。
2.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,对于双核处理器,创建1个网页爬取线程、1个网页分析线程以及1个生成URL种子线程;对于四核处理器或双核四线程处理器,创建1个网页爬取线程、2个网页分析线程以及1个生成URL种子线程;对于六核处理器,创建2个网页爬取线程、2个网页分析线程以及1个生成URL种子线程;对于八核处理器或四核八线程处理器,创建2个网页爬取线程、3个网页分析线程以及1个生成URL种子线程;对于六核十二线程处理器,创建4个网页爬取线程、5个网页分析线程以及1个生成URL种子线程;对于八核十六线程处理器,创建5个网页爬取线程、7个网页分析线程以及2个生成URL种子线程。
3.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,采用基于位验证的两次哈希去重方法创建所述哈希表,所述两次哈希去重方法包括ELFhash变型算法以及HFIp型URL哈希算法。
4.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,在种子生成线程中,从URL缓存列表中一次提取3000条URL进行随机重排,将重排后的URL封装成种子块插入URL种子缓冲队列。
5.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,URL种子生成线程每次从URL缓冲队列中取出5个元素的URL列表并重排,封装成5个URL种子块插入URL种子缓冲队列。
6.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,所述网页缓冲队列、URL缓冲队列以及URL种子缓冲队列的生产阈值、消费阈值分别为0.2、0.8。
7.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,所述网页爬取线程设定的最大阈值为500。
8.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,所述URL种子缓冲队列中的每一元素为一个URL种子块的地址或指针变量。
9.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,所述网页缓冲队列中元素为URL及其相应的网页内容拼接而成的数据单元。
10.根据权利要求1所述的应用于单台多核处理器主机的多线程网络爬虫执行方法,其特征在于,所述URL缓冲队列中内容即为URL种子生成线程的源数据。
CN201310661466.1A 2013-12-09 2013-12-09 应用于单台多核处理器主机的多线程网络爬虫执行方法 Active CN103678571B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310661466.1A CN103678571B (zh) 2013-12-09 2013-12-09 应用于单台多核处理器主机的多线程网络爬虫执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310661466.1A CN103678571B (zh) 2013-12-09 2013-12-09 应用于单台多核处理器主机的多线程网络爬虫执行方法

Publications (2)

Publication Number Publication Date
CN103678571A true CN103678571A (zh) 2014-03-26
CN103678571B CN103678571B (zh) 2017-01-25

Family

ID=50316116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310661466.1A Active CN103678571B (zh) 2013-12-09 2013-12-09 应用于单台多核处理器主机的多线程网络爬虫执行方法

Country Status (1)

Country Link
CN (1) CN103678571B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677918A (zh) * 2016-03-03 2016-06-15 浪潮软件股份有限公司 一种基于Kafka和Quartz的分布式爬虫架构及其实现方法
CN106294393A (zh) * 2015-05-20 2017-01-04 天脉聚源(北京)科技有限公司 一种网络搜索的方法和系统
CN106953780A (zh) * 2017-03-15 2017-07-14 重庆邮电大学 一种支持网络产品信息查询的众核平台深度包检测装置及方法
CN108063759A (zh) * 2017-12-05 2018-05-22 西安交大捷普网络科技有限公司 web漏洞扫描方法
CN109670099A (zh) * 2018-12-21 2019-04-23 全通教育集团(广东)股份有限公司 基于教育网络信息主题采集方法
CN112422707A (zh) * 2020-10-22 2021-02-26 北京安博通科技股份有限公司 域名数据挖掘方法、装置及Redis服务器
CN113238711A (zh) * 2021-04-17 2021-08-10 西安电子科技大学 一种电子数据取证领域中高效的哈希计算方法
CN114297463A (zh) * 2021-12-20 2022-04-08 中孚信息股份有限公司 数据爬取方法、系统、计算机可读存储介质及电子设备
CN114417216A (zh) * 2022-01-04 2022-04-29 马上消费金融股份有限公司 数据采集方法、装置、电子设备及可读存储介质
CN114817677A (zh) * 2021-01-21 2022-07-29 中国移动通信有限公司研究院 一种爬虫调度方法、装置及系统
CN114900487A (zh) * 2022-05-27 2022-08-12 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631369B1 (en) * 1999-06-30 2003-10-07 Microsoft Corporation Method and system for incremental web crawling
CN1811757A (zh) * 1995-12-13 2006-08-02 奥弗图尔服务公司 用于定位万维网页以及计算机网络文件的系统和方法
CN103226609A (zh) * 2013-05-03 2013-07-31 福建师范大学 一种web聚焦搜索系统的搜索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1811757A (zh) * 1995-12-13 2006-08-02 奥弗图尔服务公司 用于定位万维网页以及计算机网络文件的系统和方法
US6631369B1 (en) * 1999-06-30 2003-10-07 Microsoft Corporation Method and system for incremental web crawling
CN103226609A (zh) * 2013-05-03 2013-07-31 福建师范大学 一种web聚焦搜索系统的搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴丽辉 等: "Web信息采集中的哈希函数比较", 《小型微型计算机系统》 *
梁萍: "搜索引擎中网络爬虫及结果聚类的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
金梅: "网络爬虫性能提升与功能拓展的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294393A (zh) * 2015-05-20 2017-01-04 天脉聚源(北京)科技有限公司 一种网络搜索的方法和系统
CN105677918B (zh) * 2016-03-03 2019-02-15 浪潮软件股份有限公司 一种基于Kafka和Quartz的分布式爬虫架构及其实现方法
CN105677918A (zh) * 2016-03-03 2016-06-15 浪潮软件股份有限公司 一种基于Kafka和Quartz的分布式爬虫架构及其实现方法
CN106953780A (zh) * 2017-03-15 2017-07-14 重庆邮电大学 一种支持网络产品信息查询的众核平台深度包检测装置及方法
CN106953780B (zh) * 2017-03-15 2020-04-07 重庆邮电大学 一种支持网络产品信息查询的众核平台深度包检测装置及方法
CN108063759A (zh) * 2017-12-05 2018-05-22 西安交大捷普网络科技有限公司 web漏洞扫描方法
CN108063759B (zh) * 2017-12-05 2022-08-16 西安交大捷普网络科技有限公司 Web漏洞扫描方法
CN109670099A (zh) * 2018-12-21 2019-04-23 全通教育集团(广东)股份有限公司 基于教育网络信息主题采集方法
CN112422707A (zh) * 2020-10-22 2021-02-26 北京安博通科技股份有限公司 域名数据挖掘方法、装置及Redis服务器
CN114817677A (zh) * 2021-01-21 2022-07-29 中国移动通信有限公司研究院 一种爬虫调度方法、装置及系统
CN113238711A (zh) * 2021-04-17 2021-08-10 西安电子科技大学 一种电子数据取证领域中高效的哈希计算方法
CN113238711B (zh) * 2021-04-17 2024-02-02 西安电子科技大学 一种电子数据取证领域中高效的哈希计算方法
CN114297463A (zh) * 2021-12-20 2022-04-08 中孚信息股份有限公司 数据爬取方法、系统、计算机可读存储介质及电子设备
CN114417216A (zh) * 2022-01-04 2022-04-29 马上消费金融股份有限公司 数据采集方法、装置、电子设备及可读存储介质
CN114417216B (zh) * 2022-01-04 2022-11-29 马上消费金融股份有限公司 数据采集方法、装置、电子设备及可读存储介质
CN114900487A (zh) * 2022-05-27 2022-08-12 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统
CN114900487B (zh) * 2022-05-27 2023-12-19 深圳铸泰科技有限公司 基于内存设计优化流量抓取方法及系统

Also Published As

Publication number Publication date
CN103678571B (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
CN103678571A (zh) 应用于单台多核处理器主机的多线程网络爬虫执行方法
Seshadri et al. Simple operations in memory to reduce data movement
Hadidi et al. Cairo: A compiler-assisted technique for enabling instruction-level offloading of processing-in-memory
US9619430B2 (en) Active non-volatile memory post-processing
Condie et al. Online aggregation and continuous query support in mapreduce
CN101652758B (zh) 分级式不可变内容可寻址存储器处理器
Zhang et al. Exploiting commutativity to reduce the cost of updates to shared data in cache-coherent systems
Negrevergne et al. Discovering closed frequent itemsets on multicore: Parallelizing computations and optimizing memory accesses
Mutlu Main memory scaling: Challenges and solution directions
CN105493041A (zh) 在访问动态类型化对象过程中的并发内联高速缓存优化
CN107278296A (zh) 用于响应于事务执行生成跟踪数据的装置和方法
US20140195771A1 (en) Anticipatorily loading a page of memory
Lee et al. Buffered compares: Excavating the hidden parallelism inside DRAM architectures with lightweight logic
Bhatotia Incremental parallel and distributed systems
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
Marinelli et al. Microarchitectural exploration of STT-MRAM last-level cache parameters for energy-efficient devices
JP5687603B2 (ja) プログラム変換装置、プログラム変換方法、および変換プログラム
Ahangari et al. HLS-based high-throughput and work-efficient synthesizable graph processing template pipeline
Breß et al. Exploring the design space of a GPU-aware database architecture
Awan Performance characterization and optimization of in-memory data analytics on a scale-up server
Asiatici et al. Request, coalesce, serve, and forget: Miss-optimized memory systems for bandwidth-bound cache-unfriendly applications on FPGAs
Ungethüm et al. Overview on hardware optimizations for database engines
Lee et al. Excavating the hidden parallelism inside DRAM architectures with buffered compares
Mani et al. A combinatorial distributed architecture for exascale computing
Wang et al. AtRec: Accelerating Recommendation Model Training on CPUs

Legal Events

Date Code Title Description
PB01 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230105

Address after: 510000 room 606-609, compound office complex building, No. 757, Dongfeng East Road, Yuexiu District, Guangzhou City, Guangdong Province (not for plant use)

Patentee after: China Southern Power Grid Internet Service Co.,Ltd.

Address before: Room 301, No. 235, Kexue Avenue, Huangpu District, Guangzhou, Guangdong 510000

Patentee before: OURCHEM INFORMATION CONSULTING CO.,LTD.

Effective date of registration: 20230105

Address after: Room 301, No. 235, Kexue Avenue, Huangpu District, Guangzhou, Guangdong 510000

Patentee after: OURCHEM INFORMATION CONSULTING CO.,LTD.

Address before: 1068 No. 518055 Guangdong city in Shenzhen Province, Nanshan District City Xili University School Avenue

Patentee before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES