黑板客爬蟲闖關 代碼

簡介

原網址黑板客爬蟲闖關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網站

相關文章
相關標籤/搜索