精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用 Python 生成并識別圖片驗證碼

開發(fā) 前端
?本次來分享一個關(guān)于驗證碼的知識,在登錄網(wǎng)站時,為了確保是人在操作,一般會要求輸入圖片上的驗證碼。那么這個驗證碼要怎么生成呢?以及在做爬蟲的時候,怎么用機器來識別呢?

本次來分享一個關(guān)于驗證碼的知識,在登錄網(wǎng)站時,為了確保是人在操作,一般會要求輸入圖片上的驗證碼。那么這個驗證碼要怎么生成呢?以及在做爬蟲的時候,怎么用機器來識別呢?

圍繞著這兩個問題,我們開始今天的內(nèi)容。

生成驗證碼

所謂驗證碼就是一張圖片,圖片上有一些數(shù)字和字母。所以我們只要生成一張圖片,然后在圖片上寫一些內(nèi)容即可。

使用 PIL 模塊可以非常方便做到這一點,沒有安裝的話,需要執(zhí)行 pip install pillow。

from random import randint, sample
import string
from PIL import Image, ImageFont, ImageDraw


# 隨機生成畫板顏色
bg_color = randint(0, 255), randint(0, 255), randint(0, 255)
# 定義畫板的寬和高
width, height = 200, 80
# 創(chuàng)建畫板對象
im = Image.new("RGB", (width, height), bg_color)
# 創(chuàng)建畫筆對象,接收畫板對象
# 這樣一來,畫筆所畫的內(nèi)容都會顯示在畫板上
draw = ImageDraw.Draw(im)
# 繪制噪點,噪點的數(shù)量一般為 width * height * 0.1
for _ in range(int(width * height * 0.1)):
    # 噪點的橫縱坐標
    point_pos = randint(0, width), randint(0, height)
    # 噪點的顏色,盡量也是隨機的
    point_color = randint(0, 255), randint(0, 255), randint(0, 255)
    # 繪制
    draw.point(point_pos, point_color)

# 查看繪制的圖片
im.show()

執(zhí)行代碼,會生成圖片,我們看一下長什么樣子。

圖片圖片

可以看到噪點此刻繪制出來了,再為其繪制幾條直線和曲線。

# 直線的長度要從畫板的左邊到畫板的右邊
# 因此左端點要在畫板左側(cè)上下變化,右端點要在畫板右側(cè)上下變化
for _ in range(5):
    left_pos = 0, randint(0, height)
    right_pos = width, randint(0, height)
    line_color = randint(0, 255), randint(0, 255), randint(0, 255)
    # 繪制直線
    draw.line([left_pos, right_pos], line_color)

# 繪制曲線,這里繪制的是一個超出畫板的大圓
# 這樣在畫板上顯示的部分只是大圓的一條弧,看起來就像是一條曲線
for _ in range(5):
    left_pos = (-100, -100)
    right_pos = (width * 5, randint(0, height))
    arc_color = randint(0, 255), randint(0, 255), randint(0, 255)
    draw.arc([left_pos, right_pos], 0, 360, arc_color)

# 查看一下,繪制的圖形長什么樣子
im.show()

直線和曲線也繪制好了,看下效果。

圖片圖片

效果還是不錯的,最后我們來繪制文字。

# 驗證碼是由文字和數(shù)字組成,先來獲取所有的數(shù)字和字母
alpha_digit = string.ascii_letters + string.digits
# 驗證碼一般是四個字符,從里面隨機選取4個
verify_code = sample(alpha_digit, 4)
# 生成字體對象
font = ImageFont.truetype("/System/Library/Fonts/Courier.ttc", 40)
# 為四個字符創(chuàng)建四種顏色
text_color = [(randint(0, 255), randint(0, 255), randint(0, 255))
              for _ in range(4)]
# 繪制文字
# 注意:坐標加上字體的寬度不要超出畫板,否則顯示不全
draw.text((10, 10), verify_code[0], fill=text_color[0], fnotallow=font)
draw.text((60, 25), verify_code[1], fill=text_color[1], fnotallow=font)
draw.text((110, 15), verify_code[2], fill=text_color[2], fnotallow=font)
draw.text((150, 25), verify_code[3], fill=text_color[3], fnotallow=font)

