詳解python 爬取12306驗證碼
一個簡單的驗證碼爬取程序
本文介紹了在Python2.7環(huán)境下爬取網(wǎng)站驗證碼:
思路就是獲取驗證碼對應的url,然后發(fā)起requst請求,讀取該URL對應的內容,然后寫入到一個本地文件,實現(xiàn)一個驗證碼的保存。大量下載可以把以上程序寫入一個死循環(huán)
代碼實現(xiàn)部分:
import ssl
import urllib2
i=1
import time
while(1):
#不加的話,無法訪問12306
ssl._create_default_https_context = ssl._create_unverified_context
# headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"}
# req = urllib2.Request("http://211.87.155.19/(yfsvlfreem4d0b553vkfzfzt)/CheckCode.aspx", headers=headers)
# https: // www.zhihu.com / captcha.gif?r = 1495351271125 & type = login
req = urllib2.Request("https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand&0.7174227166135074")
u=urllib2.urlopen(req)
data = u.read()
f = open("C:/Users/123/Desktop/4/"+str(i)+".jpg",'wb')
print i
# time.sleep(1)#有時需要加延時,以防被封。
i=i+1
f.write(data)
f.close()
以下就是爬取的照片的截圖

12306的驗證碼經(jīng)常讓人眼花繚亂,眼睛仔細看也不能100%的對,算是驗證碼中比較難是別的。一般由八幅圖和一個問題組成,而且圖片大小位置固定,問題的位置也是固定的,這也稍微降低了識別的難度。八幅圖中一般有兩幅圖是同一物體,有一個和它比較像。不過有一點暫時沒法確定,就是樣本庫到底有多大,或者說是到底有多少個類別,如果進行訓練的話,我們必須獲取每個類別個的一定數(shù)量的圖片作為樣本。
以上所述是小編給大家介紹的python爬取12306驗證碼詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
將pandas.dataframe的數(shù)據(jù)寫入到文件中的方法
今天小編就為大家分享一篇將pandas.dataframe的數(shù)據(jù)寫入到文件中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python數(shù)據(jù)持久存儲 pickle模塊的基本使用方法解析
這篇文章主要介紹了python數(shù)據(jù)持久存儲 pickle模塊的基本使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08
python+logging+yaml實現(xiàn)日志分割
這篇文章主要為大家詳細介紹了python+logging+yaml實現(xiàn)日志分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
如何使用PyTorch實現(xiàn)自由的數(shù)據(jù)讀取
這篇文章主要給大家介紹了關于如何使用PyTorch實現(xiàn)自由的數(shù)據(jù)讀取的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-03-03
Python+OpenCV實現(xiàn)分水嶺分割算法的示例代碼
分水嶺算法是用于分割的經(jīng)典算法,在提取圖像中粘連或重疊的對象時特別有用。本文將用Python+OpenCV實現(xiàn)這一算法,需要的可以參考一下2022-08-08
Python+selenium點擊網(wǎng)頁上指定坐標的實例
今天小編就為大家分享一篇Python+selenium點擊網(wǎng)頁上指定坐標的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07

