对于爬取数据而言, 有的网站在登录时或者采集数据过程中,都会出现验证码。对于网络爬虫而言,解决验证码识别识别是非常重要的一件事。
今天,我们将讨论有关验证码的5件事,以帮助大家更好的进行网络数据抓取。
1. 什么是验证码?
2. 验证码是如何工作的?
3. 常见的验证码有哪些类型?
4. 为什么网站要放验证码?
5. 如何处理网页采集中遇到的验证码?
1. 什么是验证码?
根据维基百科的定义,验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart” 的缩写(全自动区分计算机和人类的图灵测试),是一种区分用户是计算机还是人的公共全自动程序。
它通常在互联网上使用,特别是在网上购买产品或者登录网站时。
2. 验证码是如何工作的?
验证码技术基于图灵测试,该测试是用于测试机器是否可以像人一样思考。验证码的目的是提出计算机无法处理的问题或挑战。它通常显示扭曲的随机字符或者数字字符串。
它之所以起作用,是因为人看着变形的图片的时候,是可以轻松的识别图片中的字符的,但爬虫工具则不容易识别。当文字太模糊或者变形太厉害时,即使是最先进的自动化系统(被编程为扫描页面上的图片并识别图片中的文字),也很难准确识别图片中的文字。
3. 常见的验证码有哪些类型?
验证码有多种尺寸和类型。最常见的验证码类型有:基于文本的验证码,基于图像的验证码和基于音频的验证码。
基于文本的验证码是由两个简单的部分组成:一串随机生成的字母或数字序列(显示为扭曲的图像)和一个文本框。要通过测试并证明您的人类身份,只需在文本框中输入您在图像中看到的字符即可。
对于机器人来说,简单地识别图片中的字符并不难。为了增加难度,提供了数学验证码,该验证码显示有容易阅读的数字,并且涉及基本的数学运算问题;同时还有3D验证码,该验证码显示具有3D效果的字符。
基于图像的验证码:通常为用户提供的是物体、动物、人或风景的图像,而不是失真的文本,以此来区分人和计算机程序。验证码要求用户选择它们标识的正确图像,或将滑块拖动到图像中以使其完整。
基于音频的验证码:利用从录音中提取的随机单词或数字,将它们组合在一起,甚至给它们添加一些噪音,然后要求用户输入在录音中听到的单词或数字。与文本验证码和图片验证码相比,声音验证码更难处理,因为让数据抓取工具学会倾听录音并不容易。
4. 为什么网站要放验证码?
如今,计算机已经普及,跟计算机有关的自动化任务和服务变得司空见惯,因此提高网站的安全级别变得更加重要。为计算机开发的验证码,是在人机交互时,在一些对安全至关重要的情况下,确保与人打交道,例如登录网站或者在网上付款。
验证码还可以阻止试图自动收集在线数据、试图自动注册或使用网站、博客或论坛的垃圾邮件发送者和机器人。它可以保护网站免受垃圾邮件,欺诈性注册和其他非法行为的侵扰。
5. 如何处理网页采集中遇到的验证码?
一旦采集数据的过程中出现验证码,我们的数据采集工作很容易因此中断。因此,处理验证码对于网络数据抓取非常重要。 处理验证码的最好方法就是尽量避免遇到它。采集速度不要太快,短时间内不要过度频繁的访问一个网站,而是要表现得更像一个人,模拟人浏览网页的操作行为。
但是仍然有很多验证码是无法避免的,例如登录页面上的验证码。 在八爪鱼采集器中,可以通过设置验证码识别步骤,轻松地解决验证码。同时,八爪鱼还支持自动打码噢!点击此处查看示例
对于自己编写爬虫代码的人来说,可以将许多验证码解算器集成到他的爬虫系统中。例如,验证码识别服务供应商 Death by CAPTCHA和Bypass CAPTCHA 都允许用户通过调用API服务来进行自动打码,从而在抓取数据过程中自动解决验证码。这些验证码解决工具可以处理普通的文本验证码,甚至是更高级的验证码。
对于网页数据抓取,验证码可能是一个令人头疼的问题。但是不用担心,正所谓道高一尺,魔高一丈。 随着爬虫工具和验证码解算器的兴起,验证码已成为可以被破解的对象。借助这些工具,您可以畅享网页数据抓取。
作者:黄伊娜(八爪鱼团队)
校对:Isabel Li(八爪鱼团队)
编辑/翻译:蒋红(八爪鱼团队)