天天看點

python反爬蟲應對之借助平台超級鷹突破網頁驗證碼識别

在爬蟲過程中,有些網頁需要登入才能擷取裡面的資料,在大部分的登入過程中,都會需要一個叫驗證碼識别,目前的網頁有各種各樣的驗證碼,有數字加字母的組合,有物品識别等等

在代碼進行網頁爬取過程中,如果由人為判斷驗證碼進行,則失去了網絡爬蟲的意義

網站設定驗證碼的作用之一就是一種反爬蟲措施,但是這種措施目前仍然可以用一些技術手段進行自動識别,幫助爬蟲工作者順利突破驗證碼

網絡上進行驗證碼識别的平台有很多,如雲打碼、超級鷹,小編用的是超級鷹,雖然它需要充值,不過識别驗證碼的效果還是很不錯的

超級鷹:http://www.chaojiying.com/about.html

進入網頁之後,進行注冊登入,使用者必須有題分才能享受到平台的服務,大家可以充值1塊錢或者綁定微信,都會獲得1000個題分,識别一次10--70題分不等,對小編來說,1塊錢能用好久

充值後在使用者中心--軟體ID--生成一個軟體ID

python反爬蟲應對之借助平台超級鷹突破網頁驗證碼識别

 其中生成的ID是後續要用的,KEY用不到

開發文檔中,點選python,點選右側下載下傳按鈕,将下載下傳的檔案解壓縮,裡面包含一個py檔案,就是超級鷹破解驗證碼的代碼,将它放入pycharm中就可以運作,下面具體講解操作

我們看代碼最後面

if __name__ == '__main__':
	chaojiying = Chaojiying_Client('超級鷹使用者名', '密碼', '軟體ID')	#使用者中心>>軟體ID 生成一個替換 96001
	im = open('需要識别圖檔的路徑', 'rb').read()													#本地圖檔檔案路徑 來替換 a.jpg 有時WIN系統須要//
	print (chaojiying.PostPic(im, 驗證碼類型))										#1902 驗證碼類型  官方網站>>價格體系 3.4+版 print 後要加()
           

其中超級鷹使用者名、密碼、軟體ID、圖檔路徑、驗證碼類型需要自己更改,其他的代碼不需要管他,其中驗證碼類型參考http://www.chaojiying.com/price.html

注意  下載下傳好的最後一行代碼中的print少括号 需要自己加上

運作結束後,傳回一個字典

python反爬蟲應對之借助平台超級鷹突破網頁驗證碼識别

 其中識别好的值,在鍵為pic_str中

在實際的爬蟲過程中,要麼用resquests抓取驗證碼的src路徑,将其下載下傳後傳入超級鷹的圖檔路徑,要麼用seleium采取截圖的方式,将浏覽器的驗證碼圖檔截取下來,傳入程式進行識别。當然驗證碼是變化的,建議使用seleium截圖的方式進行,這就需要掌握seleium的操作以及截圖PIL這個第三方庫的基本操作

以上将識别出的值,在傳入網頁中需要填寫的文本位置,就可以通過網頁驗證碼這一關了

下面附上代碼工作的視訊,提前下載下傳好了兩個驗證碼進行試驗

QQ錄屏20210714194308