python: 校園網登錄腳本
該腳本需要以下python庫
#1、
beautifulsoup4
#2、
requests
#coding:utf-8
import bs4 as btfsp
import requests
import time
from random import randint
header_post={
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
'Cache-Control':'no-cache',
'Connection':'keep-alive',
'Content-Length':'36',
'Content-Type':'application/x-www-form-urlencoded',
'Cookie':'ASPSESSIONIDSACCCAAA=AJADAMKADANAGNKFPPLGBPPN; ASPSESSIONIDQCDDDABA=EIKHOBECKOCNJFHLLBMPMMOK',
'Host':'202.198.3.22',
'Origin':'http://202.198.3.22',
'Pragma': 'no-cache',
'Referer':'http://202.198.3.22/login_W8.asp',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
}
def ret_post_data(usr_name,pwd):
post_data={
'username':usr_name,
'passwordx':pwd
}
return post_data
def login(usrs,pwds):
#print("請輸入賬號:")
usr=usrs
#print("請輸入密碼:")
pwd=pwds
r=requests.post("http://202.198.3.22/login_W8_2.asp",headers=header_post,data=ret_post_data(usr,pwd))
#r.encoding='utf-8'
soup=btfsp.BeautifulSoup(r.content.decode("gb2312").encode("utf-8"),'html.parser')
print("2323")
print(soup)
#soup=soup.select('body')[0]
#soup=soup.select('table')[0].text.strip()
header_get={
'Referer': 'http://202.198.3.22/login_W8_2.asp',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
}
params_get={
"jsonpcallback":"",
"username":"",
"password":"",
"_":""
}
def random_with_N_digits(n):
range_start = 10**(n-1)
range_end = (10**n)-1
return randint(range_start, range_end)
def login_get(uname,pwd):
millis = int(round(time.time() * 1000))-100
jqstr="jQuery1720"+str(random_with_N_digits(17))+"_"+str(millis)
params_get["username"]=uname
params_get["password"]=pwd
params_get["jsonpcallback"]=jqstr
params_get["_"]=str(millis+3)
res=requests.get("http://202.198.3.44:8080/PortalWebServer/Login",params=params_get, headers=header_get)
print(res)
#使用控制端模擬登陸 並打開對應網頁
if __name__=='__main__':
username="XXXXXXXXX"
password="XXXXXX"
login(username,password)
login_get(username,password)