爬取数据自修复方法、装置、设备及介质与流程

文档序号:17477373发布日期:2019-04-20 06:12阅读:252来源:国知局
爬取数据自修复方法、装置、设备及介质与流程

本发明涉及数据修复领域,尤其涉及一种爬取数据自修复方法、装置、设备及计算机可读存储介质。



背景技术:

目前,爬取目标网页改版后需要重新分析html代码和待爬取元素位置,重新修改代码、测试、发版。服务可用性和稳定性降低、人力维护成本高。

目前爬虫解析网页基于css(cascadingstylesheets,层叠样式表)或者xpath(xmlpathlanguage,xml路径语言)来提取页面内容,如果页面改版导致css或者xpath改变,则会导致程序因为找不到目标元素而解析失败报错。在爬取的数据出现错误时,需要重新分析提取到的页面内容,然后修改代码、提交测试、发版等流程,然后再重新进行爬取数据,造成爬取数据的过程过长,爬取数据的效率较低。



技术实现要素:

本发明的主要目的在于提出一种爬取数据自修复方法、装置、设备及计算机可读存储介质,旨在解决现有技术爬取数据的过程过长,爬取数据的效率较低的技术问题。

为实现上述目的,本发明提供一种爬取数据自修复方法,所述方法包括:

启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取;

将爬取到的数据与对应的标准值进行格式对比;

若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;

将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;

根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;

通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;

在距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复。

此外,为实现上述目的,本发明还提供一种爬取数据自修复装置,所述装置包括:

数据爬起模块,用于启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取;

格式对比模块,用于将爬取到的数据与对应的标准值进行格式对比;若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;

输入模块,用于将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;

计算模块,用于根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;

预测模块,用于通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;

数据修复模块,用于在距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复。

此外,为实现上述目的,本发明还提供一种爬取数据自修复设备,所述爬取数据自修复设备包括爬取数据自修复程序,所述爬取数据自修复程序被所述爬取数据自修复设备执行时实现如上所述的爬取数据自修复方法步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有爬取数据自修复程序,所述爬取数据自修复程序被处理器执行时实现如上所述的爬取数据自修复方法的步骤。

本发明提出的爬取数据自修复方法、装置、设备及计算机可读存储介质,启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取;将爬取到的数据与对应的标准值进行格式对比;若所述爬取到的数据与对应的标准值格式一致,则确定所述爬取到的数据为正确数据,并将所述爬取到的数据进行保存;若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;在所述距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复,在爬取数据出错时,不需要重新修改代码、测试、发版,再重新进行爬取,从而加快了爬取数据的速度,提高了爬取数据的效率。

附图说明

图1为本发明爬取数据自修复方法第一实施例的流程示意图;

图2为本发明爬取数据自修复方法第二实施例中通过条件概率大于预设值的样本词语对所述svm分类模型进行训练,获得训练后的svm分类模型的步骤的细化流程示意图;

图3为本发明爬取数据自修复方法第三实施例的流程示意图;

图4为本发明爬取数据自修复方法第五实施例的流程示意图;

图5为本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种爬取数据自修复方法。

参照图1,图1为本发明爬取数据自修复方法第一实施例的流程示意图。

在本实施例中,该方法包括:

步骤s10,启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取;

在本实施例中,启动系统中添加的数据采集器,根据接收到的在网页中爬取数据特征标签,选取爬取数据,并进行数据爬取,具体地,首先启动系统中添加的数据采集器,其中所述数据采集器也可以为安装在浏览器中的数据采集器,其中,数据采集器是用来批量采集网页,论坛等的内容,直接保存到数据或发布到网络的一种信息化工具。可以根据用户设定的规则自动采集原网页,获取格式网页中需要的内容,现在发展成也可以对数据进行处理的工具(系统)。如sqlserver2008性能数据采集器可以让我们创建一个中心数据库来存储性能数据;它包含三个内置数据收集组来收集和存储数据;为了帮助我们识别和排除sqlserver性能相关的问题,我们可以使用其内置的三个报表来查看收集存储的数据。然后根据接收到的爬取条件,选取需要爬取的数据并进行采集,即可获取需要爬取的数据。

