發(fā)現(xiàn)個爬蟲闖關(guān)游戲網(wǎng)站,挺有意思,點擊跳轉(zhuǎn)
進入首頁,發(fā)現(xiàn)內(nèi)容很簡單,如圖

第一關(guān)首頁
提示在網(wǎng)址后面輸入數(shù)字14901,按照要求做,訪問http://www.heibanke.com/lesson/crawler_ex00/14901,
得到如下內(nèi)容

image.png
看到這里就明白了,第一關(guān)內(nèi)容就是不斷在網(wǎng)址后面添加當前頁面返回的那串數(shù)字,直到得到最后一串數(shù)字就算過關(guān),很簡單,提取那串數(shù)字添加到網(wǎng)址后面訪問,循環(huán)這個步驟,直到過關(guān)。
分析html結(jié)構(gòu),就是h3那一句就行了

html結(jié)構(gòu)
爬蟲代碼
from urllib import request
from bs4 import BeautifulSoup
import re
def get_page(url):
print('get url %s' % url)
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Connection': 'keep-alive'
}
req = request.Request(url, headers=headers)
page = request.urlopen(req).read()
page = page.decode('utf-8')
return page
count = 1
numResult = ' '
# 判斷numResult是否為空,為空則代表闖關(guān)成功
while numResult:
print('第%d次請求' % count)
url = "http://www.heibanke.com/lesson/crawler_ex00/" + numResult
result = get_page(url)
soup = BeautifulSoup(result, "html.parser")
# 解析h3元素
h3 = soup.find_all("h3")[0]
result = soup.find_all("h3")[0].text
# 解析出數(shù)字
numResult = re.sub("\D", "", result)
print('數(shù)字: %s' % numResult)
count += 1
print('成功闖關(guān),url:%s' % url)
結(jié)果:

結(jié)果
訪問http://www.heibanke.com/lesson/crawler_ex00/30366/,果然成功

成功闖關(guān)