# 繪制完成,最后再查看一下
im.show()

到此我們的驗證碼就生成完畢了,那么效果如何呢?我們查看一下。

圖片圖片

整體來看還湊合,你也可以對背景色,以及文字的顏色進行調(diào)整。如果覺得背景里的噪點、線段不太好,也可以將它們?nèi)サ簟?/p>

最后再來說說保存,代碼中的 im.show() 實際上是打開了一個臨時文件,我們?nèi)绾螌⑺4嫦聛砟兀?/p>

# 可以輸入一個路徑,然后保存成指定的文件
# 不過更常見的做法是拿到圖片的字節(jié)流,然后直接對字節(jié)流進行渲染
from io import BytesIO
buf = BytesIO()
im.save(buf, "png")
# 此時圖片內(nèi)容就保存在了 buf 中
print(buf.getvalue()[: 6] == b"\x89PNG\r\n")  # True

以上就是繪制驗證碼的過程,代碼是分塊展示的,你可以將它們合在一起,測試一下。

識別驗證碼

說完了生成驗證碼,那么如何識別驗證碼呢?Python 有一個第三方庫 ddddocr,可以幫我們識別,直接 pip install ddddocr 安裝即可。

我們目前已經(jīng)生成了一張驗證碼:

圖片圖片

這里補充一句,我們上面生成的驗證碼圖片,在顏色上設(shè)計的不太好,因為背景色和文字顏色都是隨機的,這就導致當顏色相近時,看不清文字內(nèi)容。

而當文字顏色和背景色比較接近時,ddddocr 識別的準確率就會降低很多,特別是背景中還有噪點和線段作為干擾。不過一般來說網(wǎng)站的驗證碼圖片都是經(jīng)過設(shè)計的,背景色和文字顏色區(qū)別還是比較大的,所以不用擔心。

我們測試一下:

import ddddocr

with open("code.png", "rb") as f:
    data = f.read()

# show_ad 默認為 True,執(zhí)行時會輸出一些廣告,我們不讓它輸出
ocr = ddddocr.DdddOcr(show_ad=False)
code = ocr.classification(data)
print(code)  # 7abf

結(jié)果沒有問題,識別出來了。

以上就是關(guān)于圖片驗證碼的一些內(nèi)容。

責任編輯:武曉燕 來源: 古明地覺的編程教室
相關(guān)推薦

2023-10-27 08:53:13

Python驗證碼圖片識別

2012-05-24 15:41:38

PHP

2013-06-19 10:19:59

2021-07-22 10:25:07

JS驗證碼前端

2020-12-29 05:33:03

Serverless驗證碼架構(gòu)

2022-09-21 08:40:04

OCR技術(shù)驗證碼

2009-11-23 16:34:22

PHP GD庫

2009-08-06 16:30:58

C#代碼和驗證碼圖片

2022-05-11 07:41:31

Python驗證碼

2021-09-09 08:55:50

Python項目驗證碼

2021-06-16 06:58:09

TensorFlow識別驗證碼

2009-06-26 15:17:27

jQuery

2015-03-18 10:41:34

圖片驗證驗證碼12306

2021-08-11 09:51:24

人工智能機器學習技術(shù)

2014-04-24 10:09:05

驗證碼C#

2022-07-20 09:52:44

Go語言短信驗證碼

2020-08-12 09:14:45

Python驗證碼工具

2024-03-08 12:04:22

PythonPillow驗證碼

2020-11-16 07:28:53

驗證碼
點贊
收藏

51CTO技術(shù)棧公眾號

