亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 爬蟲之圖片驗證碼處理

爬蟲之圖片驗證碼處理

來源:千鋒教育
發布人:qyf
時間: 2022-09-19 17:39:37 1663580377

  了解常見驗證碼

  在日常生活與工作中,在進行各類設計個人賬戶安全的操作時,往往需要填寫各種驗證碼來進行驗證,短信、語音、文字、問答、圖片、拖拽、旋轉騰挪、拼圖接圖.......千奇百怪,各種各樣,種類繁多,花樣迭起!就拿奇葩驗證碼鼻祖的12306來說,如今我們在12306中可以碰到各種有趣,各種類型的驗證碼的原因,要歸功于為搶票事業做出巨大貢獻的——黃牛們,它的“進化史”就是一部不斷與黃牛和搶票軟件“斗智斗勇”的歷史。

Picture

  目前我們常見的驗證碼,無非就是文本、圖像以及音頻這三大類。

Picture(1)

  而當文本驗證碼仍容易被機器“擊破”時,圖像驗證碼就應運而生了。通常是會提供一些物體、動物、植物、人、風景之類的圖像,讓我們選擇正確的圖像進行標記。這就是以12306為首的圖像驗證碼了,但是這個還不算后來圖像驗證碼又增加了新的玩法,比如旋轉圖片,比如拼圖以及宮格,目的還是為了對抗爬蟲這些機器。

Picture(2)

  接下來是音頻驗證碼,這種相比前兩種數量相對要小一些,主要是會給我們一段錄音,里面有隨機的單詞或數字,有的會加一些噪音,我們基于錄音輸入其中聽到的單詞或數字,或者把它讀出來。從安全性上來說,聲音驗證碼比文本和圖像等級要提升一個層級,因為機器想要聽錄音并分辨,這個難度會非常大。

Picture(3)

  驗證碼的處理方案

  • 手動輸入(input) 這種方法僅限于登錄一次就可持續使用的情況

  • 圖像識別引擎解析 使用光學識別引擎處理圖片中的數據,目前常用于圖片數據提取,較少用于驗證碼處理

  • 打碼平臺 爬蟲常用的驗證碼解決方案

  圖像識別引擎

  OCR,即Optical Character Recognition,光學字符識別,是指通過掃描字符,然后通過其形狀將其翻譯成電子文本的過程,對應圖形驗證碼來說,它們都是一些不規則的字符,這些字符是由字符稍加扭曲變換得到的內容,我們可以使用OCR技術來講其轉化為電子文本,然后將結果提取交給服務器,便可以達到自動識別驗證碼的過程

  tesserocr與pytesseract是Python的一個OCR識別庫,但其實是對tesseract做的一層Python API封裝,pytesseract是Google的Tesseract-OCR引擎包裝器;所以它們的核心是tesseract,因此在安裝tesserocr之前,我們需要先安裝tesseract。

  圖片識別引擎環境的安裝

  1 引擎的安裝

  • mac環境下直接執行命令

  brew install --with-training-tools tesseract

  • windows環境下的安裝 可以通過exe安裝包安裝,下載地址可以從GitHub項目中的wiki找到。安裝完成后記得將Tesseract 執行文件的目錄加入到PATH中,方便后續調用。

  • linux環境下的安裝

  sudo apt-get install tesseract-ocr

  2 Python庫的安裝

  # PIL用于打開圖片文件

  pip/pip3 install pillow

  # pytesseract模塊用于從圖片中解析數據

  pip/pip3 install pytesseract

  本次案例我們使用圖片識別引擎識別驗證碼登陸古詩文網

Picture(4)

  通過分析我們發現驗證碼點擊刷新的鏈接是:

