原网址:黑板客爬虫闯关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网站