大数据采集与爬虫课件任务6反爬虫技术主流验证码解析615.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大数据采集与爬虫课件任务6反爬虫技术主流验证码解析615.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 采集 爬虫 课件 任务 技术 主流 验证 解析 615
- 资源描述:
-
1、任务任务6 6 反爬虫技术反爬虫技术主流验证码解析主流验证码解析本章学习目标 了解图形验证码的基本含义 掌握tesserocr库的安装和基本用法 了解使用tesserocr解析自定义图形验证码 了解滑动验证码的基本概念 了解Selenium和ChromeDriver的安装和配置并实现滑动验证码的解析 了解点击式验证码的基本概念并其技术特点 了解聚合数据平台接口的网络API的使用方式并实现点击式证码的解析6.1.5 自定义图形验证码的生成【实例6-1】本实例使用一个较为简单的图形验证码作为案例来讲解一下图形验证码解析的过程。首先,使用Python通过导入特定模块生成一个比较简单的图形验证码。具体
2、步骤介绍如下:1)导入random模块,该模块用于生成图形验证码的随机数字。例如,random.randint(a,b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a=n=b。import random 2)导入Image,ImageDraw,ImageFont模块,用于生成图片和字体。Image模块创建一个可用来对image进行操作的对象,对所有即将使用ImageDraw中操作的图片都要先进行这个对象的创建。ImageFont模块创建字体对象给ImageDraw中的text函数使用。这里需要首先安装Pillow(基于Python的图像库)。具体导入步骤可以
3、参考前面章节。如图6-14所示。然后在通过PIL导入Image,ImageDraw,ImageFont。from PIL import Image,ImageDraw,ImageFont图6-14 安装Pillow(3)定义图形验证码的背景图片。使用Image类实例化一个长为200px,宽为50px,基于RGB(200,220,210)颜色的图片。image=Image.new(mode=RGB,size=(200,50),color=(200,220,210)(4)Draw类实例化一支画笔,用于是实现在背景图片之上实现验证码的文字内容。image表示作用于的图片实例,mode=RGB表示采用
4、的配色方案。draw_brush=ImageDraw.Draw(image,mode=RGB)(5)定义在图形验证码中要使用的字体规格。注意:truetype方法中使用的字体名称一定要小写,不然会报错。arial.ttf表示字体风格,28表示字体大小。character_font=ImageFont.truetype(arial.ttf,28)(6)使用for循环和range(7)实现7次循环。循环体中使用random.choice方法随机选择其中生成的ASCII码为65-90的英文字母和0-9的数字,并分别使用chr和str方法将其转换为字符和字符串。random.randint方法将在每次
5、循环过程中随机生成一种字体颜色。最后使用draw_brush的text方法实现字体的间隔为i*30px,纵向为0px,字体颜色和字体大小。for i in range(7):character=random.choice(chr(random.randint(65,90),str(random.randint(0,9)character_color=(random.randint(0,255),random.randint(0,255),random.randint(0,255)draw_brush.text(i*30,0,character,character_color,font=char
6、acter_font)(7)使用with open把生成的图片保存为test.png格式。“test.png”表示当前目录中要写入的文件名称,如果没有将创建一个。“wb”表示将以二进制的方式写入该文件。因为保存的是一张图片,所以使用二进制的方式写入。接着使用image的save方法将该图片以“png”的格式保存。with open(test.png,wb)as f:image.save(f,format=png)(8)运行结果如图6-15所示。图6-15 图形验证码完整代码如下。import randomfrom PIL import Image,ImageDraw,ImageFontimag
7、e=Image.new(mode=RGB,size=(200,40),color=(200,220,210)draw_brush=ImageDraw.Draw(image,mode=RGB)character_font=ImageFont.truetype(arial.ttf,28)for i in range(7):character=random.choice(chr(random.randint(65,90),str(random.randint(0,9)character_color=(random.randint(0,255),random.randint(0,255),random
展开阅读全文