黑板客爬虫闯关 代码

简介

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

相关文章
相关标签/搜索