CN117807294A - 一种多线程网络爬虫调度管理方法及系统 - Google Patents
一种多线程网络爬虫调度管理方法及系统 Download PDFInfo
- Publication number
- CN117807294A CN117807294A CN202410218377.8A CN202410218377A CN117807294A CN 117807294 A CN117807294 A CN 117807294A CN 202410218377 A CN202410218377 A CN 202410218377A CN 117807294 A CN117807294 A CN 117807294A
- Authority
- CN
- China
- Prior art keywords
- picture
- crawled
- crawler
- thread
- pictures
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 26
- 230000009193 crawling Effects 0.000 claims abstract description 78
- 238000012417 linear regression Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000001419 dependent effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000012552 review Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 230000009194 climbing Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于爬虫调度管理技术领域,本发明公开了一种多线程网络爬虫调度管理方法及系统,包括:S1、采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;S2、获取待爬取网页,基于待爬取网页创建实时图片爬虫任务。通过构建图片查重模型,避免存储相同的图片,能减少对重复图片的爬取;通过构建多元线性回归模型,便于实时图片爬虫任务选择合适的线程池规模量;对线程池内线程速度较快的线程进行确定,能够对线程池内的线程进行调度管理,进而提升爬取的效率。
Description
技术领域
本发明涉及爬虫调度管理技术领域,更具体地说,本发明涉及一种多线程网络爬虫调度管理方法及系统。
背景技术
随着互联网的不断发展,网络爬虫在信息获取和数据分析等方向发挥着重要作用,传统的单线程爬虫在处理大规模数据时存在效率低下的问题,因此多线程网络爬虫调度管理方法及系统应运而生,旨在提高爬虫系统的并发处理能力、加速数据采集速度,并有效解决大规模数据爬取任务的挑战。
现有的大部分多线程网络爬虫工具在对相同的网页进行爬取时,这些网页内的图片可能存在部分更新或者不更新的情况,当对这些未更新的图片进行再次爬取存储时,容易获得相同图片,容易浪费云服务器的存储空间;并且,不便根据历史图片爬虫任务对实时图片爬虫任务选择合适的线程池规模量。
鉴于此,本发明提出一种多线程网络爬虫调度管理方法及系统以解决上述问题。
发明内容
为了克服现有技术的上述缺陷,为实现上述目的,本发明提供如下技术方案:一种多线程网络爬虫调度管理方法,包括:
S1、采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
S2、获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
S3、基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
S4、对爬取图片以及待爬取图片对应的相同图片编码进行存储。
进一步地,所述采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型,包括:
S10、将爬取网页内含有图片标签超过Z个的爬虫任务记为历史图片爬虫任务;
S11、采集多个历史图片爬虫任务对应的图片标签数量、URL数量、线程池规模量和爬取时间;
S12、将同一历史图片爬虫任务内的图片标签数量、线程池规模量、URL数量、爬取时间组成一个样本,将同一历史图片爬虫任务内的图片标签数量、爬取时间、URL数量作为自变量,将同一历史图片爬虫任务内的线程池规模量作为因变量,将同一历史图片爬虫任务内的自变量、因变量输入多元线性回归模型中;
S13、预设为线程池规模量,为截距项,为图片标签数量,为图片标
签数量的回归系数,为URL数量,为URL数量的回归系数,为爬取时间,为爬取
时间的回归系数,是误差项,通过最小二乘法计算、、的回归系数,那么,得到多
元线性回归关系式为:
。
进一步地,所述S1中,基于历史图片爬虫任务构建图片库,包括:
S20、创建一个图片库,并在该图片库中创建一个表,表中每张图片的相关信息包括:唯一标识符id、图片的URL、图片的编码名称encoded_name以及是否被删除的标记is_deleted;
S21、对爬取的图片进行编码,生成唯一的编码名称;
S22、使用爬虫工具爬取目标网站的图片,将爬取的图片存储到图片库中,图片库设置在云服务器内;
S23、将表中每张图片的相关信息插入到图片库中,每张图片的id唯一。
进一步地,所述构建图片查重模型,通过图片查重模型对图片库内的图片进行查重,包括:
通过图片查重模型对图片库内的图片进行查重:将图片库中的图片逐一输入图片查重模型进行查重,得到每张图片的4个哈希值,将每张图片的4个哈希值与图片编码进行关联映射,利用哈希索引对图片库中的图片进行查重,检测是否存在相同哈希值的图片,若存在相同哈希值的图片,则对其进行删除,保留一张相同哈希值的图片;
其中,图片查重模型具体包括:
将需要查重的图片记为待查重图片,对待查重图片进行归一化处理;
将待查重图片分割成N个子图像,其中,N大于等于4,对4个子图像进行不同比例的缩小,以获得4个子图像,4个子图像分别命名为N1、N2、N3、N4;
将分割得到的N1、N2、N3、N4的子图像转换为灰度图像,得到4个灰度图像,4个灰度图像分别命名为H1、H2、H3、H4;
分别计算H1、H2、H3、H4对应4个灰度图像的平均灰度值;
遍历每一灰度图像的每个像素,将每个像素的灰度值与每一灰度图像的平均灰度值进行比较,将4个比对结果依次生成四个二进制串,得到待查重图片的4个哈希值;
利用哈希索引,检测图片库是否存在相同哈希值的图片;
若存在相同哈希值的图片,则认为待查重图片与图片库中的图片相同,无需爬取;若不存在相同哈希值的图片,则判定其为非相同图片,需要爬取。
进一步地,所述获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量,包括:
S40、确定待爬取网页,通过待爬取网页创建实时图片爬虫任务,获取待爬取网页的当前URL;
S41、通过网页解析器对当前URL进行解析,得到当前URL数量和当前图片标签数量;
S42、获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,记为相似历史图片爬虫任务,将相似历史图片爬虫任务的爬取时间记为当前爬取时间;
S43、将当前URL数量、当前图片标签数量、当前爬取时间代入多元线性回归关系式,得到线程池规模量;
其中,获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,包括:
S420、将历史图片爬虫任务构成一个列表,每个历史图片爬虫任务作为一行,每行历史图片爬虫对应有图片标签数量、线程池规模量、URL数量、爬取时间;
S421、通过绝对差值计算实时图片爬虫任务与历史图片爬虫任务中图片标签数量、URL数量的相似度;
S422、将相似度值最高的历史图片爬虫任务记为相似历史图片爬虫任务。
进一步地,所述基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片,包括;
S50、使用线程池规模量创建用于待爬取网页的线程池,爬虫工具将当前URL按照分解策略生成多个子URL,并将每个子URL创建为一个任务分配给线程池,线程池对任务进行管理,并通过线程执行相应的爬取逻辑,其中,每个子URL对应待爬取网页内的一张图片;
S51、通过线程池当前管理的线程对待爬取网页内的图片进行爬取,将待爬取网页内的图片记为待爬取图片;
S52、在对待爬取图片爬取的过程中,通过图片查重模型对待爬取图片进行查重。
进一步地,所述线程池对任务进行管理,并通过线程执行相应的爬取逻辑,包括:
S500、记录线程的开始时间、当前时间和线程进度,将开始时间到当前时间的时间差值记为线程到当前进度所消耗的时间;
S501、根据线程到当前进度所消耗的时间和进度计算线程速度,得到线程速度,将线程速度由高到低进行列表排序,计算线程速度的公式为:
,
其中,为线程速度、为线程进度、为线程到当前进度所消耗的时间;
S502、根据线程速度为每个子URL分配优先级,将速度较快的线程优先分配给带有图片标签的子URL;
S503、获取带有图片标签的子URL,获取子URL对应图片的图片像素,将图片像素按照由高到低进行排序,按照排序将子URL优先分配给速度较快的线程。
进一步地,所述通过图片查重模型对待爬取图片进行查重,包括:
S520、通过图片查重模型对待爬取图片进行处理,提取出待爬取图片的4个哈希值;
S521、计算待爬取图片的4个哈希值,利用哈希索引,对待爬取图片的4个哈希值进行查重,检测图片库内是否存在相同哈希值的图片,若存在相同的哈希值,则判定待爬取图片为相同图片;若不存在相同的哈希值,则判定其为非相同图片,对非相同图片进行爬取,将其记为爬取图片。
进一步地,所述对爬取图片以及待爬取图片对应的相同图片编码进行存储,包括:
S60、若存在相同图片,则将相同图片的编码存储至待爬取图片对应的下载线程存储的位置,并将线程池中与待爬取图片对应的线程进行删除;
S61、若为爬取图片,则无需对线程进行更改,将爬取图片存储至图片库中;
其中,在将图片库中相同图片的编码存储至待爬取图片对应的下载线程存储的位置时,需要获取待爬取图片与相同图片的缩放比例,将缩放比例与相同图片进行关联。
一种多线程网络爬虫调度管理系统,包括:
构建模块,采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
获取模块,获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
创建线程池爬取模块,基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
存储模块,对爬取图片以及待爬取图片对应的相同图片编码进行存储。
本发明一种多线程网络爬虫调度管理方法及系统的技术效果和优点:
1.通过构建图片查重模型,便于对图片库内的图片进行查重,避免存储相同的图片,减少对重复图片的爬取,有效地节省图片库所占用云服务器的存储空间,通过将图片分割成N个子图像,对4个子图像进行不同比例的缩小,从而改善哈希算法在进行查重比对时存在的精确度较差的情况,提升其比对精确度;通过构建多元线性回归模型,能够根据历史图片爬虫任务内的图片标签数量、URL数量、爬取时间对线程池规模量进行预测,便于实时图片爬虫任务选择合适的线程池规模量;
2.通过使用线程池规模量创建用于待爬取网页的线程池,能够对线程池进行固定,减少线程失控的情况,有效地控制系统中并发线程的数量;通过获取线程速度,将线程速度由高到低进行列表排序,则能对线程池内线程速度较快的线程进行确定,以便于后续的优先分配;其中,可将线程速度较快的优先分配给带有图片标签的子URL,若同时存在多个带有图片标签的子URL,则按照图片像素按照由高到低进行排序,按照这个排序将子URL优先分配给速度较快的线程,便于线程池优先对像素最大的带有图片标签的子URL进行处理,从而对线程池内的线程进行调度管理,提升爬取的效率。
附图说明
图1为本发明的一种多线程网络爬虫调度管理方法的流程示意图;
图2为本发明的图片查重模型的流程示意图;
图3为一种多线程网络爬虫调度管理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参阅图1和图2所示,本实施例一种多线程网络爬虫调度管理方法,包括:
S1、采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型,包括:
S10、将爬取网页内含有图片标签超过Z个的爬虫任务记为历史图片爬虫任务,其中,Z大于等于50,Z的值也可自行设置,图片标签一般为<img>、<figure>等表示图片的代码,其中,图片对应的URL需要通过HTML解析器解析网页,找到图片的标签(如<img>),并获取其src属性值(即图片的URL);
S11、采集多个历史图片爬虫任务对应的图片标签数量、URL数量、线程池规模量和爬取时间;
S12、将同一历史图片爬虫任务内的图片标签数量、线程池规模量、URL数量、爬取时间组成一个样本,将同一历史图片爬虫任务内的图片标签数量、爬取时间、URL数量作为自变量,将同一历史图片爬虫任务内的线程池规模量作为因变量,将同一历史图片爬虫任务内的自变量、因变量输入多元线性回归模型中;
S13、预设为线程池规模量,为截距项,为图片标签数量,为图片标
签数量的回归系数,为URL数量,为URL数量的回归系数,为爬取时间,为爬取
时间的回归系数,是误差项,通过最小二乘法计算、、的回归系数,那么,得到多
元线性回归关系式为:
;
其中,线程池规模量为每一历史图片爬虫任务中运行的最大线程数,线程池规模量代表线程池大小,最大线程数不超过爬虫工具所在运行系统的最大线程数;若存在大于1个的图片标签数量相同、URL数量相同的历史图片爬虫任务,则将最短爬取时间对应的历史图片爬虫任务中的最大线程数记为线程池规模量。
多元线性回归模型的训练过程为:
收集多个历史图片爬虫任务的数据,包括每个任务的图片标签数量、URL数量、线程池规模量、爬取时间;将收集到的数据整理成一个表格,每一行代表一个
任务,包括任务的自变量(、、)和因变量():
将同一历史图片爬虫任务内的数据组成一个样本,每个样本包含图片标签数量、URL数量、爬取时间作为自变量,将线程池规模量作为因变量;
使用多元线性回归模型,将自变量和因变量输入模型,多元线性回归模型的形式为:
;
通过最小二乘法,计算回归系数、、、,使得残差平方和最小化;
S1中,基于历史图片爬虫任务构建图片库,包括:
S20、创建一个图片库,并在该图片库中创建一个表(用于存储图片的相关信息),表中每张图片的相关信息包括:唯一标识符id、图片的URL、图片的编码名称encoded_name以及是否被删除的标记is_deleted(其中未删除的不进行标记);
S21、对爬取的图片进行编码,生成唯一的编码名称;
S22、使用爬虫工具爬取目标网站的图片,将爬取的图片存储到图片库中,图片库设置在云服务器内;
S23、将表中每张图片的相关信息插入到图片库中,每张图片的id唯一。
构建图片查重模型,通过图片查重模型对图片库内的图片进行查重,包括:
通过图片查重模型对图片库内的图片进行查重:将图片库中的图片逐一输入图片查重模型进行查重,得到每张图片的4个哈希值,将每张图片的4个哈希值与图片编码进行关联映射,利用哈希索引对图片库中的图片进行查重,检测是否存在相同哈希值的图片,若存在相同哈希值的图片,则对其进行删除,保留一张相同哈希值的图片;
其中,图片查重模型具体包括:
S300、将需要查重的图片记为待查重图片,对待查重图片进行归一化处理;
S301、将待查重图片分割成N个子图像,其中,图片分割为均等分割,即每个分割后的子图像面积相同,N大于等于4,N个子图像一般不超过爬虫工具所运行系统的最大线程数,对4个子图像进行不同比例的缩小,缩小为图片长、宽等比缩小,例如,不同比例的缩小可分别为0.7、0.5、0.3、0.2,以获得4个子图像,4个子图像分别命名为N1、N2、N3、N4,命名次序依次是从左到右、从上到下,图片库中每个图片的命名次序均相同;
S302、将分割得到的N1、N2、N3、N4的子图像转换为灰度图像,得到4个灰度图像,4个灰度图像分别命名为H1、H2、H3、H4;
S303、分别计算H1、H2、H3、H4对应4个灰度图像的平均灰度值;
S304、遍历每一灰度图像的每个像素,将每个像素的灰度值与每一灰度图像的平均灰度值进行比较(其中,将大于平均灰度值的标记为1,小于平均灰度值的标记为0,即可得到比较结果),将4个比对结果依次生成四个二进制串,得到待查重图片的4个哈希值;
S305、利用哈希索引,检测图片库是否存在相同哈希值的图片;
S306、若存在相同哈希值的图片,则认为待查重图片与图片库中的图片相同,无需爬取;若不存在相同哈希值的图片,则判定其为非相同图片,需要爬取;
其中,S305~S306也可采用下述步骤进行判断是否存在相同图片:
A1、计算待查重图片的4个哈希值,获取待查重图片4个哈希值与图片库中每个图片4个哈希值的汉明距离;
A2、若汉明距离为0,则认为待查重图片与图片库中的图片相同,无需获取,将图片库中相同的图片记为相同图片;若汉明距离不同,则判定其为非相同图片。
S2、获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量,包括:
S40、确定待爬取网页,通过待爬取网页创建实时图片爬虫任务,获取待爬取网页的当前URL;
S41、通过网页解析器对当前URL进行解析,得到当前URL数量和当前图片标签数量;
S42、获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,记为相似历史图片爬虫任务,将相似历史图片爬虫任务的爬取时间记为当前爬取时间;
S43、将当前URL数量、当前图片标签数量、当前爬取时间代入多元线性回归关系式,得到线程池规模量。
其中,线程池规模量在实时图片爬虫任务中为固定线程池;
其中,获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,包括:
S420、将历史图片爬虫任务构成一个列表,每个历史图片爬虫任务作为一行,每行历史图片爬虫对应有图片标签数量、线程池规模量、URL数量、爬取时间;
S421、通过绝对差值计算实时图片爬虫任务与历史图片爬虫任务中图片标签数量、URL数量的相似度;
其中,计算每个数字与集合中的每个数字的绝对差值,然后将差值进行比较,绝对差值越小,相似度越高。
例如,将历史图片爬虫任务构成一个列表,每个历史图片爬虫任务作为一行,将历史图片爬虫对应的图片标签数量、线程池规模量、URL数量、爬取时间与历史图片爬虫任务填写在一行;
针对实时图片爬虫任务的实时值(图片标签数量、URL数量),分别计算其与历史图片爬虫任务列表中每个任务的历史值(图片标签数量、URL数量)的绝对差值,绝对差值可以使用以下公式表示:
绝对差值=|实时值-历史值|,
计算相似度:将实时图片爬虫任务的图片标签数量绝对差值和URL数量绝对差值分别归一化(比如,除以相应的范围或标准差),综合考虑两者的相似度,使用权重分配来调整图片标签数量和URL数量在相似度计算中的贡献度,相似度计算公式如下:
,
其中,和分别是图片标签数量的权重、URL数量相似度的权重;
将计算得到的相似度值进行比较,得到相似度最大的历史图片爬虫任务;
S422、将相似度值最高的历史图片爬虫任务记为相似历史图片爬虫任务;
本实施例,通过构建图片查重模型,便于对图片库内的图片进行查重,避免存储相同的图片,减少对重复图片的爬取,有效地节省图片库所占用云服务器的存储空间,通过将图片分割成N个子图像,对4个子图像进行不同比例的缩小,从而改善哈希算法在进行查重比对时存在的精确度较差的情况,提升其比对精确度;通过构建多元线性回归模型,能够根据历史图片爬虫任务内的图片标签数量、URL数量、爬取时间对线程池规模量进行预测,便于实时图片爬虫任务选择合适的线程池规模量。
实施例2
请参阅图1所示,本实施例一种多线程网络爬虫调度管理方法,包括:
S3、基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片,包括;
S50、使用线程池规模量创建用于待爬取网页的线程池,爬虫工具将当前URL按照分解策略生成多个子URL,并将每个子URL创建为一个任务分配给线程池,线程池对任务进行管理,并通过线程执行相应的爬取逻辑,其中,每个子URL对应待爬取网页内的一张图片;
S51、通过线程池当前管理的线程对待爬取网页内的图片进行爬取,将待爬取网页内的图片记为待爬取图片;
S52、在对待爬取图片爬取的过程中,通过图片查重模型对待爬取图片进行查重;
线程池对任务进行管理,并通过线程执行相应的爬取逻辑,包括:
S500、记录线程的开始时间、当前时间和线程进度,将开始时间到当前时间的时间差值记为线程到当前进度所消耗的时间;
其中,线程进度为任务已完成的百分比,可通过单位时间内已处理的URL数量或已下载的图片数量计算得出;
S501、根据线程到当前进度所消耗的时间和进度计算线程速度,得到线程速度,将线程速度由高到低进行列表排序,计算线程速度的公式为:
,
其中,为线程速度、为线程进度、为线程到当前进度所消耗的时间;
S502、根据线程速度为每个子URL分配优先级,将速度较快的线程优先分配给带有图片标签的子URL;
S503、获取带有图片标签的子URL,获取子URL对应图片的图片像素,将图片像素按照由高到低进行排序,按照排序将子URL优先分配给速度较快的线程;
通过图片查重模型对待爬取图片进行查重,包括:
S520、通过图片查重模型对待爬取图片进行处理,提取出待爬取图片的4个哈希值;
S521、计算待爬取图片的4个哈希值,利用哈希索引,对待爬取图片的4个哈希值进行查重,检测图片库内是否存在相同哈希值的图片,若存在相同的哈希值,则判定待爬取图片为相同图片;若不存在相同的哈希值,则判定其为非相同图片,对非相同图片进行爬取,将其记为爬取图片。
S4、对爬取图片以及待爬取图片对应的相同图片编码进行存储;
对爬取图片以及待爬取图片对应的相同图片编码进行存储,包括:
S60、若存在相同图片,则将相同图片的编码存储至待爬取图片对应的下载线程存储的位置,并将线程池中与待爬取图片对应的线程进行删除;
S61、若为爬取图片,则无需对线程进行更改,将爬取图片存储至图片库中;
其中,在将图片库中相同图片的编码存储至待爬取图片对应的下载线程存储的位置时,需要获取待爬取图片与相同图片的缩放比例,将缩放比例与相同图片进行关联。
本实施例,通过使用线程池规模量创建用于待爬取网页的线程池,能够对线程池进行固定,减少线程失控的情况,有效地控制系统中并发线程的数量;通过获取线程速度,将线程速度由高到低进行列表排序,则能对线程池内线程速度较快的线程进行确定,以便于后续的优先分配;其中,可将线程速度较快的优先分配给带有图片标签的子URL,若同时存在多个带有图片标签的子URL,则按照图片像素按照由高到低进行排序,按照这个排序将子URL优先分配给速度较快的线程,便于线程池优先对像素最大的带有图片标签的子URL进行处理,从而对线程池内的线程进行调度管理,提升爬取的效率。
实施例3
请参阅图3所示,本实施例未详细叙述部分见实施例1描述内容,提供用于多线程网络爬虫调度管理方法的多线程网络爬虫调度管理系统,包括:
构建模块,采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
获取模块,获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
创建线程池爬取模块,基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
存储模块,对爬取图片以及待爬取图片对应的相同图片编码进行存储。
本实施例,通过历史图片爬虫任务构建多元线性回归模型与图片库,能够对线程池规模量进行预测,便于实时图片爬虫任务选择合适的线程池规模量;通过获取线程速度,将线程速度由高到低进行列表排序,则能对线程池内线程速度较快的线程进行确定,以便于后续的优先分配,便于线程池优先对像素最大的带有图片标签的子URL进行处理,从而对线程池内的线程进行调度管理,提升爬取的效率。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
上述公式均是去量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最近真实情况的一个公式,公式中的预设参数以及阈值选取由本领域的技术人员根据实际情况进行设置。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术用户来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种多线程网络爬虫调度管理方法,其特征在于,包括:
S1、采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
S2、获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
S3、基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
S4、对爬取图片以及待爬取图片对应的相同图片编码进行存储。
2.根据权利要求1所述的多线程网络爬虫调度管理方法,其特征在于,所述采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型,包括:
S10、将爬取网页内含有图片标签超过Z个的爬虫任务记为历史图片爬虫任务;
S11、采集多个历史图片爬虫任务对应的图片标签数量、URL数量、线程池规模量和爬取时间;
S12、将同一历史图片爬虫任务内的图片标签数量、线程池规模量、URL数量、爬取时间组成一个样本,将同一历史图片爬虫任务内的图片标签数量、爬取时间、URL数量作为自变量,将同一历史图片爬虫任务内的线程池规模量作为因变量,将同一历史图片爬虫任务内的自变量、因变量输入多元线性回归模型中;
S13、预设为线程池规模量,/>为截距项,/>为图片标签数量,/>为图片标签数量的回归系数,/>为URL数量,/>为URL数量的回归系数,/>为爬取时间,/>为爬取时间的回归系数,/>是误差项,通过最小二乘法计算/>、/>、/>的回归系数,得到多元线性回归关系式为:
。
3.根据权利要求1所述的多线程网络爬虫调度管理方法,其特征在于,所述S1中,基于历史图片爬虫任务构建图片库,包括:
S20、创建一个图片库,并在该图片库中创建一个表,表中每张图片的相关信息包括:唯一标识符id、图片的URL、图片的编码名称encoded_name以及是否被删除的标记is_deleted;
S21、对爬取的图片进行编码,生成唯一的编码名称;
S22、使用爬虫工具爬取目标网站的图片,将爬取的图片存储到图片库中,图片库设置在云服务器内;
S23、将表中每张图片的相关信息插入到图片库中,每张图片的id唯一。
4.根据权利要求2所述的多线程网络爬虫调度管理方法,其特征在于,所述构建图片查重模型,通过图片查重模型对图片库内的图片进行查重,包括:
通过图片查重模型对图片库内的图片进行查重:将图片库中的图片逐一输入图片查重模型进行查重,得到每张图片的4个哈希值,将每张图片的4个哈希值与图片编码进行关联映射,利用哈希索引对图片库中的图片进行查重,检测是否存在相同哈希值的图片,若存在相同哈希值的图片,则对其进行删除,保留一张相同哈希值的图片;
其中,图片查重模型具体包括:
将需要查重的图片记为待查重图片,对待查重图片进行归一化处理;
将待查重图片分割成N个子图像,其中,N大于等于4,对4个子图像进行不同比例的缩小,以获得4个子图像,4个子图像分别命名为N1、N2、N3、N4;
将分割得到的N1、N2、N3、N4的子图像转换为灰度图像,得到4个灰度图像,4个灰度图像分别命名为H1、H2、H3、H4;
分别计算H1、H2、H3、H4对应4个灰度图像的平均灰度值;
遍历每一灰度图像的每个像素,将每个像素的灰度值与每一灰度图像的平均灰度值进行比较,将4个比对结果依次生成四个二进制串,得到待查重图片的4个哈希值;
利用哈希索引,检测图片库是否存在相同哈希值的图片;
若存在相同哈希值的图片,则认为待查重图片与图片库中的图片相同,无需爬取;若不存在相同哈希值的图片,则判定其为非相同图片,需要爬取。
5.根据权利要求4所述的多线程网络爬虫调度管理方法,其特征在于,所述获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量,包括:
S40、确定待爬取网页,通过待爬取网页创建实时图片爬虫任务,获取待爬取网页的当前URL;
S41、通过网页解析器对当前URL进行解析,得到当前URL数量和当前图片标签数量;
S42、获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,记为相似历史图片爬虫任务,将相似历史图片爬虫任务的爬取时间记为当前爬取时间;
S43、将当前URL数量、当前图片标签数量、当前爬取时间代入多元线性回归关系式,得到线程池规模量;
其中,获取与当前URL数量、当前图片标签数量相似的历史图片爬虫任务,包括:
S420、将历史图片爬虫任务构成一个列表,每个历史图片爬虫任务作为一行,每行历史图片爬虫对应有图片标签数量、线程池规模量、URL数量、爬取时间;
S421、通过绝对差值计算实时图片爬虫任务与历史图片爬虫任务中图片标签数量、URL数量的相似度;
S422、将相似度值最高的历史图片爬虫任务记为相似历史图片爬虫任务。
6.根据权利要求5所述的多线程网络爬虫调度管理方法,其特征在于,所述基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片,包括;
S50、使用线程池规模量创建用于待爬取网页的线程池,爬虫工具将当前URL按照分解策略生成多个子URL,并将每个子URL创建为一个任务分配给线程池,线程池对任务进行管理,并通过线程执行相应的爬取逻辑,其中,每个子URL对应待爬取网页内的一张图片;
S51、通过线程池当前管理的线程对待爬取网页内的图片进行爬取,将待爬取网页内的图片记为待爬取图片;
S52、在对待爬取图片爬取的过程中,通过图片查重模型对待爬取图片进行查重。
7.根据权利要求6所述的多线程网络爬虫调度管理方法,其特征在于,所述线程池对任务进行管理,并通过线程执行相应的爬取逻辑,包括:
S500、记录线程的开始时间、当前时间和线程进度,将开始时间到当前时间的时间差值记为线程到当前进度所消耗的时间;
S501、根据线程到当前进度所消耗的时间和进度计算线程速度,得到线程速度,将线程速度由高到低进行列表排序,计算线程速度的公式为:
,
其中,为线程速度、/>为线程进度、/>为线程到当前进度所消耗的时间;
S502、根据线程速度为每个子URL分配优先级,将速度较快的线程优先分配给带有图片标签的子URL;
S503、获取带有图片标签的子URL,获取子URL对应图片的图片像素,将图片像素按照由高到低进行排序,按照排序将子URL优先分配给速度较快的线程。
8.根据权利要求6所述的多线程网络爬虫调度管理方法,其特征在于,所述通过图片查重模型对待爬取图片进行查重,包括:
S520、通过图片查重模型对待爬取图片进行处理,提取出待爬取图片的4个哈希值;
S521、计算待爬取图片的4个哈希值,利用哈希索引,对待爬取图片的4个哈希值进行查重,检测图片库内是否存在相同哈希值的图片,若存在相同的哈希值,则判定待爬取图片为相同图片;若不存在相同的哈希值,则判定其为非相同图片,对非相同图片进行爬取,将其记为爬取图片。
9.根据权利要求8所述的多线程网络爬虫调度管理方法,其特征在于,所述对爬取图片以及待爬取图片对应的相同图片编码进行存储,包括:
S60、若存在相同图片,则将相同图片的编码存储至待爬取图片对应的下载线程存储的位置,并将线程池中与待爬取图片对应的线程进行删除;
S61、若为爬取图片,则无需对线程进行更改,将爬取图片存储至图片库中;
其中,在将图片库中相同图片的编码存储至待爬取图片对应的下载线程存储的位置时,需要获取待爬取图片与相同图片的缩放比例,将缩放比例与相同图片进行关联。
10.一种多线程网络爬虫调度管理系统,其基于权利要求1至9中任一项所述的一种多线程网络爬虫调度管理方法,其特征在于,包括:
构建模块,采集历史图片爬虫任务,基于历史图片爬虫任务构建多元线性回归模型与图片库,构建图片查重模型,通过图片查重模型对图片库内的图片进行查重;
获取模块,获取待爬取网页,基于待爬取网页创建实时图片爬虫任务,通过多元线性回归模型对实时图片爬虫任务进行分析,得到线程池规模量;
创建线程池爬取模块,基于线程池规模量创建线程池,通过线程池当前管理的任务对待爬取图片进行爬取,得到爬取图片;
存储模块,对爬取图片以及待爬取图片对应的相同图片编码进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218377.8A CN117807294B (zh) | 2024-02-28 | 2024-02-28 | 一种多线程网络爬虫调度管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218377.8A CN117807294B (zh) | 2024-02-28 | 2024-02-28 | 一种多线程网络爬虫调度管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807294A true CN117807294A (zh) | 2024-04-02 |
CN117807294B CN117807294B (zh) | 2024-05-28 |
Family
ID=90423614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410218377.8A Active CN117807294B (zh) | 2024-02-28 | 2024-02-28 | 一种多线程网络爬虫调度管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807294B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139747B1 (en) * | 2000-11-03 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | System and method for distributed web crawling |
US20080295107A1 (en) * | 2007-05-23 | 2008-11-27 | Fabrizio Muscarella | Adaptive Thread Pool |
CN104050037A (zh) * | 2014-06-13 | 2014-09-17 | 淮阴工学院 | 一种基于指定电子商务网站的定向爬虫的实现方法 |
CN107305548A (zh) * | 2016-04-18 | 2017-10-31 | 北京国双科技有限公司 | 控制网络爬虫的任务分配方法和装置 |
CN113157410A (zh) * | 2021-03-30 | 2021-07-23 | 北京大米科技有限公司 | 线程池调节方法、装置、存储介质及电子设备 |
CN115016916A (zh) * | 2022-06-30 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 一种线程池调度方法、系统、设备及可读存储介质 |
CN117193992A (zh) * | 2023-11-08 | 2023-12-08 | 浙江大华技术股份有限公司 | 模型训练方法、任务调度方法、装置以及计算机存储介质 |
-
2024
- 2024-02-28 CN CN202410218377.8A patent/CN117807294B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139747B1 (en) * | 2000-11-03 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | System and method for distributed web crawling |
US20080295107A1 (en) * | 2007-05-23 | 2008-11-27 | Fabrizio Muscarella | Adaptive Thread Pool |
CN104050037A (zh) * | 2014-06-13 | 2014-09-17 | 淮阴工学院 | 一种基于指定电子商务网站的定向爬虫的实现方法 |
CN107305548A (zh) * | 2016-04-18 | 2017-10-31 | 北京国双科技有限公司 | 控制网络爬虫的任务分配方法和装置 |
CN113157410A (zh) * | 2021-03-30 | 2021-07-23 | 北京大米科技有限公司 | 线程池调节方法、装置、存储介质及电子设备 |
CN115016916A (zh) * | 2022-06-30 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 一种线程池调度方法、系统、设备及可读存储介质 |
CN117193992A (zh) * | 2023-11-08 | 2023-12-08 | 浙江大华技术股份有限公司 | 模型训练方法、任务调度方法、装置以及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
宋婷婷;: "基于主题的多线程网络爬虫系统的研究", 现代信息科技, no. 07, 10 April 2020 (2020-04-10), pages 91 - 93 * |
Also Published As
Publication number | Publication date |
---|---|
CN117807294B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977817B (zh) | 基于深度学习的动车组车底板螺栓故障检测方法 | |
WO2019218475A1 (zh) | 异常行为对象的识别方法、装置、终端设备及介质 | |
Hsu et al. | Batching orders in warehouses by minimizing travel distance with genetic algorithms | |
CN115908424A (zh) | 基于三维激光扫描的建筑物健康检测方法、系统及介质 | |
CN103729428B (zh) | 一种大数据分类方法及系统 | |
CN107346327A (zh) | 基于监督转移的零样本哈希图片检索方法 | |
WO2022141858A1 (zh) | 行人检测方法、装置、电子设备及存储介质 | |
CN114647741A (zh) | 工艺自动决策和推理方法、装置、计算机设备及存储介质 | |
CN113327136A (zh) | 归因分析方法、装置、电子设备及存储介质 | |
CN114398557A (zh) | 基于双画像的信息推荐方法、装置、电子设备及存储介质 | |
Nokhwal et al. | Accelerating neural network training: A brief review | |
CN113468288B (zh) | 基于人工智能的文本课件的内容抽取方法及相关设备 | |
CN117807294B (zh) | 一种多线程网络爬虫调度管理方法及系统 | |
CN114185914A (zh) | 计算标签数据的补算方法、系统、设备及存储介质 | |
CN112667873A (zh) | 一种适用于多数网站通用采集数据的爬虫系统及方法 | |
CN115952914A (zh) | 一种基于大数据的电力计量运维工作判别规划方法 | |
CN115757464A (zh) | 一种基于深度强化学习的智能物化视图查询方法 | |
CN114417998A (zh) | 数据特征映射方法、装置、设备及存储介质 | |
CN112215336B (zh) | 基于用户行为的数据标注方法、装置、设备及存储介质 | |
Zhang | Similarity image retrieval model based on local feature fusion and deep metric learning | |
CN113312482A (zh) | 问题分类方法、装置、电子设备及可读存储介质 | |
CN112148605A (zh) | 一种基于谱聚类的半监督学习的软件缺陷预测方法 | |
CN101221596A (zh) | 基于图示符的处理系统及处理基于图示符的数据的方法 | |
CN118038025B (zh) | 基于频率域和空间域的雾天目标检测方法、装置以及设备 | |
CN117573803B (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 |