1. 程式人生 > 實用技巧 >python3讀取資料庫簡訊驗證碼

python3讀取資料庫簡訊驗證碼

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

現在網站好多都要簡訊驗證,做自動化時想要繞過有很多方法

1.測試環境註釋掉這個功能,但釋出到其它環境怕會有遺漏

2.萬能碼,但不小心就會被其它開發給覆蓋了,或者不小心點選了傳送驗證碼後,你這個驗證碼就失效了

3.自己想辦法,比如讀取資料庫,拿到最新的驗證碼

https://www.cnblogs.com/woider/p/5926744.html 學習了這位大神的帖子才有了方向,感謝!

今天講第三種方法,直接貼程式碼

28a14284da55b7958a9bf03778438054ccb.jpg

講幾點,python2支援mysqldb,但python3還不支援,所以只能用pymysql代替,安裝也很簡單,終端命令:pip install pymysql即可

看程式碼裡的connect:db是指你讀取的資料庫名稱;這裡踩的坑是怎麼把資料庫裡取出來的check_code轉換為數字,直接使用code.split是不行的,左試右試都是不行,一直報錯,最後沒辦法了,試著列印下code的型別,麻的,居然是tuple,其實我內心在看到code格式的一瞬間就已經堅信它是str了,所以根本沒往這上面想,要不找不出原因,我估計也不會去列印這個type~~所以除了基礎要紮實,一定要有opening mind(這兩者我都還欠缺~~)。知道了資料型別後,那個單引號的分割我不會,百度了下,新增轉義符,就能很愉快的使用split提取出數字了

另一個提取的方式(取下標,從0開始數)

4c1e6ece5dae5df9545a3ebbaad77e35e05.jpg

——————————————————————————————————————————————

0ae08c137f794e5c84dc807dce2c4d81cfa.jpg

這個方法在呼叫的時候發現有點問題,因為我沒有寫方法,所以在呼叫mysql這個檔案的時候他已經直接呼叫了,導致我的驗證碼一直讀的是第二條,而不是最新的第一條。所以這裡添加了一個方法,再加一個return去呼叫first變數,就沒有問題了

data = driver.mysql.usemysql()

轉載於:https://my.oschina.net/EvanDev/blog/3029004