亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲模擬登錄之圖片驗證碼如何實現

發布時間:2022-08-05 10:44:10 來源:億速云 閱讀:233 作者:iii 欄目:開發技術

這篇文章主要講解了“python爬蟲模擬登錄之圖片驗證碼如何實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python爬蟲模擬登錄之圖片驗證碼如何實現”吧!

首先,打開百度智能云進行登入,再進入人工智能->文字識別里創建應用。

python爬蟲模擬登錄之圖片驗證碼如何實現

在使用名稱和底下應用描述隨便寫寫,然后點立即創建。 

python爬蟲模擬登錄之圖片驗證碼如何實現

python爬蟲模擬登錄之圖片驗證碼如何實現

 創建完成,就可以拿到 AppID 、API Key 、Secret Key

python爬蟲模擬登錄之圖片驗證碼如何實現

之后要在pycharm下載baidu-aip,然后導入AipOcr包。

from aip import AipOcr       #aip在baidu-aip中

 再然后就是初始化百度API

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

我們先要把 圖片驗證碼下載下來進行二值化處理,這樣識別的準確率高一些。

這里要下載pillow庫,然后導入Image包

from PIL import Image         #PIL在pillow庫中
    #圖片處理
    # 二值化處理 灰度閾值設為127,高于這個值的點全部填白色
    img_old = Image.open('code.jpg')
    img_old = img_old.convert('L') # 灰度圖 模式“L” 每個像素用8個bit表示,0表示黑,255表示白
    threshld = 127 #設置閾值,圖片的像素范圍(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') # 對圖像像素操作 模式“1” 為二值圖像,非黑即白。但是它每個像素用8個bit表示,0表示黑,255表示白
    img_old.save('code.jpg')

對于那些有干擾線,特別還是明暗交替的圖片驗證碼來說,這樣很好的避免了被干擾。

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

處理前

python爬蟲模擬登錄之圖片驗證碼如何實現                                                                                                                     

處理后

python爬蟲模擬登錄之圖片驗證碼如何實現

后面就是調用baidu_aip來讀取圖片中的內容。baidu_aip.handwriting

    #讀取處理后的驗證碼
    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)   #使用的是識別手寫文字,返回一個字典,其中words_result是一個列表,里面有識別結果也是一個字典
    print('驗證碼是:',result['words_result'][0]['words'])

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

最后是完整的代碼。

# -- 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'
    #下載驗證碼圖片
    session = requests.session()
    img_data = session.get(url=url,headers=headers).content
    with open('./code.jpg','wb') as fp:
        fp.write(img_data)
    #圖片處理
    # 二值化處理 灰度閾值設為127,高于這個值的點全部填白色
    img_old = Image.open('code.jpg')
    img_old = img_old.convert('L') # 灰度圖 模式“L” 每個像素用8個bit表示,0表示黑,255表示白
    threshld = 127 #設置閾值,圖片的像素范圍(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') # 對圖像像素操作 模式“1” 為二值圖像,非黑即白。但是它每個像素用8個bit表示,0表示黑,255表示白
    img_old.save('code.jpg')
 
    #讀取處理后的驗證碼
    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)   #使用的是識別手寫文字,返回一個字典,其中words_result是一個列表,里面有識別結果也是一個字典
    print('驗證碼是:',result['words_result'][0]['words'])

python爬蟲模擬登錄之圖片驗證碼如何實現

感謝各位的閱讀,以上就是“python爬蟲模擬登錄之圖片驗證碼如何實現”的內容了,經過本文的學習后,相信大家對python爬蟲模擬登錄之圖片驗證碼如何實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聊城市| 溧阳市| 额敏县| 宣城市| 阳江市| 咸阳市| 小金县| 苏尼特右旗| 深圳市| 芦溪县| 固安县| 合山市| 呼伦贝尔市| 河间市| 宜城市| 梁河县| 黑龙江省| 工布江达县| 淮北市| 盐边县| 米林县| 内丘县| 邹平县| 嘉祥县| 青神县| 都兰县| 罗甸县| 信宜市| 无棣县| 湖北省| 乌拉特中旗| 阿拉善右旗| 沽源县| 仁化县| 兴城市| 临湘市| 上栗县| 华池县| 铁力市| 武隆县| 黄骅市|