Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
426 views
in Technique[技术] by (71.8m points)

Python 爬虫中如何处理验证码?

最近想用Python写个爬虫去抓取一些东西,但是碰到个问题,就是验证码不知道该如何处理。
现在验证码一般有两种,一种是简单的,比如下面这种纯字符型的:

图片描述

另外一种就是出来一些特定字符,需要按顺序点击的:
图片描述

我看有的人说可以获取浏览器cookies写到程序里就直接通过验证了,有的说这个涉及到机器学习方面的东西。由于我个人以前没接触过这方面东西,所以不知道从何处入手,想问下要处理这种验证码的话,一般该如何处理? 有没有这方面合适的书推荐下啊……


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

验证码就是用来反制机器和爬虫的,如果验证码能让你的自动化爬虫轻松绕过,那还能叫验证码么?楼主还是先搞清楚验证码是个怎么机制,再来看看是否真如你想象中能够轻松绕过.总而言之,除非人家网站的验证码实现有漏洞,否则你是无法绕过验证码机制的,你只能识别出验证码上的文字,比如OCR(Optical Character Recognition)技术就是用来解决这个问题的.OCR是指电子设备(如扫描仪)检查纸上打印的字符.通过检测暗/亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程.

验证码识别基本步骤:
1.预处理
2.灰度化
3.二值化
4.去噪
5.分割
6.识别

总而言之,验证码识别门槛高,成本也高,避无可避.
比如下图,验证码东倒西歪,还重叠,识别起来有难度.

图片描述


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...