黑板客爬蟲闖關第一關、第二關
阿新 • • 發佈:2019-01-25
.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前的數字爆破密碼
先抓個包,看看兩個參數名叫啥
importrequests 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()
吼吼吼,成功遼
黑板客爬蟲闖關第一關、第二關