日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

用python登錄帶弱圖片驗證碼的網站

瀏覽:21日期:2022-06-24 15:30:12

上一篇介紹了使用python模擬登陸網站,但是登陸的網站都是直接輸入賬號及密碼進行登陸,現在很多網站為了加強用戶安全性和提高反爬蟲機制都會有包括字符、圖片、手機驗證等等各式各樣的驗證碼。圖片驗證碼就是其中一種,而且識別難度越來越大,人為都比較難識別。本篇我們簡單介紹一下使用python登陸帶弱圖片驗證碼的網站。

圖片驗證碼

一般都通過加干擾線、粘連或扭曲等方式來增加強度。

用python登錄帶弱圖片驗證碼的網站

登陸

我們選擇一個政務網站(圖片驗證碼的強度較低)。

點擊個人用戶登錄

訪問網站首頁以后我們發現需要先點擊個人用戶登陸,且元素沒有name、id登標識不好獲取,所以我們直接執行里面的onClick方法

用python登錄帶弱圖片驗證碼的網站

用python登錄帶弱圖片驗證碼的網站

# 新建selenium瀏覽器對象,后面是geckodriver.exe下載后本地路徑browser = webdriver.Firefox()url = ’http://xxx.gov.cn/’# 瀏覽器訪問登錄頁面browser.get(url)# 等待3s用于加載腳本文件browser.implicitly_wait(3)# 點擊個人登陸browser.execute_script(’showpersonlogin();’)獲取圖片驗證碼

我們可以通過save_screenshot截圖,然后找到驗證碼元素,獲取元素位置然后在截圖的基礎上裁剪出驗證碼。

# 找到圖片驗證碼元素img = browser.find_element_by_id(’imgCode’)location = img.locationsize = img.sizeleft = location[’x’]top = location[’y’]right = left + size[’width’]bottom = top + size[’height’]# 按照驗證碼的長寬,切割驗證碼image_obj = loginPage.crop((left, top, right, bottom))image_obj.save(’code.png’)

用python登錄帶弱圖片驗證碼的網站

用python登錄帶弱圖片驗證碼的網站

識別并登陸

由于該網站的驗證碼比較簡單可以直接用pytesseract模塊的image_to_string方法

orcCode = pytesseract.image_to_string(’code.png’)# 輸入用戶名username = browser.find_element_by_id(’personaccount’)username.send_keys(’賬號’)# 輸入密碼password = browser.find_element_by_id(’personpassword’)password.send_keys(’密碼’)# 輸入驗證碼code = browser.find_element_by_id(’captcha1’)code.send_keys(orcCode)# 執行登錄browser.execute_script(’personlogin();’)# 關閉瀏覽器# browser.quit()識別較復雜驗證碼算法

網上找的算法,先將圖片轉為灰度圖,然后進行二值化處理(將圖像上的像素點的灰度值設置為0或255。如灰度大于等于閾值的像素,用255表示。否則為0。),再去噪(8鄰域降噪,判斷8個鄰域的黑色數量個數)。

ocrImage.py:

