1. 程式人生 > >黑板客爬蟲闖關第一關、第二關

黑板客爬蟲闖關第一關、第二關

.com col bs4 con 網址 技術分享 pass while str

上來先貼地址,剛入門的可以來van啊:

黑板客爬蟲闖關

0x00 第一關


打開網址,看到如下頁面:

技術分享圖片

先抱著試試看的心態在網址後面加上數字看看效果:

技術分享圖片

怕不是個循環,獲取網頁中的數字不斷加到url中,驗證猜想,繼續試一試:

?????

技術分享圖片

那就把原來的數字換掉:

妙啊:

技術分享圖片

這裏基本確定思路,獲取網頁內的數字,然後在將數字加入url進行循環提交

查看源碼,確定獲取的信息<h3>標簽內,並使用re庫匹配我們要的數字

import requests
from bs4 import BeautifulSoup
import re

def getHTMLText(url):           
    
try: r = requests.get(url, timeout = 30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ‘‘ def getNum(html): soup = BeautifulSoup(html, html.parser) h3 = soup.find(h3).text num = re.findall(r\d{5},h3)[0]
return num def main(): start_url = http://www.heibanke.com/lesson/crawler_ex00/ num = 39642 while num: url = start_url + str(num) html = getHTMLText(url) print(html) num = getNum(html) main()

跑起來:

技術分享圖片

0x01 第二關


技術分享圖片

初步斷定post兩個參數,用for循環遍歷30前的數字爆破密碼

先抓個包,看看兩個參數名叫啥

技術分享圖片

import
requests from bs4 import BeautifulSoup def getHTMLText(url, kv): try: r = requests.post(url, data= kv) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ‘‘ def getcontent(html): soup = BeautifulSoup(html, html.parser) h3 = soup.find(h3).text if not u密碼錯誤 in h3: print(html) def main(): url = http://www.heibanke.com/lesson/crawler_ex01/ for i in range(31): print(i) kv = {username: 1, password: i} html = getHTMLText(url, kv) getcontent(html) main()

吼吼吼,成功遼

技術分享圖片

黑板客爬蟲闖關第一關、第二關