Python 黑板課爬蟲闖關第五關

2022-01-09 22:36:12 字數 1888 閱讀 8718

第五關是最後一關了,至此之後黑板課就沒有更新過關卡了。

可以看到,是在第三關的基礎上加了驗證碼。

驗證碼識別我們可以通過 tesserocr 來識別,tesserocr 的使用在我的前面兩篇部落格中有介紹。

**如下:

import

reimport

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)

print

(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()

print

(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 ...