Picture(5)

  所以我們請求10次本鏈接獲取10張圖片,進行圖片識別

  import time

  from PIL import Image

  import pytesseract

  import requests

  headers = {

  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"

  }

  image_url = 'https://so.gushiwen.org/RandCode.ashx'

  # 下載驗證碼圖片

  session = requests.Session() # 使用session是為了保證驗證碼的請求和登陸請求信息一致

  for i in range(10):

  r = session.get(image_url, headers=headers)

  with open('images/code'+str(i)+'.jpg', 'wb') as fp:

  fp.write(r.content)

  time.sleep(10)

  print('下載完成第'+str(i)+'張!')

  # 依次識別并保存到文件中

  # 進行二值處理

  def erzhihua(image, threshold):

  ''':type image:Image.Image'''

  image = image.convert('L')

  table = []

  for i in range(256):

  if i < threshold:

  table.append(0)

  else:

  table.append(1)

  return image.point(table, '1')

  # 對剛才保存的10張圖片進行識別

  for i in range(10):

  im = Image.open('images/code' + str(i) + '.jpg')

  im = erzhihua(im, 127)

  im.show()

  result = pytesseract.image_to_string(im, lang='eng')

  print(result)

  但是很遺憾10次或者更多次數才能打碼成功一次。

  打碼平臺

  此時我們就要尋求專業的打碼平臺,申請第三方的平臺,宋宋試了一下阿里提供的各種免費的打碼平臺。鏈接:https://market.aliyun.com/products/?keywords=圖片識別驗證碼,但是識別效果不是很佳(哈哈因為是免費的緣故吧!只有標記優品的那個還不錯其他的也可以自行試一試)。

Picture(6)

  為了測試它的識別效果,我們嘗試申請成交次數最多的那個,查看官方API說明如下:

Picture(7)

  因此我們使用驗證碼打碼平臺獲取驗證碼并登錄

  實現思路:

  使用requests.session獲取圖片并進行本地保存

  使用打碼平臺識別圖片

  獲取登錄鏈接,登陸鏈接是一個post請求,并攜帶了你的表單中填入的用戶名和密碼

  登陸獲取cookies, 才能去訪問用戶的個人頁

  import json

  from PIL import Image

  import pytesseract

  import requests

  import urllib.request

  import base64

  import ssl

  ssl._create_default_https_context = ssl._create_unverified_context

  # 1. 使用requests.session獲取圖片并進行本地保存

  headers = {

  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"

  , 'Host': 'www.xqb5200.com'

  , 'Referer': 'https://www.xqb5200.com/login.php'

  }

  session = requests.Session() # 使用session是為了保證驗證碼的請求和登陸請求信息一致

  code_image_url = "https://www.xqb5200.com/checkcode.php"

  r = session.get(code_image_url, headers=headers)

  with open('code.jpg', 'wb') as fp:

  fp.write(r.content)

  # 2. 使用打碼平臺識別圖片

  # 修改API說明修改接口地址

  url = 'https://imgurlocr.market.alicloudapi.com/urlimages'

  method = 'POST'

  appcode = '你的APPCODE'

  querys = ''

  bodys = {}

  f = open(r'code.jpg', 'rb')

  contents = base64.b64encode(f.read())

  f.close()

  bodys['image'] = bytes("data:image/jpg;base64,", encoding="utf8")+contents

  post_data = urllib.parse.urlencode(bodys).encode(encoding='UTF8')

  request = urllib.request.Request(url, post_data)

  # 根據API的要求,定義相對應的Content-Type

  request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')

  request.add_header('Authorization', 'APPCODE ' + appcode)

  ctx = ssl.create_default_context()

  ctx.check_hostname = False

  ctx.verify_mode = ssl.CERT_NONE

  response = urllib.request.urlopen(request, context=ctx)

  content = response.read()

  if (content):

  code = json.loads(content.decode('utf-8'))

  print(code)

  print(code['result']['words'])

  # 3. 獲取登錄鏈接,登陸鏈接是一個post請求,并攜帶了你的表單中填入的用戶名和密碼

  login_url = "https://www.xqb5200.com/login.php?do=submit"

  # 用戶名和密碼大家可以注冊一個新的用戶

  data = {

  "username": "你的用戶名",

  "password": "你的秘密",

  "checkcode": code,

  "action": "login",

  "submit": "%26%23160%3B%B5%C7%26%23160%3B%26%23160%3B%C2%BC%26%23160%3B"

  }

  # 4. 登陸獲取cookies, 才能去訪問用戶的個人頁

  response = session.post(url=login_url, headers=headers, data=data)

  response.encoding = 'utf-8'

  cookies = response.cookies

  # 查看登陸是否成功了

  with open('logsucess.html', 'wb') as fp:

  response.encoding = response.apparent_encoding

  fp.write(response.content)

  這樣我們還是可以識別這個驗證碼的,如圖

