最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬蟲模擬登錄之圖片驗(yàn)證碼實(shí)現(xiàn)詳解

 更新時(shí)間:2022年08月05日 09:20:30   作者:start?field  
眾所周知python是一個(gè)很強(qiáng)大的語(yǔ)言,它擁有眾多的庫(kù),今天我嘗試了使用python進(jìn)行驗(yàn)證碼的識(shí)別,下面這篇文章主要給大家介紹了關(guān)于python爬蟲模擬登錄之圖片驗(yàn)證碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下

我們?cè)谟门老x對(duì)門戶網(wǎng)站進(jìn)行模擬登錄是總會(huì)有輸入圖片驗(yàn)證碼的,例如這種

那我們?cè)趺唇鉀Q這個(gè)問(wèn)題實(shí)現(xiàn)全自動(dòng)的模擬登錄呢?只要思想不滑坡,辦法總比困難多。我這里使用的是百度智能云里面的文字識(shí)別功能,每天好像可以免費(fèi)使用個(gè)幾百次,識(shí)別效果也還行,對(duì)一般人而言是夠用了。

接下來(lái)說(shuō)說(shuō),怎么使用。

首先,打開百度智能云(https://cloud.baidu.com/)進(jìn)行登入,再進(jìn)入人工智能->文字識(shí)別里創(chuàng)建應(yīng)用。

在使用名稱和底下應(yīng)用描述隨便寫寫,然后點(diǎn)立即創(chuàng)建。 

 創(chuàng)建完成,就可以拿到 AppID 、API Key 、Secret Key

之后要在pycharm下載baidu-aip,然后導(dǎo)入AipOcr包。

from aip import AipOcr? ? ? ?#aip在baidu-aip中

 再然后就是初始化百度API

#百度API
APP_ID = '你的之前拿到的AppID'
API_KEY = '你的之前拿到的API Key'
Secret_Key = '你的之前拿到的Secret Key'

我們先要把 圖片驗(yàn)證碼下載下來(lái)進(jìn)行二值化處理,這樣識(shí)別的準(zhǔn)確率高一些。

這里要下載pillow庫(kù),然后導(dǎo)入Image包

from PIL import Image         #PIL在pillow庫(kù)中
    #圖片處理
    # 二值化處理 灰度閾值設(shè)為127,高于這個(gè)值的點(diǎn)全部填白色
    img_old = Image.open('code.jpg')
    img_old = img_old.convert('L') # 灰度圖 模式“L” 每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白
    threshld = 127 #設(shè)置閾值,圖片的像素范圍(0,255)
    table = []
    for i in range(256):
        if i <threshld:
            table.append(0)
        else:
            table.append(1)
    img_old = img_old.point(table,'1') # 對(duì)圖像像素操作 模式“1” 為二值圖像,非黑即白。但是它每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白
    img_old.save('code.jpg')

對(duì)于那些有干擾線,特別還是明暗交替的圖片驗(yàn)證碼來(lái)說(shuō),這樣很好的避免了被干擾。

這里的圖片中沒(méi)有太多干擾線且也沒(méi)有明暗交替所以看起來(lái)不明顯,只是想讓大家看看對(duì)比。

處理前                                                                                                                       處理后

后面就是調(diào)用baidu_aip來(lái)讀取圖片中的內(nèi)容。baidu_aip.handwriting

    #讀取處理后的驗(yàn)證碼
    with open('code.jpg','rb') as fp:
        img_new = fp.read()
    baidu_aip = AipOcr(APP_ID,API_KEY,Secret_Key)
    result = baidu_aip.handwriting(img_new)   #使用的是識(shí)別手寫文字,返回一個(gè)字典,其中words_result是一個(gè)列表,里面有識(shí)別結(jié)果也是一個(gè)字典
    print('驗(yàn)證碼是:',result['words_result'][0]['words'])

 baidu_aip.handwriting這里面有很多識(shí)別文字的方法,我用的是識(shí)別手寫文字,如果大家使用這個(gè)方法感覺(jué)效果不好可以選擇其他方法。

最后是完整的代碼。

# -- coding:UTF-8 --
import requests
from PIL import Image
from aip import AipOcr
 
 
 
 
if __name__ == "__main__":
    #百度API
    APP_ID = '你的之前拿到的AppID'
    API_KEY = '你的之前拿到的API Key'
    Secret_Key = '你的之前拿到的Secret Key'
 
    headers = {
        "user-agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 97.0.4692.71Safari / 537.36Edg / 97.0.1072.55"
    }
    url = 'http://www.hyocr.com/captcha.php'
    #下載驗(yàn)證碼圖片
    session = requests.session()
    img_data = session.get(url=url,headers=headers).content
    with open('./code.jpg','wb') as fp:
        fp.write(img_data)
    #圖片處理
    # 二值化處理 灰度閾值設(shè)為127,高于這個(gè)值的點(diǎn)全部填白色
    img_old = Image.open('code.jpg')
    img_old = img_old.convert('L') # 灰度圖 模式“L” 每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白
    threshld = 127 #設(shè)置閾值,圖片的像素范圍(0,255)
    table = []
    for i in range(256):
        if i <threshld:
            table.append(0)
        else:
            table.append(1)
    img_old = img_old.point(table,'1') # 對(duì)圖像像素操作 模式“1” 為二值圖像,非黑即白。但是它每個(gè)像素用8個(gè)bit表示,0表示黑,255表示白
    img_old.save('code.jpg')
 
    #讀取處理后的驗(yàn)證碼
    with open('code.jpg','rb') as fp:
        img_new = fp.read()
    baidu_aip = AipOcr(APP_ID,API_KEY,Secret_Key)
    result = baidu_aip.handwriting(img_new)   #使用的是識(shí)別手寫文字,返回一個(gè)字典,其中words_result是一個(gè)列表,里面有識(shí)別結(jié)果也是一個(gè)字典
    print('驗(yàn)證碼是:',result['words_result'][0]['words'])

這只是百度智能云里面的一個(gè)小功能,還有很多其他的功能,大家感興趣可以去看看百度智能云里面的官方文檔 ,還有視頻教程。

總結(jié)

到此這篇關(guān)于python爬蟲模擬登錄之圖片驗(yàn)證碼實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python爬蟲圖片驗(yàn)證碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何利用pyinstaller打包Python程序?yàn)閑xe可執(zhí)行文件

    如何利用pyinstaller打包Python程序?yàn)閑xe可執(zhí)行文件

    這篇文章主要給大家介紹了關(guān)于如何利用pyinstaller打包Python程序?yàn)閑xe可執(zhí)行文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Django models filter篩選條件詳解

    Django models filter篩選條件詳解

    這篇文章主要介紹了Django models filter篩選條件詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python如何拆分含有多種分隔符的字符串

    python如何拆分含有多種分隔符的字符串

    這篇文章主要為大家詳細(xì)介紹了python如何拆分含有多種分隔符的字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python 解決OpenCV顯示中文字符的方法匯總

    python 解決OpenCV顯示中文字符的方法匯總

    因工作需要,要在圖片中顯示中文字符,并且要求速度足夠快,在網(wǎng)上搜羅一番后,總結(jié)下幾個(gè)解決方法,對(duì)python 解決OpenCV顯示中文字符相關(guān)知識(shí)感興趣的朋友一起看看吧
    2024-04-04
  • 自定義Django_rest_framework_jwt登陸錯(cuò)誤返回的解決

    自定義Django_rest_framework_jwt登陸錯(cuò)誤返回的解決

    這篇文章主要介紹了自定義Django_rest_framework_jwt登陸錯(cuò)誤返回的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python爬蟲爬取疫情數(shù)據(jù)并可視化展示

    Python爬蟲爬取疫情數(shù)據(jù)并可視化展示

    這篇文章主要介紹了Python利用爬蟲爬取疫情數(shù)據(jù)并進(jìn)行可視化的展示,文中的示例代碼講解清晰,對(duì)工作或?qū)W習(xí)有一定的價(jià)值,需要的朋友可以參考一下
    2021-12-12
  • Python入門教程(三十)Python的PIP

    Python入門教程(三十)Python的PIP

    這篇文章主要介紹了Python入門教程(三十)Python的PIP,PIP是Python 包或模塊的包管理器,本章帶你們看一下如何使用PIP命令,需要的朋友可以參考下
    2023-04-04
  • 利用Python找回微信撤回信息

    利用Python找回微信撤回信息

    一條撤回的微信消息,就像一個(gè)秘密,讓你迫切地想去一探究竟。這篇文章就將為大家介紹如何用Python找回撤回的微信信息,感興趣的可以試一試
    2022-01-01
  • 解決keras使用cov1D函數(shù)的輸入問(wèn)題

    解決keras使用cov1D函數(shù)的輸入問(wèn)題

    這篇文章主要介紹了解決keras使用cov1D函數(shù)的輸入問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python獲取網(wǎng)段內(nèi)ping通IP的方法

    Python獲取網(wǎng)段內(nèi)ping通IP的方法

    今天小編就為大家分享一篇Python獲取網(wǎng)段內(nèi)ping通IP的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

安平县| 新干县| 南充市| 马龙县| 邳州市| 遂溪县| 洛扎县| 连州市| 鲁山县| 永康市| 江北区| 姜堰市| 阿克陶县| 乌拉特中旗| 屏南县| 阿克苏市| 台安县| 石屏县| 北宁市| 外汇| 德州市| 宁安市| 乌鲁木齐县| 双牌县| 武威市| 晋江市| 潜江市| 清远市| 淄博市| 达州市| 陆良县| 荣成市| 佛冈县| 昌邑市| 桃园县| 郧西县| 静乐县| 安阳县| 广河县| 马龙县| 布尔津县|