第四關在第三關的基礎上多了以下兩點:
1、網頁響應時間增加。(要想快速找到密碼就需要多執行緒)
2、強密碼,100位的密碼按位置隨機出現,需要抓取網頁不同位置密碼,再組合起來。
解題過程:
第一次(失敗): 我發現password列表共13頁,所以我以為只要將列表中不重複的位置的值加到乙個list中。再將list轉換為乙個int的密碼,就是登入密碼。在嘗試多次,返回登入失敗後,我發現13頁的密碼長度不超過70位,應該是**出錯了。這時,我沒想到密碼會是100位的。。。
第二次(成功): 在討論區看到有人成功了,於是去學習經驗,看到密碼長度是100位,就想到怎麼過關了。只要將第一次闖關的**改動一下,加入密碼長度判斷,到達100位時就嘗試登入。
闖關成功(630秒)::
第四關**:
第五關:識別驗證碼
解題過程:
1、 在這一關中,所需要的登入資訊如下(用firebug抓取到的):
1.1 1、2兩項我們都知道。password:老師並沒給出密碼提示,只能按照第2、3關密碼0~30嘗試。captcha_0:是登入頁面上乙個隱藏的值(可以獲取到),對應的應該是驗證碼在伺服器的值。captcha_1:驗證碼。
1.2 驗證碼識別是參考python網路資料採集這本書中11.3節:讀取驗證碼與訓練tesseract。經測試,tesseract識別率在16%左右(因為我沒有訓練樣本),我們可以通過對識別出的驗證碼加以驗證就知道是否可以用來登入,因為驗證碼是有規律的:長度為4,全是大寫字母,這樣登入的話有50%機率驗證碼正確。
--tesseract:tesseract是乙個ocr庫,參考:
1.3 以下是程式流程圖:
2 闖關成功(用時:640秒...):
第5關**有點長就不複製過來了,有興趣可以看下
黑板客爬蟲闖關第二關
這一關相比第一關反而更容易,因為不需要進行複雜的正則判斷,只需要用迴圈嘗試密碼即可。這裡需要用到requests的post請求,並在請求裡加上使用者名稱和密碼即可。coding utf 8 import requests wrongnotify 您輸入的密碼錯誤,請重新輸入 website inde...
黑板客爬蟲闖關第二關
檢視原始碼 post傳輸的內容名 username,password.根據題目要求,範圍在30之內,while 迴圈即可,沒必要雙迴圈 且passeord提示輸入的是數字,直接用i即可,不用 coding utf 8 import urllib2 import urllib import re i ...
Python 黑板客爬蟲闖關的第一關
附一下 具體說一下步驟 1.安裝python 2.安裝selenium win鍵 r 執行 cmd 在cmd裡輸入 pip install selenium 測試一下能不能用,開啟idle,新建乙個檔案 from selenium import webdriver browser webdriver...