我們可以通過python 來實現這樣一個簡單的爬蟲猜密碼功能。下面就看看如何使用python來實現這樣一個功能。
這里我們知道用戶的昵稱為:heibanke
密碼是30以內的一個數字,要使用requests庫循環提交來猜密碼
主要需要用到的庫是requests庫
安裝requests庫
要使用到的request庫的功能是表單的提交
首先查看網頁源碼,找到需要提交的內容的參數名稱
requests傳入網址的data中中需要包含這兩個參數
url = "http://www.heibanke.com/lesson/crawler_ex01/"params = {'username':'heibanke','password': str(password)}r = requests.post(url,data=params)建立循環,密碼從1開始猜,不對就+1,直至猜中。
關鍵在于如何判斷猜錯了沒?
首先看看猜錯了的顯示:
我們可以讀取出該頁面的文字,檢測文字中有沒有"錯誤"二字,有就代表提交的密碼錯誤,沒有就表示正確。要實現此功能,需要用到find()函數
find()函數介紹:
函數原型:find(str, pos_start, pos_end)
解釋:
•str:被查找“字串”
•pos_start:查找的首字母位置(從0開始計數。默認:0)
•pos_end: 查找的末尾位置(默認-1)
返回值:如果查到:返回查找的第一個出現的位置。否則,返回-1。
example:
str = "0123"print str.find("2",1,-1) #2print str.find("1") #0,首次出現的位置完整程序:
import requestspassword=0while True:url = "http://www.heibanke.com/lesson/crawler_ex01/"params = {'username':'heibanke','password': str(password)}r = requests.post(url,data=params)if r.text.find(u"錯誤")>0:#判斷某次輸入是否正確password=password+1else:print password#,最后打印出password為6,居然輸入06,006,0006都是對的break
運行結果password為6
新聞熱點
疑難解答