97人人精品| 国产精品一级视频| 美女一区二区在线观看| 欧美性猛交xxxx乱大交蜜桃| 欧美日韩一区二区三区在线视频| 免费看91的网站| 福利精品一区| 一区二区三区中文字幕电影| 国内精品一区二区| 国产91av在线播放| 综合久久精品| 精品视频在线导航| 国产一伦一伦一伦| av漫画网站在线观看| 国产日韩欧美精品一区| 99re在线视频观看| 国产99免费视频| 一区二区在线| 亚洲欧美成人网| 两女双腿交缠激烈磨豆腐| 国产视频网址在线| 国产一区二区日韩精品| 青青草99啪国产免费| 日韩精品xxx| gay欧美网站| 亚洲美女一区二区三区| 欧美日韩一区二区三区在线观看免| 国产欧美久久久| 久久三级视频| 国模吧一区二区三区| 女同久久另类69精品国产| 久久97精品| 69堂国产成人免费视频| 91看片就是不一样| av手机在线观看| 亚洲男人天堂一区| 亚洲欧洲一区二区在线观看| 午夜成人免费影院| 国产高清亚洲一区| 国产在线拍偷自揄拍精品| 国产午夜性春猛交ⅹxxx| 这里只有精品在线| 日韩中文字幕在线视频播放| 精品黑人一区二区三区观看时间| 日韩免费精品| 欧美精品一级二级三级| 日本新janpanese乱熟| 久草在线中文最新视频| 亚洲精品综合在线| www.午夜色| 1769在线观看| 国产日韩精品一区二区三区在线| 久久精品国产综合精品 | 欧美视频一二三区| 不卡影院一区二区| 欧美少妇精品| 精品欧美aⅴ在线网站| 男人添女荫道口女人有什么感觉| 瑟瑟视频在线| 国产精品福利一区| 一区高清视频| 在线观看的av| 国产婷婷色一区二区三区在线| 久久国产一区二区| 日韩欧美电影在线观看| 99久久国产综合精品女不卡| 黄色99视频| 天堂av在线资源| 91老师片黄在线观看| 国产一区二区三区黄| 手机福利在线| 国产亚洲欧美激情| 亚洲高清123| 欧美成人精品一区二区男人看| 精品在线一区二区| 成人自拍性视频| 国产999久久久| 国产成人精品亚洲午夜麻豆| 成人一区二区在线| 污视频网站免费观看| www一区二区| 日本成人黄色| 欧美日韩在线资源| 亚洲精品视频一区| 国产婷婷一区二区三区| 欧美专区福利免费| 69精品人人人人| 亚洲麻豆一区二区三区| 偷拍亚洲精品| 日韩在线观看网址| 免看一级a毛片一片成人不卡| 亚洲福利久久| 国产精品久久久久福利| 国产日韩欧美中文字幕| 成人免费视频app| 欧美日韩精品久久久免费观看| 成年人免费在线视频| 最新高清无码专区| 日本一区免费| 男人的天堂在线视频免费观看 | 国产精品xxxx| 九色在线免费| 亚洲激情综合网| 北条麻妃av高潮尖叫在线观看| 欧美一区二区三区婷婷| 亚洲精品一线二线三线无人区| 国产免费一区二区三区网站免费| 欧美69视频| 一个色综合导航| 69av视频在线| 免费视频一区二区| 国产精品wwwwww| 国产激情久久久久久熟女老人av| 久久久久久久久岛国免费| eeuss中文| 日韩网站中文字幕| 一本高清dvd不卡在线观看| 香蕉视频999| 久久av资源| 久久久久亚洲精品国产| 中文字幕免费在线看| zzijzzij亚洲日本少妇熟睡| 亚洲视频在线观看日本a| 国模精品视频| 日韩欧美一区中文| 91av免费观看| 久久亚洲成人| 国产精品999| 亚洲aaa在线观看| 亚洲免费观看在线观看| 欧美特级aaa| 九九亚洲精品| 91极品女神在线| 性欧美18一19性猛交| 中文字幕制服丝袜一区二区三区| 国产在线观看福利| 另类尿喷潮videofree| 欧美国产第一页| 国产伦精品一区二区三区四区 | 国产视频一区二区三区四区| 免费av在线网站| 欧美最新大片在线看| 一二三不卡视频| 亚洲免费大片| 国产乱子伦精品| 手机av在线播放| 91精品国产91久久综合桃花 | 国产一区二区三区朝在线观看| 亚洲激情自拍图| 日韩av女优在线观看| 国产成人99久久亚洲综合精品| 亚洲国产一区在线| 欧美大片1688网站| 国产一区二区动漫| 亚洲欧美日韩一区二区三区四区| 久久色视频免费观看| 116极品美女午夜一级| 一呦二呦三呦精品国产| 亚洲精品综合久久中文字幕| 色婷婷av国产精品| 91免费在线看| 色婷婷综合久久久久中文字幕| 国产免费av一区二区三区| 国产999精品久久久影片官网| 噜噜噜在线观看播放视频| 91福利在线免费观看| 亚洲а∨天堂久久精品2021| 日本欧美在线观看| 中文字幕在线亚洲精品| 清纯唯美激情亚洲| 国内精品美女av在线播放| 少妇av在线播放| 日韩欧美一区二区三区久久| 久久国产柳州莫菁门| 日本不卡一区二区| 懂色av一区二区三区四区五区| 精品一区二区三区中文字幕在线 | 91久久精品一区二区别| 手机在线免费av| 日韩成人在线视频| 日韩欧美国产另类| 亚洲欧美日韩国产成人精品影院| 涩视频在线观看| 一本色道久久综合亚洲精品高清| 免费av一区二区三区| a屁视频一区二区三区四区| 久久久成人精品视频| 欧美一区二区三区激情| 一本大道久久a久久精二百| 青青青手机在线视频| 国产成人av一区| 久久久久人妻精品一区三寸| 日韩国产一区二区| 97人人模人人爽人人喊38tv| 中文在线免费二区三区| 日韩欧美一二区| 日韩成人免费观看| 久久久国际精品| 亚洲三级在线视频| 天堂av在线一区| 亚洲天堂第一区| 精品中文字幕一区二区三区av| 成人午夜高潮视频| 涩涩视频在线免费看| 日韩亚洲一区二区| 午夜视频在线免费播放| 555www色欧美视频| 欧美a视频在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲成人av免费在线观看| 老色鬼精品视频在线观看播放| 青娱乐国产91| 美国十次综合久久| 国产精品久久久久不卡| caoprom在线| 久久精品中文字幕| 国产最新视频在线观看| 精品成人私密视频| 国产又粗又黄又爽视频| 一本色道a无线码一区v| 国产无遮挡又黄又爽在线观看 | 北条麻妃在线观看视频| 青青草国产成人av片免费 | 亚洲欧洲日本一区二区三区| 亚洲一二三区在线| 一区二区三区日本久久久| 99久久精品久久久久久ai换脸| 日韩av免费| …久久精品99久久香蕉国产| 2024最新电影在线免费观看| 中文字幕亚洲图片| 毛片免费在线播放| 日韩激情av在线免费观看| 精品欧美一区二区精品少妇| 欧美视频在线播放| 婷婷激情五月综合| 色呦呦国产精品| 亚洲黄色一区二区| 亚洲高清视频的网址| 看片网站在线观看| 亚洲精品中文在线| 五月综合色婷婷| 国产精品毛片久久久久久久 | 亚洲欧洲在线观看av| 免费观看av网站| 91亚洲男人天堂| 李丽珍裸体午夜理伦片| 国产成人久久精品77777最新版本| 国产欧美一区二| 美女在线观看视频一区二区| 欧美日韩在线免费播放| 久久看片网站| 99视频精品免费| 日韩高清欧美激情| 91国产精品视频在线观看| 日本怡春院一区二区| 91网址在线播放| 蜜桃av一区二区三区电影| 亚洲不卡视频在线| 久久99在线观看| 日本女人黄色片| 国产69精品久久99不卡| 久草视频福利在线| www精品美女久久久tv| 女~淫辱の触手3d动漫| 国产性色一区二区| 午夜黄色福利视频| 亚洲日本va午夜在线影院| 日本妇女毛茸茸| 亚洲一卡二卡三卡四卡无卡久久 | 91蝌蚪精品视频| 成人欧美一区二区| 精品女人视频| 欧美精品亚洲精品| 欧美日中文字幕| 伊人久久99| 国产精品大片免费观看| 欧美爱爱视频免费看| 日日夜夜免费精品| 午夜啪啪小视频| 国产91精品露脸国语对白| 特级西西人体wwwww| 亚洲国产精华液网站w| 91嫩草|国产丨精品入口| 亚洲自拍偷拍欧美| 伦av综合一区| 欧美电影影音先锋| 色屁屁草草影院ccyycom| 亚洲小视频在线观看| av在线播放国产| 青草成人免费视频| 成人亚洲精品| 精品久久sese| 99久久夜色精品国产亚洲96| 久久综合一区二区三区| 精品毛片免费观看| 日韩欧美一级在线| 久久视频一区| 任你躁av一区二区三区| 国产婷婷色一区二区三区四区| 91日韩中文字幕| 欧美日韩在线视频首页| 国产一区二区小视频| 亚洲国产精品大全| 亚乱亚乱亚洲乱妇| 97不卡在线视频| 99精品女人在线观看免费视频 | 中文字幕永久免费视频| 欧美大片在线观看一区| 国产对白叫床清晰在线播放| 欧美激情第一页xxx| 久久久加勒比| 免费av一区二区三区| 欧美午夜a级限制福利片| 一道本视频在线观看| 99国内精品久久| 欧美三级 欧美一级| 欧美吻胸吃奶大尺度电影| 天堂av中文字幕| 美女国内精品自产拍在线播放| 日本成人片在线| 精品国产免费久久久久久尖叫| 欧美一区免费| 蜜臀av免费观看| wwwwww.欧美系列| 国产精品第一页在线观看| 宅男在线国产精品| 中文字幕在线观看日本| 日韩av不卡电影| 粉嫩一区二区三区四区公司1| 黄色一级视频播放| 日韩 欧美一区二区三区| 亚洲av片不卡无码久久| 午夜成人在线视频| 欧美一级淫片aaaaaa| 色综合五月天导航| 欧美久久一区二区三区| 黄色高清视频网站| 久久av资源网| 热re99久久精品国99热蜜月| 素人fc2av清纯18岁| 中文字幕在线不卡一区| 中日韩在线观看视频| 亚洲男人天堂九九视频| 日韩理论视频| 精品视频在线观看| 国产精品主播| 国产ts丝袜人妖系列视频| 婷婷综合在线观看| 国产乡下妇女做爰视频| 制服丝袜亚洲色图| 久草免费在线| 成人中文字幕+乱码+中文字幕| 99久久九九| 天天色天天综合网| 成人免费视频在线观看| 97超碰人人模人人人爽人人爱| 中文字幕一区二区精品| 99riav视频一区二区| 亚洲免费不卡| 久久99国内精品| 日韩三级在线观看视频| 91精品国产91久久久久久最新毛片 | 11024精品一区二区三区日韩| 亚洲天堂av女优| 日本欧美韩国| 亚洲午夜精品久久| 国产在线精品国自产拍免费| 久久久久亚洲av无码专区体验| 欧美一区三区四区| 色综合999| 国产日韩一区二区三区| 久久精品主播| 五月天免费网站| 日韩一区二区三区av| 日韩成人黄色| 国产不卡av在线免费观看| 日韩大片在线观看| 久久久福利影院| 亚洲成人免费av| 久久久pmvav| 国产视频观看一区| 欧美体内she精视频在线观看| 国产高潮视频在线观看| 色婷婷综合久色| 色网站免费在线观看| 成人欧美视频在线| 日日嗨av一区二区三区四区| 日韩一卡二卡在线观看| 欧美成人猛片aaaaaaa| 色影视在线观看| 91福利视频导航| 欧美中文字幕| 国产精品视频一区二区三 | 亚洲精品乱码久久久久| 女人18毛片一区二区三区| 日韩av电影手机在线| 91精品精品| 国产亚洲无码精品| 欧美一区二区三区啪啪|