Python爬虫基础:验证码概述及打码平台
验证码概述
什么是图片验证码?
验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers andHumans
Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
验证码的作用
防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。虽然登录麻烦一点,但是对网友的密码安全来说这个功能还是很有必要,也很重要。
图片验证码使用场景
- 注册
- 登录
- 频繁发送请求时,服务器弹出验证码进行验证
图片验证码的处理方案
- 手动输入(input)这种方法仅限于登录一次就可持续使用的情况
- 图像识别引擎解析使用光学识别引擎处理图片中的数据,目前常用于图片数据提取,较少用于验证码处理
- 打码平台爬虫常用的验证码解决方案
对于验证码的处理,我们今天主要学习通过打码平台去处理验证码
图片在网页页面中的形式
图片在网页页面中的形式一般就两种:一种是以一个连接形式存在html中,另外一种是以字符串的形式存在于html中。
以链接形式存在于html中的图片,意味着每次浏览器执行渲染的时候会发送图片链接地址请求,请求到了之后再渲染到页面。目前大部分网站都是以这种形式去加载图片的。之前我们也学习过通过获取图片的链接地址就可以请求图片数据。
这样的形式存在于页面当中的图片,如果一旦页面图片很多的话,就意味着需要发送很多次网络请求,去请求图片数据。
以字符串形式存在于html中的图片,和上述形式有明显的区别。这样形式的图片在html页面中是以字符串的形式去展示图片,而不是一个链接。
这样的好处是加载页面的时候,不用发送网络请求去请求图片数据。因为我们在请求html页面的时候就已经拿到图片的字符串数据,浏览器只需要转换图片为二进制形式展示就可以了。
学习更多知识或解答疑问、源码、教程请点击
有利也有弊,这样做虽然网络请求的次数少了,但是我们需要把图片转换成字符串形式才可以放到标签里面。如果图片数据过大,那么转换之后的字符长度就会很长。所以一般网页中字符串形式的图片都是数据量比较小的图片,比如验证码。
如何进行图片形式的转化
前面我们讲了图片有两种形式,链接形式的图片我们通过requests发送请求就可以拿到图片的二进制数据,保存下来就可以用看图软件查看。这种形式的图片处理就不做赘述了。
那么字符串的形式的图片我们应该如何处理呢?
字符串形式的图片我们可以借助base64模块进行处理。
-
base64.b64decode()
把字符串形式的图片转化为二进制的数据,传入图片的字符串数据 -
base64.b64encode()
把二进制形式的图片转化为字符串数据,传入图片的二进制数据
打码平台
现在很多网站都会使用验证码来进行反爬,所以为了能够更好的获取数据,需要了解如何使用打码平台破解爬虫中的验证码。
相比于复杂繁琐的验证码破解,打码平台能够给你快速的解决方案。今天我们就通过快识别验证码平台学习对接验证码平台识别验证码。
价格体系
看打码平台首先应该了解就是价格体系,那是实实在在的真金白银。
快识别价格体系
相对于其他打码平台,快识别价格还是比较公道的。普通的验证码2厘钱一次,意味着普通验证码一元可以打500次。
开发文档
每个打码平台既然给用户提供服务,那么就会提供一系列服务接口供用户使用。以及这些接口往往都会以开发文档的形式教用户怎么去使用。以下是快识别的开发文档:
注意快识别开发文档在页面更新不及时,可以查看最新文档在线地址,地址在上图标红处。
开发文档中对应的有各个语言的示例接口,我们对应的选择python的示例接口自己去实现就好了。
相关文章
- Python获取时间戳_python爬虫时间戳
- Python爬虫之urllib
- 一个Python小白5个小时爬虫经历
- python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器
- python判断文件后缀_Python 判断文件后缀是否被篡改
- python抛出异常写法_零基础学 Python(32):如何抛出和捕获异常?「建议收藏」
- python网页爬虫代码_python md5加密解密
- Python爬虫基础
- 看完这个,还不会【Python爬虫环境】,请你吃瓜
- 使用ChatGPT自动编写Python爬虫脚本
- Python面向对象编程-三大特性-继承-多重继承
- scrapy 管理部署的爬虫项目的python类详解程序员
- Python学习之路 (四)爬虫(三)HTTP和HTTPS详解编程语言
- Python与MongoDB 无缝连接(python连接mongodb)
- 在Python中简单调用MySQL(python调用mysql)
- Python代理抓取并验证使用多线程实现
- python实现倒计时的示例
- 零基础写python爬虫之爬虫的定义及URL构成
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- 零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
- 零基础写python爬虫之urllib2使用指南