步骤s20,将爬取到的数据与对应的标准值进行格式对比;

当爬取到数据之后,将爬取到的数据与对应的标准值进行格式对比,比如当爬取到的数据为日期时,则将爬取到的数据与日期的标准格式进行对比,从而判断爬取到的内容是否正确,可以理解的是,准备格式可以有多种,比如日期的格式可以为2018.07.01,也可以为2018年7月1日等,因此需要将爬取到的数据与多个标准格式进行一一对比,直到判断出爬取到的数据为正确或者错误为止。

步骤s30,若所述爬取到的数据与对应的标准值格式一致,则确定所述爬取到的数据为正确数据,并将所述爬取到的数据进行保存;

步骤s40,若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;

若所述爬取到的数据与对应的标准值格式一致,则确定所述爬取到的数据为正确数据,并将所述爬取到的数据进行保存即可;若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;比如将距离出错数据前后两个、三个或者四个元素提取出来,假设在“在现有系统爬取解析目标网页元素出现错误的时候”这句话中的网页两个子出现乱码时,则可以提取“网页”两个子前后两个元素,即将目标及元素四个元素提取出来;

步骤s50,将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;

然后将提取到的元素输入已训练的rnn神经网络模型中,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;比如将元素目标输入已训练的rnn神经网络模型中后,输出的内容预测值可能为元素、网页、人物等,然后将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;

步骤s60,根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;

根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;

步骤s70,通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;

步骤s80,在距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复。

然后通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素,具体地,将所述目标内容预测值加入到xpath语法及selector选择器中,然后进行执行,即可定位所述目标内容预测值在所述网页中的位置,然后提取所述目标内容预测值及距离目标内容预测值预设值的元素,可以理解的是,这里提取的元素与步骤s40中提取的元素数量上是一致的,比如假设步骤s40中提取的元素数量为距离出错数据前后两个元素,则这里提取的元素为距离目标内容预测值前后两个元素。在所述距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复。

本实施例提出的爬取数据自修复方法,首先启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取,并进行数据爬取;将爬取到的数据与对应的标准值进行格式对比;若所述爬取到的数据与对应的标准值格式一致,则确定所述爬取到的数据为正确数据,并将所述爬取到的数据进行保存;若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;在所述距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复,在爬取数据出错时,不需要重新修改代码、测试、发版,再重新进行爬取,从而加快了爬取数据的速度,提高了爬取数据的效率。

进一步地,参照图2,基于本发明爬取数据自修复方法第一实施例提出本发明爬取数据自修复方法第二实施例。

在本实施例中,所述步骤s50之前的步骤,还包括:

步骤s90,从样本词语库中获取训练所述svm分类模型的样本词语,并将所述样本词语输入公式中,计算所述样本词语的条件概率,其中,p为所述条件概率,c(wi-n-1,……,wi)为所述样本词语的字符串,wi-n-1,……,wi为所述样本词语出现在所述样本词语库中的次数;

在本实施例中,为了提高训练模型的准确性,可以预先对进行模型训练的样本词语进行处理,具体地,首先从样本词语库中获取训练所述svm分类模型的样本词语,并将所述样本词语输入公式中,计算所述样本词语的条件概率,其中,p为所述条件概率,c(wi-n-1,……,wi)为所述样本词语的字符串,wi-n-1,……,wi为所述样本词语出现在所述样本词语库中的次数;即可获得各个样本词语的条件概率;其中,样本词语可以为本公司业务涉及的术语,也可以为公司平常工作中的相关词语,为了提高识别的准确率,可以适当提高样本词语的数量,比如设置样本词语的数量为1000或更多;

步骤s100,利用条件概率大于预设值的样本词语对所述svm分类模型进行训练,获得训练后的svm分类模型。

在得到样本词语的条件概率之后,即可将条件概率与预设值进行对比,然后通过条件概率大于预设值的样本词语对所述svm分类模型进行训练,获得训练后的svm分类模型,从而提高svm分类模型的分类准确性。