import pytesseractfrom PIL import Imagefrom collections import defaultdict# 獲取圖片中像素點數量最多的像素def get_threshold(image): pixel_dict = defaultdict(int) # 像素及該像素出現次數的字典 rows, cols = image.size for i in range(rows): for j in range(cols): pixel = image.getpixel((i, j)) pixel_dict[pixel] += 1 count_max = max(pixel_dict.values()) # 獲取像素出現出多的次數 pixel_dict_reverse = {v: k for k, v in pixel_dict.items()} threshold = pixel_dict_reverse[count_max] # 獲取出現次數最多的像素點 return threshold# 按照閾值進行二值化處理# threshold: 像素閾值def get_bin_table(threshold): # 獲取灰度轉二值的映射table table = [] for i in range(256): rate = 0.1 # 在threshold的適當范圍內進行處理 if threshold * (1 - rate) <= i <= threshold * (1 + rate): table.append(1) else: table.append(0) return table# 去掉二值化處理后的圖片中的噪聲點def cut_noise(image): rows, cols = image.size # 圖片的寬度和高度 change_pos = [] # 記錄噪聲點位置 # 遍歷圖片中的每個點,除掉邊緣 for i in range(1, rows - 1): for j in range(1, cols - 1): # pixel_set用來記錄該店附近的黑色像素的數量 pixel_set = [] # 取該點的鄰域為以該點為中心的九宮格 for m in range(i - 1, i + 2):for n in range(j - 1, j + 2): if image.getpixel((m, n)) != 1: # 1為白色,0位黑色 pixel_set.append(image.getpixel((m, n))) # 如果該位置的九宮內的黑色數量小于等于4,則判斷為噪聲 if len(pixel_set) <= 4:change_pos.append((i, j)) # 對相應位置進行像素修改,將噪聲處的像素置為1(白色) for pos in change_pos: image.putpixel(pos, 1) return image # 返回修改后的圖片# 識別圖片中的數字加字母# 傳入參數為圖片路徑,返回結果為:識別結果def ocr_img(img_path): image = Image.open(img_path) # 打開圖片文件 imgry = image.convert(’L’) # 轉化為灰度圖 # 獲取圖片中的出現次數最多的像素,即為該圖片的背景 max_pixel = get_threshold(imgry) # 將圖片進行二值化處理 table = get_bin_table(threshold=max_pixel) out = imgry.point(table, ’1’) # 去掉圖片中的噪聲(孤立點) out = cut_noise(out) # 僅識別圖片中的數字 # text = pytesseract.image_to_string(out, config=’digits’) # 識別圖片中的數字和字母 text = pytesseract.image_to_string(out) # 去掉識別結果中的特殊字符 exclude_char_list = ’ .:|’'?![],()~@#$%^&*_+-={};<>/¥’ text = ’’.join([x for x in text if x not in exclude_char_list]) return text

用python登錄帶弱圖片驗證碼的網站

ocrImage.ocr_img(’data/0021.png’)

用python登錄帶弱圖片驗證碼的網站

其他

針對不同的圖片驗證碼用的方法不盡相同,cv2模塊也提供了很多圖片的處理方法可以用于識別圖片驗證碼。

如使用cv2的腐蝕和碰撞方法就可以對圖片進行簡單的處理。

干擾條件較多、識別難度大的則需要依靠機器學習來完成。

