黑板客爬虫闯关 代码
简介:
原网址:黑板客爬虫闯关
提供给网友的一个学习爬虫的网站,关卡设计由易到难,到后面逐渐涉及模拟登陆,多线程等,让你掌握网络爬虫的基本技术。
第一关:
简单的在网址后面输入数字就可以,只不过你需要N++++个数字才能到达第二关的入口,每次跳转页面里都有下一个页面的跳转数字。所以这里需要用爬虫爬取出每个页面的跳转数字,直到没有跳转数字为止就是第二关的入口了。
代码:
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请求穷举密码即可。
代码:
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