CN108345641B - 一种爬取网站数据的方法、存储介质和服务器 - Google Patents
一种爬取网站数据的方法、存储介质和服务器 Download PDFInfo
- Publication number
- CN108345641B CN108345641B CN201810029529.4A CN201810029529A CN108345641B CN 108345641 B CN108345641 B CN 108345641B CN 201810029529 A CN201810029529 A CN 201810029529A CN 108345641 B CN108345641 B CN 108345641B
- Authority
- CN
- China
- Prior art keywords
- verification code
- machine learning
- target
- learning model
- verification
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Image Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种爬取网站数据的方法、存储介质和服务器,用于解决很多网站采取要求输入验证码的方式来屏蔽爬虫系统,导致爬虫系统无法爬取数据的问题。本发明提供的方法包括:向爬取数据的目标网站发起访问请求;在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;在通过所述目标网站的验证后,从所述目标网站上爬取数据。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种爬取网站数据的方法、存储介质和服务器。
背景技术
在互联网环境中,数据是非常重要的一种资产。目前,爬虫系统是有效获取数据的重要途径之一,但是,很多网站都采取要求输入验证码的方式来屏蔽爬虫系统,使得系统无法访问这些网站并完成数据爬取。
发明内容
本发明实施例提供了一种爬取网站数据的方法、存储介质和服务器,能够自动完成目标网站的验证,突破网站对爬取数据的阻碍,使得爬虫系统可以顺利爬取网站上的数据。
第一方面,提供了一种爬取网站数据的方法,包括:
向爬取数据的目标网站发起访问请求;
在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;
根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
在通过所述目标网站的验证后,从所述目标网站上爬取数据。
第二方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:
向爬取数据的目标网站发起访问请求;
在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;
根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
在通过所述目标网站的验证后,从所述目标网站上爬取数据。
第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
向爬取数据的目标网站发起访问请求;
在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;
根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
在通过所述目标网站的验证后,从所述目标网站上爬取数据。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,首先,向爬取数据的目标网站发起访问请求;在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;然后,将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;接着,根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;在通过所述目标网站的验证后,从所述目标网站上爬取数据。在本发明实施例中,在爬取目标网站数据,遇到目标网站要求输入验证码时,可以通过机器学习模型对目标验证码图片进行识别,得到验证码答案,并根据验证码答案自动完成目标网站的验证,突破网站对爬取数据的阻碍,使得爬虫系统可以顺利爬取网站上的数据。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种爬取网站数据的方法一个实施例流程图;
图2为本发明实施例中一种爬取网站数据的方法在一个应用场景下预先训练机器学习模型的流程示意图;
图3为本发明实施例中一种爬取网站数据的方法步骤103在一个应用场景下的流程示意图;
图4为本发明实施例中一种爬取网站数据的装置一个实施例结构图;
图5为本发明一实施例提供的服务器的示意图。
具体实施方式
本发明实施例提供了一种爬取网站数据的方法、存储介质和服务器,用于解决很多网站采取要求输入验证码的方式来屏蔽爬虫系统,导致爬虫系统无法爬取数据的问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种爬取网站数据的方法一个实施例包括:
101、向爬取数据的目标网站发起访问请求;
本实施例中,在需要爬取数据时,需要先向目标网站发起访问请求。本实施例的执行主体可以是终端设备或者服务器,优选地,本实施例中的执行主体为一服务器。
102、在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
可以理解的是,在向目标网站发起访问请求之后,如果该目标网站对爬虫系统有防范,往往要求输入验证码,同时,该目标网站上会生成一目标验证码图片。因此,服务器会接收到目标网站要求输入验证码的反馈信息,然后服务器获取该目标网站上所述反馈信息所对应的目标验证码图片。
103、将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;
服务器在获取到目标验证码图片之后,可以将该目标验证码图片投入预训练好的机器学习模型进行识别。其中,该机器学习模型具体可以是深度学习模型或者SVM向量机学习模型。可知,该机器学习模型是经过大量学习样本预先训练完成的,因此,在输入目标验证码图片之后,可以得到其输出的验证码答案,这里输出的验证码答案即为目标网站要求输入的验证码。
进一步地,如图2所示,所述机器学习模型可以通过以下步骤预先训练得到:
201、获取多个验证码图片;
202、针对每个验证码图片,将所述验证码图片切割成各个包含独立验证码的图片块;
203、对各个所述图片块进行二值化处理;
204、为二值化后的每个图片块标记对应的验证码答案;
205、将各个二值化后的图片块作为输入投入至机器学习模型,得到所述机器学习模型输出的训练答案;
206、将各个训练答案作为目标,调整所述机器学习模型的模型参数,以最小化得到的各个训练答案与各个标记的验证码答案之间的误差;
207、若各个输出的训练答案与各个标记的验证码答案之间的误差率小于预设的阈值,则确定所述机器学习模型训练完成。
对于上述步骤201,在训练机器学习模型之前,需要先收集大量的学习样本,即验证码图片。这些验证码图片可以从网站上爬取得到,也可以人工收集整理得到,此处不作限定。
对于上述步骤202,由于验证码图片中一般包含多个字符,因此,针对每个验证码图片,为了提高机器学习模型的学习效率和识别准确性,可以对验证码图片进行切割处理,将包含多个验证码字符的图片切割成各个包含独立验证码的图片块。其中,关于切割验证码图片,可以针对验证码字符间距相近的验证码图片设置切割方式,该切割方式根据验证码图片的尺寸和验证码图片上各个验证码字符的位置合理设定。例如,在100*20的图片上等间距分布5个验证码字符,则在切割时可以等间距将该验证码图片切割为5个20*20的图片块,该切割方式可以适用于所有验证码字符等间距分布的验证码图片。
需要说明的是,上述字符是指字母、数字、字和/或符号。
对于上述步骤203,切割得到图片块后,还需要对这些图片块进行二值化处理,得到各个二值化后的图片块。
对于上述步骤204,对每个二值化后的图片块标记对应的验证码答案,则这些二值化的图片块以及各自对应的验证码答案,作为该机器学习模型的学习样本。
对于上述步骤205~207,将这些二值化的图片块以及各自对应的验证码答案分别作为输入和输出对该机器学习模型进行训练。本实施例中的机器学习模型具体可以是深度学习模型或者SVM向量机学习模型,为便于理解,本实施例以SVM向量机学习模型为例进行说明。可知,SVM模型是有监督分类的学习模型,通过调整模型的参数可以改善SVM模型的预测正确率,比如说核函数-rbf、poly、sigmoid、linear等。在将各个二值化后的图片块作为输入投入至机器学习模型,得到所述机器学习模型输出的训练答案之后,以各个训练答案作为目标,通过调整所述机器学习模型的模型参数,以最小化得到的各个训练答案与各个标记的验证码答案之间的误差,直到SVM模型对学习样本的误差率小于预设的阈值,比如10%,或者,SVM模型对学习样本的识别正确率超过预设的阈值,比如90%,则可以认为该SVM模型训练完成。
关于SVM模型的参数调整,本实施例选取的核函数是RBF,RBF核函数具有两个参数:惩罚因子c和核参数y。因此,希望能找到最优化参数组(c,y)使SVM模型具有最好的识别表现。优选地,在调整SVM模型的参数时,可以将参数调整的问题归结在一个小的“好区”内选取最优参数组(C,y)。可以理解的是,选取不同的C和y就会得到不同的SVM模型,其目的是为了寻找最佳的参数组合使该SVM模型的性能最好,即识别误差率最低。本实施例中,在一个应用场景下,具体可以选取几组(C,y)值,然后采用相同的学习样本进行训练,最终从中选取表现最好的SVM模型所对应的(C,y)值,将此时的(C,y)值作为最终的参数值用于之后的训练中。
进一步地,在图2预训练机器学习模型的步骤基础上,如图3所示,上述步骤103具体可以包括:
301、将所述目标验证码图片切割成各个包含独立验证码的目标图片块;
302、对各个所述目标图片块进行二值化处理;
303、将各个二值化后的目标图片块作为输入投入至所述机器学习模型,得到所述机器学习模型输出的验证码答案。
对于上述步骤301,原理与上述步骤202类似,由于验证码图片中一般包含多个字符,加上该机器学习模型是针对图片块进行学习的,因此在投入机器学习模型进行识别之前,需要对目标验证码图片进行切割处理,将包含多个验证码字符的图片切割成各个包含独立验证码的目标图片块。
对于上述步骤302,原理与上述步骤203类似,此处不再赘述。
对于上述步骤303,在得到二值化后的目标图片块后,服务器将各个二值化后的目标图片块作为输入投入至所述机器学习模型,得到所述机器学习模型输出的验证码答案。
104、根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
服务器在得到验证码答案后,可以将该验证码答案输入至该目标网站指定的输入验证码的位置上,然后触发该目标网站上的“确定”按钮进行验证码验证。目标网站后台验证服务器输入的验证码答案后,如果该验证码答案正确,则目标网站会向服务器反馈验证通过的信息;反之,则目标网站向服务器反馈验证不通过的信息。
105、在通过所述目标网站的验证后,从所述目标网站上爬取数据。
在通过所述目标网站的验证后,服务器就可以通过爬虫系统从所述目标网站上爬取数据了。
进一步地,由于机器学习模型的识别正确率一般难以达到100%,因此,在实际使用过程中,总会出现输出的验证码答案不正确,导致目标网站验证不通过的情况。因此,在根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作之后,若在验证操作后所述目标网站反馈验证不通过,则可以刷新所述目标网站提供的目标验证码图片,返回执行步骤102,重新获取目标网站上刷新后的目标验证码图片并重新执行上述步骤103~105,再次尝试通过验证。更进一步地,若刷新验证码图片的次数超过预设的数量阈值,比如超过5次,则可以通知服务器的当前用户,本次针对目标网站的数据爬取失败。
进一步地,在步骤103之前,还可以从预先建立的模型集合中选取一个与所述目标验证码图片对应的机器学习模型,所述模型集合中不同机器学习模型采用互不相同分类下的验证码图片作为学习样本预先训练得到。可以理解的是,由于不同网站采用的验证码图片上的验证码字符的格式往往相距迥异,比如有些验证码字符采用楷体,有些验证码字符采用宋体。而如果机器学习模型的学习样本中包含各种不同格式的验证码字符,将大大增大机器学习模型训练完成的难度,也会降低训练完成后机器学习模型的识别正确率。因此,本实施例还可以预先对作为学习样本的验证码图片进行分类,分成不同的类别,然后针对每个类别分别训练一个机器学习模型,把各个类别对应的训练好的机器学习模型收集起来得到模型集合。在对某个网站进行数据爬取,需要输入验证码时,先判断该网站的验证码图片属于哪一种分类,然后从模型集合中选取对应的机器学习模型,并将该网站的验证码图片(即目标验证码图片)投入选取出的机器学习模型中进行识别,得到输出的验证码答案。这样,不仅有利于机器学习模型的训练和识别准确率,而且提高了服务器爬取数据的适用范围。
更进一步地,所述各个机器学习模型预先训练所采用的学习样本所属的分类可以通过以下三种方式中的任意一种预先确定:
第一种方式,对各个作为学习样本的验证码图片按照各自来源的网站进行归类,其中,一个网站对应一种分类。可以理解的是,在训练机器学习模型时,可以对每个网站分别训练对应的机器学习模型。在实际使用过程中,由于需要爬取数据的目标网站一般数量有限,比如只有几个网站,因此采用第一方式也可以满足实际应用的需要,不会造成过大的模型训练负担。
第二种方式,首先,提取各个作为学习样本的验证码图片中的验证码的字符;然后,根据提取的字符的所属类型对各个所述验证码图片进行归类,其中,一种所述所属类型对应一种分类。这里所说的字符的所属类型具体可以是指字符的写法或表现形式上的不同形体,比如宋体、楷体、草书、罗马体等,需要注意的是,也包括了符号的字体。比如,有些网站采用宋体的字符作为验证码,有些网站采用楷体的字符作为验证码,对于机器学习模型的训练来说,不同的字符的所属类型(这里具体指字体)糅合在一起训练会提高训练的难度以及模型识别的准确率。因此,按照不同验证码的字符的字体作为分类标准进行分类,可以更有利于机器学习模型的训练完成,提高机器学习模型使用时的识别准确率。
第三种方式,先获取各个作为学习样本的验证码图片中各个验证码字符之间的间距;然后,根据各个验证码图片对应的间距所属的各个预设间距区间对所述各个验证码图片进行归类,其中,一个间距区间对应一种分类。可以理解的是,比如,有些网站采用的验证码图片上相邻两个验证码字符之间相差3个像素位置,有些网站采用的验证码图片上相邻两个验证码字符之间相差5个像素位置,有些网站采用的验证码图片上相邻两个验证码字符之间相差0个像素位置,对于机器学习模型的训练来说,不同的字符间距不仅影响了模型训练的难度和后期识别准确率,而且在对验证码图片进行切割处理的尺寸也会有所相同。因此,按照不同验证码字符之间的间距大小作为分类标准对各个作为学习样本的验证码图片进行归类,更有利于机器学习模型的训练完成,提高机器学习模型使用时的识别准确率。
需要说明的是,上述三种分类方式可以单独使用,也可以结合起来使用,对此本实施例不作限定。
本实施例中,首先,向爬取数据的目标网站发起访问请求;在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;然后,将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;接着,根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;在通过所述目标网站的验证后,从所述目标网站上爬取数据。在本实施例中,在爬取目标网站数据,遇到目标网站要求输入验证码时,可以通过机器学习模型对目标验证码图片进行识别,得到验证码答案,并根据验证码答案自动完成目标网站的验证,突破网站对爬取数据的阻碍,使得爬虫系统可以顺利爬取网站上的数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上面主要描述了一种爬取网站数据的方法,下面将对一种爬取网站数据的装置进行详细描述。
图4示出了本发明实施例中一种爬取网站数据的装置一个实施例结构图。
本实施例中,一种爬取网站数据的装置,包括:
请求发起模块401,用于向爬取数据的目标网站发起访问请求;
目标图片获取模块402,用于在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
验证码识别模块403,用于将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案;
验证操作模块404,用于根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
爬取数据模块405,用于在通过所述目标网站的验证后,从所述目标网站上爬取数据。
进一步地,所述机器学习模型可以通过以下模块预先训练得到:
图片获取模块,用于获取多个验证码图片;
图片块切割模块,用于针对每个验证码图片,将所述验证码图片切割成各个包含独立验证码的图片块;
图片块二值化模块,用于对各个所述图片块进行二值化处理;
答案标记模块,用于为二值化后的每个图片块标记对应的验证码答案;
训练模块,用于将各个二值化后的图片块作为输入投入至机器学习模型,得到所述机器学习模型输出的训练答案;
参数调整模块,用于将各个训练答案作为目标,调整所述机器学习模型的模型参数,以最小化得到的各个训练答案与各个标记的验证码答案之间的误差;
训练完成模块,用于若各个输出的训练答案与各个标记的验证码答案之间的误差率小于预设的阈值,则确定所述机器学习模型训练完成。
进一步地,所述验证码识别模块可以包括:
切割单元,用于将所述目标验证码图片切割成各个包含独立验证码的目标图片块;
二值化单元,用于对各个所述目标图片块进行二值化处理;
输入模型单元,用于将各个二值化后的目标图片块作为输入投入至所述机器学习模型,得到所述机器学习模型输出的验证码答案。
进一步地,所述爬取网站数据的装置还可以包括:
模型选取模块,用于从预先建立的模型集合中选取一个与所述目标验证码图片对应的机器学习模型,所述模型集合中不同机器学习模型采用互不相同分类下的验证码图片作为学习样本预先训练得到。
进一步地,所述各个机器学习模型预先训练所采用的学习样本所属的分类通过以下模块预先确定:
第一归类模块,用于对各个作为学习样本的验证码图片按照各自来源的网站进行归类,其中,一个网站对应一种分类;
或
字符提取模块,用于提取各个作为学习样本的验证码图片中的验证码的字符;
第二归类模块,用于根据提取的字符的所属类型对各个所述验证码图片进行归类,其中,一种所述所属类型对应一种分类;
或
间距获取模块,用于获取各个作为学习样本的验证码图片中各个验证码字符之间的间距;
第三归类模块,用于根据各个验证码图片对应的间距所属的各个预设间距区间对所述各个验证码图片进行归类,其中,一个间距区间对应一种分类。
进一步地,所述爬取网站数据的装置还可以包括:
图片刷新模块,用于若在验证操作后所述目标网站反馈验证不通过,则刷新所述目标网站提供的目标验证码图片,返回触发所述目标图片获取模块。
图5是本发明一实施例提供的服务器的示意图。如图5所示,该实施例的服务器5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52,例如执行上述爬取网站数据的方法的程序。所述处理器50执行所述计算机可读指令52时实现上述各个爬取网站数据的方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至405的功能。
示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令的指令段,该指令段用于描述所述计算机可读指令52在所述服务器5中的执行过程。
所述服务器5可以是本地服务器、云端服务器等计算设备。所述服务器可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是服务器5的示例,并不构成对服务器5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述服务器5的内部存储单元,例如服务器5的硬盘或内存。所述存储器51也可以是所述服务器5的外部存储设备,例如所述服务器5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述服务器5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种爬取网站数据的方法,其特征在于,包括:
向爬取数据的目标网站发起访问请求;
在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案,所述机器学习模型为从预先建立的模型集合中选取的一个与所述目标验证码图片的分类对应的机器学习模型,所述模型集合中不同机器学习模型采用互不相同分类下的验证码图片作为学习样本预先训练得到,所述机器学习模型是SVM向量机学习模型;
根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
在通过所述目标网站的验证后,从所述目标网站上爬取数据;
所述各个机器学习模型预先训练所采用的学习样本所属的分类通过以下步骤预先确定:
获取各个作为学习样本的验证码图片中各个验证码字符之间的间距;
根据各个验证码图片对应的间距所属的各个预设间距区间对所述各个验证码图片进行归类,其中,一个间距区间对应一种分类;
所述机器学习模型通过以下步骤预先训练得到:
获取多个验证码图片;
针对每个验证码图片,将所述验证码图片切割成各个包含独立验证码的图片块;
对各个所述图片块进行二值化处理;
为二值化后的每个图片块标记对应的验证码答案;
将各个二值化后的图片块作为输入投入至机器学习模型,得到所述机器学习模型输出的训练答案;
将各个训练答案作为目标,调整所述机器学习模型的模型参数,以最小化得到的各个训练答案与各个标记的验证码答案之间的误差;
若各个输出的训练答案与各个标记的验证码答案之间的误差率小于预设的阈值,则确定所述机器学习模型训练完成。
2.根据权利要求1所述的爬取网站数据的方法,其特征在于,所述将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案包括:
将所述目标验证码图片切割成各个包含独立验证码的目标图片块;
对各个所述目标图片块进行二值化处理;
将各个二值化后的目标图片块作为输入投入至所述机器学习模型,得到所述机器学习模型输出的验证码答案。
3.根据权利要求1所述的爬取网站数据的方法,其特征在于,所述各个机器学习模型预先训练所采用的学习样本所属的分类还可以通过以下步骤预先确定:
对各个作为学习样本的验证码图片按照各自来源的网站进行归类,其中,一个网站对应一种分类;
或
提取各个作为学习样本的验证码图片中的验证码的字符;
根据提取的字符的所属类型对各个所述验证码图片进行归类,其中,一种所述所属类型对应一种分类。
4.根据权利要求1至3中任一项所述的爬取网站数据的方法,其特征在于,在根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作之后,还包括:
若在验证操作后所述目标网站反馈验证不通过,则刷新所述目标网站提供的目标验证码图片,返回执行所述获取所述目标网站上所述反馈信息所对应的目标验证码图片的步骤。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至4中任一项所述爬取网站数据的方法的步骤。
6.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如下步骤:
向爬取数据的目标网站发起访问请求;
在接收到所述目标网站要求输入验证码的反馈信息后,获取所述目标网站上所述反馈信息所对应的目标验证码图片;
将所述目标验证码图片投入预训练好的机器学习模型进行识别,得到所述机器学习模型输出的验证码答案,所述机器学习模型为从预先建立的模型集合中选取的一个与所述目标验证码图片对应的机器学习模型,所述模型集合中不同机器学习模型采用互不相同分类下的验证码图片作为学习样本预先训练得到,所述机器学习模型是SVM向量机学习模型;
根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作;
在通过所述目标网站的验证后,从所述目标网站上爬取数据;
所述各个机器学习模型预先训练所采用的学习样本所属的分类通过以下步骤预先确定:
获取各个作为学习样本的验证码图片中各个验证码字符之间的间距;
根据各个验证码图片对应的间距所属的各个预设间距区间对所述各个验证码图片进行归类,其中,一个间距区间对应一种分类;
所述机器学习模型通过以下步骤预先训练得到:
获取多个验证码图片;
针对每个验证码图片,将所述验证码图片切割成各个包含独立验证码的图片块;
对各个所述图片块进行二值化处理;
为二值化后的每个图片块标记对应的验证码答案;
将各个二值化后的图片块作为输入投入至机器学习模型,得到所述机器学习模型输出的训练答案;
将各个训练答案作为目标,调整所述机器学习模型的模型参数,以最小化得到的各个训练答案与各个标记的验证码答案之间的误差;
若各个输出的训练答案与各个标记的验证码答案之间的误差率小于预设的阈值,则确定所述机器学习模型训练完成。
7.根据权利要求6所述的服务器,其特征在于,在根据所述输出的验证码答案执行所述目标网站要求输入验证码的验证操作之后,还包括:
若在验证操作后所述目标网站反馈验证不通过,则刷新所述目标网站提供的目标验证码图片,返回执行所述获取所述目标网站上所述反馈信息所对应的目标验证码图片的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029529.4A CN108345641B (zh) | 2018-01-12 | 2018-01-12 | 一种爬取网站数据的方法、存储介质和服务器 |
PCT/CN2018/097499 WO2019136960A1 (zh) | 2018-01-12 | 2018-07-27 | 一种爬取网站数据的方法、存储介质、服务器及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029529.4A CN108345641B (zh) | 2018-01-12 | 2018-01-12 | 一种爬取网站数据的方法、存储介质和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345641A CN108345641A (zh) | 2018-07-31 |
CN108345641B true CN108345641B (zh) | 2021-02-05 |
Family
ID=62961117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810029529.4A Active CN108345641B (zh) | 2018-01-12 | 2018-01-12 | 一种爬取网站数据的方法、存储介质和服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108345641B (zh) |
WO (1) | WO2019136960A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815380A (zh) * | 2018-12-20 | 2019-05-28 | 山东中创软件工程股份有限公司 | 一种信息爬取方法、装置、设备及计算机可读存储介质 |
CN109740336B (zh) * | 2018-12-28 | 2020-08-18 | 北京云测信息技术有限公司 | 一种图片中的验证信息的识别方法、装置及电子设备 |
CN111782068A (zh) * | 2019-04-04 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 鼠标轨迹生成的方法、装置和系统以及数据处理的方法 |
CN110348438A (zh) * | 2019-06-29 | 2019-10-18 | 上海淇馥信息技术有限公司 | 一种基于人工神经网络模型的图片字符识别方法、装置和电子设备 |
CN110489629A (zh) * | 2019-08-28 | 2019-11-22 | 云汉芯城(上海)互联网科技股份有限公司 | 数据爬取方法、数据爬取装置、数据爬取设备及存储介质 |
CN111382750A (zh) * | 2020-03-05 | 2020-07-07 | 北京网众共创科技有限公司 | 图形验证码识别方法及装置 |
CN111460256A (zh) * | 2020-03-26 | 2020-07-28 | 深圳壹账通智能科技有限公司 | 网页数据的爬取方法、装置、计算机设备和存储介质 |
CN111966432B (zh) * | 2020-06-30 | 2023-07-28 | 北京百度网讯科技有限公司 | 验证码处理方法、装置、电子设备以及存储介质 |
CN111667021B (zh) * | 2020-06-30 | 2023-07-21 | 上海仪电(集团)有限公司中央研究院 | 一种基于人工智能的前端性能问题检测方法 |
CN112214750B (zh) * | 2020-10-16 | 2023-04-25 | 上海携旅信息技术有限公司 | 字符验证码的识别方法、系统、电子设备和存储介质 |
CN112380409A (zh) * | 2020-10-26 | 2021-02-19 | 武汉天宝莱信息技术有限公司 | 一种基于自动化爬虫的验证码识别的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085730A (zh) * | 2017-03-24 | 2017-08-22 | 深圳爱拼信息科技有限公司 | 一种字符验证码识别的深度学习方法及装置 |
US9747494B2 (en) * | 2015-11-16 | 2017-08-29 | MorphoTrak, LLC | Facial matching system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514171B (zh) * | 2012-06-20 | 2016-08-03 | 同程网络科技股份有限公司 | 基于光学字符识别与垂直搜索的自定义爬虫方法 |
CN105893583A (zh) * | 2016-04-01 | 2016-08-24 | 北京鼎泰智源科技有限公司 | 基于人工智能的数据采集方法及系统 |
CN106446123A (zh) * | 2016-09-19 | 2017-02-22 | 成都知道创宇信息技术有限公司 | 一种网页中验证码元素识别方法 |
-
2018
- 2018-01-12 CN CN201810029529.4A patent/CN108345641B/zh active Active
- 2018-07-27 WO PCT/CN2018/097499 patent/WO2019136960A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747494B2 (en) * | 2015-11-16 | 2017-08-29 | MorphoTrak, LLC | Facial matching system |
CN107085730A (zh) * | 2017-03-24 | 2017-08-22 | 深圳爱拼信息科技有限公司 | 一种字符验证码识别的深度学习方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108345641A (zh) | 2018-07-31 |
WO2019136960A1 (zh) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345641B (zh) | 一种爬取网站数据的方法、存储介质和服务器 | |
CN110378235B (zh) | 一种模糊人脸图像识别方法、装置及终端设备 | |
US20210035304A1 (en) | Training method for image semantic segmentation model and server | |
CN107239786B (zh) | 一种字符识别方法和装置 | |
CN111814902A (zh) | 目标检测模型训练方法、目标识别方法、装置和介质 | |
EP2806374A1 (en) | Method and system for automatic selection of one or more image processing algorithm | |
CN106778820B (zh) | 识别模型确定方法及装置 | |
US10769476B2 (en) | License plate detection method and device | |
CN111428273A (zh) | 基于机器学习的动态脱敏方法及装置 | |
CN107204956B (zh) | 网站识别方法及装置 | |
CN111353549B (zh) | 图像标签的核验方法及装置、电子设备、存储介质 | |
CN111783505A (zh) | 伪造人脸的识别方法、装置和计算机可读存储介质 | |
CN111695439A (zh) | 图像结构化数据提取方法、电子装置及存储介质 | |
CN113128287B (zh) | 训练跨域人脸表情识别模型、人脸表情识别的方法及系统 | |
US9135525B2 (en) | Character recognition apparatus, character recognition method, and computer-readable medium | |
CN110705531B (zh) | 缺失字符检测、缺失字符检测模型的建立方法及装置 | |
US8750604B2 (en) | Image recognition information attaching apparatus, image recognition information attaching method, and non-transitory computer readable medium | |
CN112613543A (zh) | 增强策略验证方法、装置、电子设备及存储介质 | |
CN110135889A (zh) | 智能推荐书单的方法、服务器及存储介质 | |
CN108932533A (zh) | 识别模型构建方法及装置、字符识别方法及装置 | |
CN113705294A (zh) | 一种基于人工智能的图像识别方法、装置 | |
CN112199569A (zh) | 一种违禁网址识别方法、系统、计算机设备及存储介质 | |
CN109697353A (zh) | 一种点击验证码的验证方法和装置 | |
CN113221601A (zh) | 字符识别方法、装置及计算机可读存储介质 | |
EP4174769A1 (en) | Method and apparatus for marking object outline in target image, and storage medium and electronic apparatus |
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 |