CN112380409A - 一种基于自动化爬虫的验证码识别的方法 - Google Patents
一种基于自动化爬虫的验证码识别的方法 Download PDFInfo
- Publication number
- CN112380409A CN112380409A CN202011154780.7A CN202011154780A CN112380409A CN 112380409 A CN112380409 A CN 112380409A CN 202011154780 A CN202011154780 A CN 202011154780A CN 112380409 A CN112380409 A CN 112380409A
- Authority
- CN
- China
- Prior art keywords
- verification code
- crawler
- picture
- picture verification
- automatic
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 12
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 238000011478 gradient descent method Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 230000002265 prevention Effects 0.000 claims description 3
- 230000009193 crawling Effects 0.000 description 3
- 241000270322 Lepidosauria Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012950 reanalysis Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- 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/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
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)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及了一种基于自动化爬虫的验证码识别的方法,包括以下步骤:S1、爬虫任务的下发、预处理以及超时异常等处理,S2、确定图片验证码,通过requests或者xpath等方式获取图片验证码,S3、采用一种深度卷积神经网络方法进行图片验证码识别,S4、通过爬虫程序验证其结果并保存所需要数据。本发明可以在被爬取网站需要图片验证码限制网络爬虫爬取网站内容时,通过自动化程序识别验证码,保证自动化爬虫的正常进行,能提高爬虫整体效率的效率、降低人力成本,能更及时发现故障、提高运行安全性。
Description
技术领域
本发明涉及计算机软件技术领域,具体为一种基于自动化爬虫的验证码识别的方法。
背景技术
在互联网飞速发展的网络背景下,搜索引擎在人们的生活工作中无疑扮演着重要的角色,而网络爬虫则是搜索引擎技术的关键部分,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成,传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列,然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程。
目前的网络爬虫大多数都是避开遇到图片验证码的情况或者使用人工的方式去解决这个问题,这两种方式在使用时会出现很多的条件限制,而且以上两种方式都不适用于纯自动化爬虫,所爬取到的数据需要大量的筛选步骤才能够达到符合我们需要的数据信息,这期间我们需要花费很多时间对其重新分析和过滤,故我们提出了一种基于自动化爬虫的验证码识别的方法发明项目。
发明内容
解决的技术问题
本发明主要解决的技术问题是,本发明提供了一种基于自动化爬虫的验证码识别的方法,具备在有图片验证码的情况下仍不需要人工介入的一种自动化爬虫程序等优点,解决了我们在正常爬取过程中可以在被爬取网站需要图片验证码限制网络爬虫爬取网站内容时,通过自动化程序识别验证码,保证自动化爬虫的正常进行,能提高爬虫整体效率的效率、降低人力成本,能更及时发现故障、提高运行安全性。
(二)技术方案
为实现上述在有图片验证码的情况下仍不需要人工介入的一种自动化爬虫程序的目的,本发明提供如下技术方案:一种基于自动化爬虫的验证码识别的方法,包括:步骤一、爬虫任务的下发、预处理以及超时异常等处理;步骤二、确定图片验证码,通过requests或者xpath等方式获取图片验证码;步骤三、采用一种深度卷积神经网络方法进行识别图片验证码;步骤四、通过爬虫程序验证其结果并保存所需要数据。
优选的,所述步骤一中的对爬虫任务的下发、预处理以及超时异常等处理包括异常任务重新下发、直到图片验证码出现。
优选的,所述步骤二中确定图片验证码,通过requests或者xpath等方式获取图片验证码包括:持续访问直到页面出现图片验证码;对出现的图片验证码通过requests方式或者xpath定位的方式去获取图片内容。
优选的,所述步骤三所述采用一种深度卷积神经网络方法进行识别图片验证码包括:(1)、训练集合生成,收集大量图片验证码或者使用python验证码生成库,生成十万个验证码,验证码生成的步骤:随机在英文大小写字母和数字中选择四个字符、创建背景图片、添加噪声以及字符扭曲干扰手段,最终四位数验证码总共有62×62×62×62种不同的可能以及不同的干扰手段;获得数据集后就要对数据进行预处理,(2)、开始构建卷积神经网络,a、前向传播组成:三个卷积层,三个池化层,四个dropout防过拟合层,两个全连接层,四个Relu激活函数,所述卷积层的前向传播使用Relu激活,函数式如公式所示,b、反向传播组成:计算损失、采用梯度下降的方法获取极值、目标预测、使用AdamOptimizer优化器优化算法,更新权值并计算准确率、参数更新,所述卷积层的计算损失使用sigmoid交叉熵函数,函数式如公式
LosscrossEntropy=-[y0 labellogy0 pred+y1 labellogy1 pred]
=-[y1 labellogy1 pred+(1-y1 label)log(1-y1 pred)]所示:sigmoid函数的输出就是标签值为一的样本对应的预测值,故得出如公式结果,c、卷积过程:矩阵对应位置相乘再相加,要求相乘的两个矩阵宽、高必须相同(比如大小都是m*n),全连接(矩阵乘法):它要求第一个矩阵的列和第二个矩阵的行必须相同,比如矩阵A大小m* n,矩阵B大小n *k,红色部分必须相同,得到结果大小就是m*k,(3)、批量输入(1)中训练集数据,多次进行Epoch,准确率明显提高,(4)、重复(3)操作,并计算准确率,准确率高于设定值,保存参数并结束训练,(5)、构建卷积神经网络完成后,调用程序运行得到结果。
优选的,所述验证图片验证码结果,如错误,返回步骤(5),否则爬虫继续并保存所需要数据。
(三)有益效果
与现有技术对比,本发明具备以下有益效果:
本发明可以在被爬取网站需要图片验证码限制网络爬虫爬取网站内容时,通过爬虫任务的下发、预处理以及超时异常等处理,确定图片验证码,通过requests或者xpath等方式获取图片验证码识别验证码,能提高爬虫整体效率的效率、降低人力成本,采用一种深度卷积神经网络方法进行识别图片验证码,能更及时发现故障、提高运行安全性,保证自动化爬虫的正常进行,通过爬虫程序验证其结果并保存所需要数据。
附图说明
图1为本发明结构流程图;
图2为本发明结构公式图;
图3为本发明结构原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
请参阅图1-3,基于自动化爬虫的验证码识别的方法,包括:爬虫任务的下发、预处理以及超时异常等处理包括异常任务重新下发、直到图片验证码出现之前所有步骤的处理、以及部分特殊情况的处理,进一步地,确定图片验证码,通过requests或者xpath等方式获取图片验证码包括:持续访问直到页面直到出现图片验证码;对出现的图片验证码通过requests方式或者xpath定位的方式去获取图片内容,进一步地,采用一种深度卷积神经网络 (deepconvolutionalneuralnetwork)方法进行识别图片验证码包括: (1)、训练集合生成,收集大量图片验证码或者使用python验证码生成库ImageCaptcha,生成十万个验证码,验证码生成的步骤:随机在英文大小写字母和数字中选择四个字符、创建背景图片、添加噪声以及字符扭曲等干扰手段,最终四位数验证码总共有62×62×62 ×62不同的可能以及不同的干扰手段;通过自动化程序识别验证码,保证自动化爬虫的正常进行,(2)、获得数据集后就要对数据进行预处理,(3)、开始构建卷积神经网络,a、前向传播组成:卷积层,池化层,dropout防过拟合层,全连接层,Relu激活函数,卷积层的前向传播使用Relu激活,函数式如公式(1)所示,b、反向传播组成:计算损失(sigmoid交叉熵)、采用梯度下降的方法获取极值、目标预测、使用AdamOptimizer优化器优化算法,更新权值并计算准确率、参数更新,卷积层的计算损失使用sigmoid交叉熵函数,函数式如公式(2)所示:sigmoid函数的输出就是标签值为一的样本对应的预测值,故得出如公式(3)结果,c、卷积过程:矩阵对应位置相乘再相加,要求相乘的两个矩阵宽、高必须相同(比如大小都是m*n),全连接 (矩阵乘法):它要求第一个矩阵的列和第二个矩阵的行必须相同,比如矩阵A大小m*n,矩阵B大小n*k,红色部分必须相同,得到结果大小就是m*k,(4)、批量输入(1)中训练集数据,多次进行Epoch,准确率明显提高,(5)、重复(4)操作,并计算准确率,如准确率大于零点八,将参数保存到model文件中,准确率大于零点九,在保存参数的同时结束训练,解决了我们在正常爬取过程中可以在被爬取网站整体效率、降低人力成本,能更及时发现故障、提高运行安全性,(6)、构建卷积神经网络完成后,调用程序运行得到结果,进一步地,通过爬虫程序验证其结果并保存所需要数据,进一步地,验证图片验证码结果,如错误,返回步骤(5),否则爬虫继续并保存所需要数据。
工作原理:首先将爬虫任务的下发、预处理以及超时异常等处理包括异常任务重新下发、直到图片验证码出现之前所有步骤的处理、以及部分特殊情况的处理,进一步地,确定图片验证码,通过requests或者xpath等方式获取图片验证码包括:持续访问直到页面直到出现图片验证码;对出现的图片验证码通过requests方式或者xpath定位的方式去获取图片内容,进一步地,采用一种深度卷积神经网络方法进行识别图片验证码,然后进一步地,通过爬虫程序验证其结果并保存所需要数据,进一步地,验证图片验证码结果,如错误,重复批量输入收集大量图片验证码或者使用python验证码生成库 ImageCaptcha,生成十万个验证码,验证码生成的步骤:随机在英文大小写字母和数字中选择四个字符、创建背景图片、添加噪声以及字符扭曲等干扰手段,最终四位数验证码总共有62×62×62×62种不同的可能以及不同的干扰手段,多次进行Epoch,准确率明显提高,并计算准确率,如准确率大于0.8,将参数保存到model文件中,准确率大于0.9,在保存参数的同时结束训练,最后爬虫继续并保存所需要数据。
综上所述,该种基于自动化爬虫的验证码识别的方法,通过爬虫任务的下发、预处理以及超时异常等处理,确定图片验证码,通过requests或者xpath等方式获取图片验证码识别验证码,能提高爬虫整体效率的效率、降低人力成本,采用一种深度卷积神经网络方法进行识别图片验证码,能更及时发现故障、提高运行安全性,保证自动化爬虫的正常进行,解决了我们在正常爬取过程中可以在被爬取网站需要图片验证码限制网络爬虫爬取网站内容时,通过自动化程序识别验证码,保证自动化爬虫的正常进行,能提高爬虫整体效率的效率、降低人力成本,能更及时发现故障、提高运行安全性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种基于自动化爬虫的验证码识别的方法,其特征在于,包括:步骤一、爬虫任务的下发、预处理以及超时异常等处理;步骤二、确定图片验证码,通过requests或者xpath等方式获取图片验证码;步骤三、采用一种深度卷积神经网络方法进行识别图片验证码;步骤四、通过爬虫程序验证其结果并保存所需要数据。
2.根据权利要求1所述的一种基于自动化爬虫的验证码识别的方法,其特征在于:所述步骤一中的对爬虫任务的下发、预处理以及超时异常等处理包括异常任务重新下发、直到图片验证码出现。
3.根据权利要求1所述的一种基于自动化爬虫的验证码识别的方法,其特征在于:所述步骤二中确定图片验证码,通过requests或者xpath等方式获取图片验证码包括:持续访问直到页面出现图片验证码;对出现的图片验证码通过requests方式或者xpath定位的方式去获取图片内容。
4.根据权利要求1所述的一种基于自动化爬虫的验证码识别的方法,其特征在于:所述步骤三所述采用一种深度卷积神经网络方法进行识别图片验证码包括:(1)、训练集合生成,收集大量图片验证码或者使用python验证码生成库,生成十万个验证码,验证码生成的步骤:随机在英文大小写字母和数字中选择四个字符、创建背景图片、添加噪声以及字符扭曲干扰手段,最终四位数验证码总共有62×62×62×62种不同的可能以及不同的干扰手段;获得数据集后就要对数据进行预处理,(2)、开始构建卷积神经网络,a、前向传播组成:三个卷积层,三个池化层,四个dropout防过拟合层,两个全连接层,四个Relu激活函数,所述卷积层的前向传播使用Relu激活,函数式如公式所示,b、反向传播组成:计算损失、采用梯度下降的方法获取极值、目标预测、使用AdamOptimizer优化器优化算法,更新权值并计算准确率、参数更新,所述卷积层的计算损失使用sigmoid交叉熵函数,函数式如公式
LosscrossEntropy=-[y0 labellogy0 pred+y1 labellogy1 pred]
=-[y1 labellogy1 pred+(1-y1 label)log(1-y1 pred)]所示:sigmoid函数的输出就是标签值为一的样本对应的预测值,故得出如公式结果,c、卷积过程:矩阵对应位置相乘再相加,要求相乘的两个矩阵宽、高必须相同(比如大小都是m*n),全连接(矩阵乘法):它要求第一个矩阵的列和第二个矩阵的行必须相同,比如矩阵A大小m* n,矩阵B大小n *k,红色部分必须相同,得到结果大小就是m*k,(3)、批量输入(1)中训练集数据,多次进行Epoch,准确率明显提高,(4)、重复(3)操作,并计算准确率,准确率高于设定值,保存参数并结束训练,(5)、构建卷积神经网络完成后,调用程序运行得到结果。
5.根据权利要求2所述的一种基于自动化爬虫的验证码识别的方法,其特征在于:所述验证图片验证码结果,如错误,返回步骤(5),否则爬虫继续并保存所需要数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011154780.7A CN112380409A (zh) | 2020-10-26 | 2020-10-26 | 一种基于自动化爬虫的验证码识别的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011154780.7A CN112380409A (zh) | 2020-10-26 | 2020-10-26 | 一种基于自动化爬虫的验证码识别的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112380409A true CN112380409A (zh) | 2021-02-19 |
Family
ID=74577289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011154780.7A Pending CN112380409A (zh) | 2020-10-26 | 2020-10-26 | 一种基于自动化爬虫的验证码识别的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380409A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345641A (zh) * | 2018-01-12 | 2018-07-31 | 深圳壹账通智能科技有限公司 | 一种爬取网站数据的方法、存储介质和服务器 |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN109993169A (zh) * | 2019-04-11 | 2019-07-09 | 山东浪潮云信息技术有限公司 | 一种基于端到端的字符型验证码识别方法 |
CN111652233A (zh) * | 2020-06-03 | 2020-09-11 | 哈尔滨工业大学(威海) | 一种针对复杂背景的文本验证码自动识别方法 |
-
2020
- 2020-10-26 CN CN202011154780.7A patent/CN112380409A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345641A (zh) * | 2018-01-12 | 2018-07-31 | 深圳壹账通智能科技有限公司 | 一种爬取网站数据的方法、存储介质和服务器 |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN109993169A (zh) * | 2019-04-11 | 2019-07-09 | 山东浪潮云信息技术有限公司 | 一种基于端到端的字符型验证码识别方法 |
CN111652233A (zh) * | 2020-06-03 | 2020-09-11 | 哈尔滨工业大学(威海) | 一种针对复杂背景的文本验证码自动识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347719B (zh) | 一种基于大数据的企业外贸风险预警方法及系统 | |
Freitas | A genetic programming framework for two data mining tasks: classification and generalized rule induction | |
US20040215641A1 (en) | Query prunning using exterior tiles in an R-tree index | |
CN1487442A (zh) | 用于在网页中实施自动完成的方法和系统 | |
US11841839B1 (en) | Preprocessing and imputing method for structural data | |
CN112434024B (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
CN109710237A (zh) | 一种基于自定义二维报表的在线修改校验方法及设备 | |
CN108388508A (zh) | 一种基于用户会话和层次聚类算法的测试用例选择方法 | |
Tanter | Toward a theory of political development | |
Lias-Rodriguez et al. | An algorithm for computing typical testors based on elimination of gaps and reduction of columns | |
Wang et al. | A combinatorial approach to building navigation graphs for dynamic web applications | |
CN111461979A (zh) | 验证码图像去噪识别方法、电子装置及存储介质 | |
CN117743601B (zh) | 一种自然资源知识图谱补全方法、装置、设备及介质 | |
CN112154415A (zh) | 大型计算机系统中的高效事件管理 | |
Chang et al. | Pallel parsing of tree languages for syntactic pattern recognition | |
CN112380409A (zh) | 一种基于自动化爬虫的验证码识别的方法 | |
CN117370650A (zh) | 基于服务组合超图卷积网络的云计算数据推荐方法 | |
Chen et al. | Tcn-based lightweight log anomaly detection in cloud-edge collaborative environment | |
CN109508544B (zh) | 一种基于mlp的入侵检测方法 | |
CN116485512A (zh) | 基于强化学习的银行数据分析方法及系统 | |
CN115795521A (zh) | 访问控制方法、装置、电子设备及存储介质 | |
CN113177075B (zh) | 一种基于大数据平台的笔迹数据存储方法及系统 | |
CN116226850A (zh) | 应用程序的病毒检测方法、装置、设备、介质及程序产品 | |
Li et al. | Web structure mining for usability analysis | |
CN107544906A (zh) | 一种基于内容非敏感性DOM骨架等价判定的Web自动化测试方法 |
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 |