Picture(8)

  最后保存到本地的文件,顯示登陸成功

Picture(9)

  還有滑動驗證碼和點觸驗證碼的使用以及selenium+驗證碼登陸,期待下篇文章給大家分享...

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
成熟人妻AV无码专区| 国产老熟女八AV| 亚洲成AV人片一区二区小说| 丰满的人妻HD高清日本| 亚洲国产成人久久综合下载| 精品国产三级A∨在线| JIZZYOU中国少妇高潮| 免费极品AV一视觉盛宴| 69美女ⅩXXXXXXX19| 日韩无人区一卡2卡三卡4卡仙| 果冻传媒一区二区天美传媒| 亚洲精品国精品久久99热 | 公交车上拨开丁字裤进入| 我和公GONG在厨房日本电影| 荷兰肥妇BBWBBWBBW| 中文字幕四区五区六区蜜桃| 日韩精品无码综合福利网| 久久久久久久99精品国产片| 中文字幕久久久久人妻中出| 午夜在线观看的免费网站| 邻居少妇张开腿让我爽了在线观看| 把腿张开我要CAO死你在线观看| 亚洲日韩国产精品第一页一区 | 最新中文字幕AV无码不卡| 亚洲国产AV高清无码| 污污污WWW精品国产网站| 人人妻人人澡人人爽欧美精品| 老师趴讲台屁股撅起来作文| 好紧真爽喷水高潮视频办公室| 大乳丰满人妻中文字幕日本| JAPANESEHD熟女熟妇伦| 在卫生间被教官做好爽| 亚洲精品TV久久久久久久久久 | 亚州日本乱码一区二区三区| 日出水了好深好涨| 人妻[21P]大胆| 老头扒开粉嫩的小缝亲吻网站| 精品一区二区三人妻视频| 好爽…又高潮了毛片免费看| 国产精品无码AV无码| 成人午夜爽爽爽免费视频| 被公疯狂进入的美丽人妻| 在厨房娇妻被朋友胯下挺进| 亚洲 无码 制服 日韩 中文| 挺进邻居丰满少妇的身体| 日韩欧洲亚洲SUV| 免费光看午夜请高视频| 姬小满乳液狂飙奖励自己| 差差漫画网页登录页面弹窗| 超碰成人人人做人人爽| 亚洲午夜精品久久久久久浪潮| 亚洲人妻免费视频| 一二三四电影在线观看视频播放免 | 国产一区二区三区在线视頻| 国产SM调教视频在线观看| 国产成人AV无码专区亚洲AV| 国产VA在线观看免费| 第一章少妇初尝云雨| 国产精品久久久久久影视| 丰满妇女强高潮ⅩXXX| 国产精品亚洲ΑV天堂无码| 国产一区二区三区影院| 国产亚洲精品一区在线播放| 国产男女猛烈无遮挡免费网站| 国产又色又爽又刺激在线播放| 好深好湿好硬顶到了好爽| 娇小XXXXBXBⅨ黑人XX| 旅人蕉天堂鸟的区别视频| 日本无遮挡真人祼交视频| 内射老妇BBWX0C0CK| 九月婷婷亚洲综合成人| 男人强撕开奶罩揉捏我奶头视频| 精品午夜福利1000在线观看| 久久久久免费看成人影片| 欧美国产日韩久久MV| 天天爽夜夜爽夜夜爽| 亚洲国产精品无码久久久动漫| 2019国产情侣超清在线| 国产嗷嗷叫高潮快点再用力| 黑人玩弄人妻中文在线| 欧美黑人又粗又大又爽免费| 人妻无码久久精品人妻| 忘忧草在线影院WWW动漫图片| 亚洲欧美在线综合色影视| 99热成人精品热久久6网站| 国产精品视频一区二区三区无码| 久久99精品久久久久久9| 日本久久99成人网站| 亚洲国产一区二区三区在线观看| A级大胆欧美人体大胆666| JIZZJIZZ中国护士高清多| 国产清纯白嫩初高生在线观看| 麻豆亚洲AV永久无码精品久久| 日韩人妻无码精品免费SHIPI | 天天摸天天添天天爱| 亚洲精品AⅤ无码精品| 一二三四免费观看视频中国| CAOPORN最新地址| 男女高潮免费观看无遮挡| 未满十八18禁止免费无码网站| 3D动漫精品啪啪一区二区免费| 久久国产一区二区三区| 精品乱码久久久久久中文字幕 | 被公牛日到了高潮| 男生把QQ放进女生的QQ里在线| 亚洲区小说区图片区QVOD| 国产偷国产偷精品高清尤物| 欧洲美熟女乱又伦AV曰曰| 中国西西大胆女人裸体艺术| 国语精品自产拍在线观看网站| 推高她的裙子挺身而入| 东北妇女精品BBWBBW| 日本不良网站正能量入口大豆行情| 真实的国产乱XXXX在线| 精品3D动画肉动漫在线无码| 性一交一乱一性一在线观看| 国产成人精品午夜福利APP色多| 国产成人精品一区二区三区| 久久国产精品亚洲艾草网| 国产精品色内内在线播放| 人妻无码一区二区视频| 99精品国产再热久久无毒不卡| 久久天天躁狠狠躁夜夜AⅤ| 西西人体午夜视频无码| 国产成人无码精品久久久露脸| 少妇无码太爽了在线播放| 绯色AV一区二区三区蜜臀| 日韩一区二区三区无码人妻视频| 菠萝蜜视频APP在线观看| 日本JAPANESE猛男GAY| 唱歌的大姐姐也想做| 欧美亚洲国产SUV| 中文字幕无线码一区二区| 亚洲精品成人A在线观看| 国产超碰AV人人做人人爽| 日本一丰满一BBW| WWW一区二区三区在线 || 老熟女HDXX中国老熟女| 一杆长枪直入两扇门| 噜噜狠狠色综合久色AⅤ五区| 伊人久久大香线蕉在观看| 美女裸体跪姿扒开屁股无内裤| 亚洲日韩丝袜熟女变态夜夜爽| 精品国产Ⅴ无码大片在线观看| 99久久精品国产一区二区| 久久综合香蕉国产蜜臀AV| 真人作爱90分钟免费看视频| 蜜桃AV无码国产丝袜在线观看 | 欧美性巨大╳╳╳╳╳高跟鞋| STEAMWORKSHOP魅魔| AV香港经典A毛片免费观看| 暗交拗女一区二区三区| 少妇高潮毛片免费看| 国产清纯在线一区二区WWW| 亚洲国产精品久久久久久久蜜桃| 久久大香伊蕉在人线免费AV| 中文字幕亚洲欧美专区| 精品一线二线三线精华液| 国产精品JIZZ在线观看老狼| 日本少妇三级HD激情在线观看 | 成人精品一卡2卡3卡4卡新区乱| 少女たちよ在线观看动漫4| 国产无遮挡又黄又爽动态图| 亚洲欧洲中文日韩AV乱码| 久亚洲一线产区二线产区三线产区| 7777色情XXXX欧美| 色窝窝无码一区二区三区| 国产丝袜无码一区二区三区视频| 亚洲色精品三区二区一区| 欧美人妻精品一区二区在线| 高潮喷视频在线无码| 亚洲AV永久无码一区二区三区| 久久久久国产精品熟女影院| ASIAN艳丽的少妇PICS| 天天躁夜夜躁天干天干2020| 精品人伦一区二区三区蜜桃| 99久久免费精品高清特色大片 | JAPAN丰满人妻VIDEOS| 非洲黑人最猛性XXXX交| 亚洲AV片无码久久尤物| 国产69囗曝吞精在线视频| 亚洲国产成人高清在线观看| 男女差差差差差打扑克视频| 非洲黑人妇女XXXXXHD| 亚洲人成电影网站色MP4| 屁屁草草影院CCYYCOM| 国产女人18毛片水真多18精品| 一二三四免费中文在线| 日产中文字幕在线精品一区| 精品国产VA久久久久久久冰| A级毛片无码久久精品免费| 西欧FREE性满足HD| 男生坤坤放在女生坤坤叫什么| 国产精品国产三级欧美二区| 曰韩无码AV一区二区免费| 水蜜桃国产成人精品网站| 巨大黑人一级毛片| 国产精品国产三级国产专区50| 在线观看无码AV网站永久| 天天躁日日躁狠狠躁AV中文|