原網址:黑板客爬蟲闖關html
提供給網友的一個學習爬蟲的網站,關卡設計由易到難,到後面逐漸涉及模擬登錄,多線程等,讓你掌握網絡爬蟲的基本技術。網絡
簡單的在網址後面輸入數字就能夠,只不過你須要N++++個數字才能到達第二關的入口,每次跳轉頁面裏都有下一個頁面的跳轉數字。因此這裏須要用爬蟲爬取出每一個頁面的跳轉數字,直到沒有跳轉數字爲止就是第二關的入口了。多線程
代碼:less
1 #coding=gbk
2 import re 3 import urllib2 4
5 rooturl = 'http://www.heibanke.com/lesson/crawler_ex00/'
6 url = rooturl 7
8 while True: 9 request = urllib2.Request(url) 10 response = urllib2.urlopen(request,timeout=30) 11
12 html = response.read().decode('utf8') 13
14 items = re.findall(r'<h3>.*?(\d+).*?</h3>',html) 15
16 if len(items)==0: 17 break
18 else: 19 num = items[0] 20 url = rooturl + num 21
22 print 'go:'
23 print url 24
25 print 'answer:%s'%url
使用爬蟲模擬post請求窮舉密碼便可。post
代碼:學習
1 #coding=gbk
2 import re 3 import urllib 4 import urllib2 5
6 rooturl = 'http://www.heibanke.com/lesson/crawler_ex01/'
7 url = rooturl 8
9 for pwd in range(0,31): 10 data = {} 11 data['username'] = 'yym'
12 data['password'] = pwd 13 print '嘗試%d'%pwd 14
15 post_data = urllib.urlencode(data) 16 #print post_data
17
18 request = urllib2.Request(url) 19 response = urllib2.urlopen(request,post_data,timeout=30) 20
21 html = response.read().decode('utf8') 22 if html.find('密碼錯誤'.decode('gbk')) == -1: 23 print '密碼正確'
24 print 'answer:%d'%pwd 25 break
26 else: 27 print '密碼錯誤'
28 if pwd==30: 29 print '沒找到密碼'
Freecode# : www.cnblogs.com/yym2013網站