以上就是用python登錄帶弱圖片驗證碼的網站的詳細內容,更多關于python 登錄圖片驗證碼的網站的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品香蕉| 日韩欧美中文| 国产精品极品国产中出| 国产精品呻吟| 国产精品日本| 日韩一区二区三免费高清在线观看| 久久国产免费看| 欧美激情日韩| 在线国产一区| 国产精品对白| 久久xxxx| 国产精品成久久久久| 老色鬼久久亚洲一区二区| 免费在线观看一区| 亚洲综合婷婷| 美女亚洲一区| 国产精品毛片久久久| 欧美a在线观看| 亚洲v天堂v手机在线| 国产亚洲一区二区手机在线观看| 欧美视频久久| 亚洲精选久久| 视频一区视频二区在线观看| 欧美13videosex性极品| 日韩精品欧美成人高清一区二区| 影音先锋久久| 欧洲一级精品| 婷婷精品在线| 日韩av网站在线免费观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 狠狠爱www人成狠狠爱综合网| 久久亚洲视频| 午夜在线视频观看日韩17c| 久久国产成人午夜av影院宅| 美女在线视频一区| 先锋影音久久久| 99xxxx成人网| 鲁大师精品99久久久| 亚洲久草在线| 久久97视频| 日本成人在线不卡视频| 久久人人99| 欧美日韩国产一区二区在线观看| 国产精品一区二区三区av麻| 久久精品123| 综合激情在线| 国产不卡av一区二区| 波多视频一区| 视频一区免费在线观看| 精品资源在线| 国产精品美女久久久| 久久99影视| 樱桃成人精品视频在线播放| 国产欧美高清视频在线| 国精品一区二区| 日韩精品一页| 久久精品卡一| 国产精品传媒麻豆hd| 亚洲精品午夜av福利久久蜜桃| 国产日韩欧美一区二区三区| 久久国产电影| 欧美1区二区| 国产精品普通话对白| 精品三级在线观看视频| 久久av在线| av高清不卡| 国产视频一区二| 亚洲欧美日本视频在线观看| 久久久精品国产**网站| 蜜乳av另类精品一区二区| 高清一区二区三区| 日本成人中文字幕在线视频| 欧美日韩精品在线一区| 欧美国产极品| 日韩区欧美区| 五月天激情综合网| 久久精品国产99国产精品| 欧美特黄一级| 91一区二区三区四区| 久久国产免费看| 久久亚洲风情| 国产99精品一区| 精品国产亚洲一区二区三区| 日韩精品高清不卡| 日韩视频不卡| 四虎4545www国产精品| 蜜桃精品视频| 亚洲不卡av不卡一区二区| 99在线观看免费视频精品观看| 精品国产不卡| 国产精品第十页| 亚洲精品福利| 免费日韩一区二区| 欧美一区=区| 国产精品3区| 欧美成人综合| 蜜桃视频一区二区三区在线观看 | 久久亚洲国产精品尤物| 欧美aa在线观看| 中文字幕成人| 日韩一区电影| 欧美亚洲一区二区三区| 91精品观看| 国产成人精品一区二区免费看京 | 日韩精品91| 国产美女精品| 国产亚洲一区二区手机在线观看| 日韩在线观看中文字幕| 久久九九国产| 国产精品多人| 国产亚洲一区二区三区啪| 国产视频欧美| www.com.cn成人| 精品捆绑调教一区二区三区| 色8久久久久| 日本国产一区| 久久精品91| 精品丝袜久久| 欧美黑人巨大videos精品| 国产亚洲观看| 日本欧美一区| 日本a口亚洲| 日韩精品中文字幕一区二区| 中文字幕乱码亚洲无线精品一区| 日韩中文字幕1| 国产午夜精品一区二区三区欧美| 91精品一区二区三区综合| 国产成人黄色| 精品国产免费人成网站| 在线人成日本视频| 国产v日韩v欧美v| 国产福利片在线观看| 成人在线丰满少妇av| 久久精品国产亚洲aⅴ| 国产精品黄色| 国产精品二区影院| 国产在线视频欧美一区| 激情综合婷婷| 欧美激情另类| 日本欧美不卡| 五月天久久777| 亚洲免费一区二区| 在线综合视频| 麻豆精品91| 日本91福利区| 久久av导航| 黄在线观看免费网站ktv| 欧美精品日日操| 欧美一级精品| 亚洲一区日韩在线| 亚洲精品在线a| 国产调教精品| 国产一区2区在线观看| 精品视频黄色| 久久久天天操| 久久国产高清| 欧美性www| 国产精品magnet| 国产激情在线播放| 国产精品老牛| 国产精品一区二区三区av| 9999国产精品| 国产精品呻吟| 国产午夜精品一区在线观看| 国产a亚洲精品| 婷婷久久一区| 日本中文字幕一区二区| 国产精品成人自拍| 欧美羞羞视频| 亚洲一区二区三区免费在线观看| 亚洲精品系列| 国产一区二区三区黄网站| 日韩欧美国产精品综合嫩v| 一区三区视频| 国产日韩欧美一区二区三区| 国产精品精品国产一区二区| 免费视频一区三区| 中文字幕av一区二区三区人| 日本国产欧美| 伊伊综合在线| 亚洲免费专区| 综合日韩av| 亚洲在线久久| sm捆绑调教国产免费网站在线观看| 在线看片不卡| 国产视频网站一区二区三区| 久久一区二区中文字幕| 日韩欧美高清一区二区三区| 国产成人在线中文字幕| 亚洲欧美日韩精品一区二区 | 国产精品精品国产一区二区| 午夜亚洲一区| 欧美激情aⅴ一区二区三区| 精品一区免费| 国产精品久久久久久模特| 欧美一级精品| 国产精品videosex极品| 亚洲一区网站| 免费在线欧美黄色| 亚洲欧美久久|