进一步地,参照图3,基于本发明爬取数据自修复方法第二实施例提出本发明爬取数据自修复方法第三实施例。

在本实施例中,所述步骤s100包括:

步骤s101,根据预设识别要求定义样本属性,并根据所述样本属性对所述条件概率大于预设值的样本词语进行分类;

在本实施例中,可采用linear-svm(linear-supportvectormachine、线性-支持向量机)的方式进行建立svm分类模型。linear-svm是一种有监督的线性分类算法,属于判别模型的一种(不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类);linear-svm基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面,因此是考虑分类面上(局部边界线附近)的点,即linear-svm不直接依赖于数据分布,从而可在一定限度上降低样本词语不足对模型准确率的不利影响。为训练svm分类模型,首先要获取到样本词语。

步骤s102,以预设比例在所述样本词语中抽取一次训练样本,并在预设坐标系中绘制所述一次训练样本对应的一次特征点;

步骤s103,根据所述特征点的位置和对应的样本属性对所述预设坐标系进行区域划分,并根据区域划分情况获取对应的最近分隔函数;

在进行训练时,先建立一个初始模型,然后根据识别要求定义样本属性,例如,本实施例中对于svm分类模型的识别要求为多种,即判断每个样本词语的含义是什么类型,比如名词,动词,形容词等,则每个样本的属性需要为确定的一个结果(名词,动词,形容词等)。然后通过该样本词语训练得到三分的svm分类模型。在定义了样本词语的多分属性后,即将样本词语分成了多大类。此时,可在样本数据中随机抽取若干比例样本作为一次训练样本,利用这些一次训练样本对初始模型进行训练:在预设坐标系中绘制出各一次训练样本对应的一次特征点,然后根据样本的属性以及特征点所在的位置对预设坐标系进行区域,得到各个比例的区域;然后根据区域的划分情况可得出若干个分隔函数,然后可在这些分隔函数中确定一个最近分隔函数;其中,在一次训练中,该最近分隔函数可以是随机确定,或者通过某些约束条件进行确定。

步骤s104,以所述预设比例在所述样本词语中抽取迭代训练样本,并在预设坐标系中绘制所述迭代训练样本对应的迭代特征点;

步骤s105,通过所述迭代特征点对所述最近分隔函数进行迭代调整,直至所述最近分隔函数的正确分隔率达到预设阈值,获得svm分类模型。

在进行了一次训练后,可再次从样本词语中抽取相同比例样本作为迭代样本,并在该预设坐标系中绘制该迭代特征点,并利用这些迭代特征点对最近分隔函数不断进行调整,从而对svm分类模型不断进行迭代训练,直至其对样本的正确分隔率(识别成功率)达到预设阈值,即认为训练完成,获得svm分类模型。值得说明的是,该预设坐标系,可以是二维坐标系,此时最近分隔函数对应图像为一条直线;而由于词语的复杂性,该预设坐标系也可能是三维以上(此处“以上”包括本数)的坐标系,也就是说,对于二维坐标系下的特征点,可能需要通过核函数(例如径函数)将其投影至高维度坐标系中,再根据各高纬度特征点获取高纬度坐标系下的分隔超平面函数(即分隔函数对应图像为一个超平面)。

进一步地,基于本发明爬取数据自修复方法第二实施例提出本发明爬取数据自修复方法第四实施例。

在本实施例中,所述步骤s50之前的步骤,还包括:

获取条件概率大于预设值的样本词语,并将所述条件概率大于预设值的样本词语输入svm分类模型中进行分类,获得分类后的样本词语;

把分类后的样本词语输入创建好的rnn神经网络模型进行训练,从而获得训练后的rnn神经网络模型。

在本实施例中,在获得条件概率大于预设值的样本词语之后,将所述条件概率大于预设值的样本词语输入svm分类模型中进行分类,获得分类后的样本词语;然后把分类后的样本词语输入创建好的rnn神经网络模型进行训练,从而获得训练后的rnn神经网络模型。

