本文正在參加「Python主題月」,詳情查看 活動連接編程
只要折騰過爬蟲的都應該會早晚碰到這個問題:驗證碼。若是沒法解決這個問題,估計踏入爬蟲學習的第一步就會受到滿滿的一大盆冷水。由於只要是一個有那麼一點點反爬蟲的網站都會有驗證碼。今天就要詳細分析分析這一個問題。markdown
學習爬蟲必需要知道這個東西,Cookie,有時也用其複數形式 Cookies。類型爲「小型文本文件」,是某些網站爲了辨別用戶身份,進行Session跟蹤而儲存在用戶本地終端上的數據(一般通過加密),由用戶客戶端計算機暫時或永久保存的信息。cookie
大家有沒有發現,有些網站只登陸過一次,那麼能夠很長的一段時間都不須要登陸。那是由於有cookie的存在。因此咱們只要帶着正確的cookie進行請求網站,這就能夠繞過登陸,也繞過了驗證碼。不過有些網站的cookie很煩,常常變換,也不知道多久變一次。因此是否用這種方法,須要看實際效果。app
在技術宅怒爬qq空間表白牆,自動化編程的福利哦|Python 主題月就提過,selenuim是網站自動化的工具。他能夠模擬人工點擊網站,操做網站。其實用low一點的辦法,可以進去網頁,問題也不大,也就是半自動化操做。本身手動輸入驗證碼。反正最後仍是能夠進入網站爬取信息的。初學者不用糾結於這個驗證碼是否手動輸入,只要爬取的動做仍是代碼進行的就行。ide
我認真找了一下這個驗證碼工具
發現他的返回是一個PassCode.aspx。而請求的url也能夠找到。咱們必定以爲很奇怪,明天他們是圖片,爲何他不是png或者jpg呢?其實這是由於驗證碼須要作着動態響應,當咱們點它一下的時候,它就會變換成不一樣的驗證碼。咱們每點一次,都會把上面的鏈接請求一次。post
接下來,咱們須要保存這個驗證碼。他是aspx格式,咱們須要把他保存爲gif。 具體代碼以下:學習
import requests
url = 'http://appsso.pc139.zgyey.com/PassCode.aspx'
r = requests.get(url = url)
content = r.content
f =open(r'C:\Users\Administrator\Desktop\aaa.gif','wb')
f.write(content)
f.close()
複製代碼
最後能把驗證碼順利保存下來。網站
接下來,咱們要作的是切割圖片,而後用圖片識別的技術把驗證碼識別出來,這裏最後識別出來的結果也就是一個3+6這一條公式。還有別的驗證碼識別出來更加簡單,也就是4個數字。ui
之後我會詳細寫一篇如何識別驗證碼圖片的文章。完整爬蟲思路就是上面所說。
以爲寫得還不錯的話,給個贊再走唄。