第五關是最後一關了,至此之後黑板課就沒有更新過關卡了。
可以看到,是在第三關的基礎上加了驗證碼。
驗證碼識別我們可以通過 tesserocr 來識別,tesserocr 的使用在我的前面兩篇部落格中有介紹。
**如下:
importreimport
requests
import
time
from pil import
image
from bs4 import
beautifulsoup
import
tesserocr
defmain():
url_login = '
'url = '
'session =requests.session()
session.get(url_login)
token = session.cookies['
csrftoken']
session.post(url_login, data=)
psd =0
while psd < 30:
print(f'
test password ')
r =session.get(url)
soup = beautifulsoup(r.text, '
lxml')
img_tag = soup.find('
img'
) img_url = '
' + img_tag['
src'
] requests.get(url)
code =get_code(img_url)
if code is
none:
time.sleep(1)
continue
token = session.cookies['
csrftoken']
r = session.post(url, data=)
html =r.text
if'驗證碼輸入錯誤'in
html:
time.sleep(1)
elif
'密碼錯誤
'not
inhtml:
m = re.search('
(?<=\).*?(?=\)
', html)
(m.group())
return
else
: time.sleep(1)
psd += 1
defget_code(url):
flag = url.split("
/")[-2]
fn = flag + '
.png
'with open(fn,
'wb+
') as sw:
sw.write(requests.get(url).content)
img =image.open(fn)
img = img.convert('l'
) result =tesserocr.image_to_text(img).strip()
(flag, result)
if re.match('
^[a-za-z0-9]$
', result):
return
flag, result
if__name__ == '
__main__':
main()
Python 黑板課爬蟲闖關第四關
一開始看到的時候有點蒙,不知道啥意思,說密碼需要找出來但也沒說怎麼找啊。別急,隨便輸了個暱稱和密碼,提交一下,就能看到密碼提示了。注意那一行大字,提示網頁載入速度很慢,這一關的意圖很明顯了,就是 多執行緒。密碼一共100位,這裡雖然顯示了翻頁,但其實每一頁顯示的位置是隨機的,可能會重複,所以並不是一...
黑板課爬蟲闖關之關卡二
成功 0 9print 密碼是 str i 10break 11 else 12 print str i 不是密碼 13 140不是密碼 151不是密碼 162不是密碼 173不是密碼 184不是密碼 195不是密碼 206不是密碼 217不是密碼 228不是密碼 239不是密碼 2410不是密碼 ...
Python 黑板課爬蟲闖關第二關
第二關依然是非常的簡單 隨便輸入暱稱呢密碼,點選提交,顯示如下 這樣看來就很簡單了,列舉密碼迴圈 post 請求,獲取響應網頁的內容,如果有 密碼錯誤 那就繼續。import reimport requests import time defmain url for psd in range 30 ...