进一步地,参照图4,基于本发明爬取数据自修复方法第一实施例提出本发明爬取数据自修复方法第五实施例。

在本实施例中,所述步骤s80之后的步骤,还包括:

步骤s110,将修复后的数据标识为程序自动识别,并通过后台页面展示,以便人工进行核实;

步骤s120,若通过人工核实,确定为正确数据,则将正确的数据加入到样本词语库中以供再次训练所述svm分类模型及rnn神经网络模型。

在本实施例中,可以将修复后的数据标识为程序自动识别,并通过后台页面展示,以便人工进行核实,若通过人工核实,确定为正确数据,则将正确的数据加入到所述样本词语库中以供再次训练所述svm分类模型及rnn神经网络模型,从而提高svm分类模型及rnn神经网络模型的准确率。

本发明进一步提供一种爬取数据自修复装置,所述装置包括:

数据爬起模块,用于启动系统中添加的数据采集器,根据接收到的爬取数据特征标签,在网页中选取爬取数据,并进行数据爬取;

格式对比模块,用于将爬取到的数据与对应的标准值进行格式对比;若所述爬取到的数据与对应的标准值格式一致,则确定所述爬取到的数据为正确数据,并将所述爬取到的数据进行保存;若所述爬取到的数据与对应的标准值格式不一致,则确定所述爬取到的数据为出错数据,则将距离当前出错数据预设值的元素提取出来;

输入模块,用于将提取到的元素输入已训练的rnn神经网络模型,生成各个元素对应的内容预测值,将所述内容预测值输入svm分类模型,得出所述内容预测值对应的分类;

计算模块,用于根据所述出错数据的格式以及所述内容预测值对应的分类,计算所述出错数据与所述内容预测值的相似度,并挑选相似度最大的内容预测值作为目标内容预测值;

预测模块,用于通过xpath语法及selector选择器定位所述目标内容预测值在所述网页中的位置,并提取所述目标内容预测值及距离目标内容预测值预设值的元素;

数据修复模块,用于在所述距离当前出错数据预设值的元素与距离目标内容预测值预设值的元素一致时,确定所述目标内容预测值为所述出错数据对应的正确数据,并根据所述目标内容预测值对出错数据进行修复。

本发明爬取数据自修复装置的具体实施例与上述爬取数据自修复方法各实施例基本相同,在此不作赘述。

本发明实施例进一步提供一种爬取数据自修复设备。

参照图5,图5为本发明实施例方案涉及的硬件运行环境的设备结构示意图。

如图5所示,该爬取数据自修复设备可以包括:处理器1001,例如cpu,网络接口1002,用户接口1003,存储器1004。这些组件之间的连接通信可以通过通信总线实现。网络接口1002可选的可以包括标准的有线接口(用于连接有线网络)、无线接口(如wi-fi接口、蓝牙接口、红外线接口等,用于连接无线网络)。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口(例如用于连接有线键盘、有线鼠标等)和/或无线接口(例如用于连接无线键盘、无线鼠标)。存储器1004可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。

可选地,该爬取数据自修复设备还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。

本领域技术人员可以理解,图中示出的爬取数据自修复设备结构并不构成对爬取数据自修复设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图5所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块、用户接口模块以及爬取数据自修复程序。其中,操作系统是管理和控制爬取数据自修复设备硬件与软件资源的程序,支持网络通信模块、用户接口模块、爬取数据自修复程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。

在图5所示的爬取数据自修复设备中,网络接口1002主要用于连接数据库,与数据库进行数据通信;用户接口1003主要用于连接客户端(可以理解为用户端),与客户端进行数据通信,如通过窗口展示信息给客户端,或者接收客户端发送的操作信息;而处理器1001可以用于执行存储器1004中存储的爬取数据自修复程序,以实现上述爬取数据自修复的方法各实施例中的步骤,在此不作赘述。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述爬取数据自修复的方法各实施例中的步骤,在此不作赘述。

还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1