坑爹的校园GiWiFi每个月要24元不限时长,然而每天半夜还自己掉线,登陆的APP更是臃肿,手动写了个GiWiFi登陆Python脚本
先分析了电脑网页登陆过程,都是打开网页自动跳转http://172.21.1.1:8062/redirect(校园网网关加端口和/redirect)
再进行307跳转到登陆页面,输入账号密码就可以登陆了,中间进行一次post请求和一次get请求。
使用环境:Python2.7.4版本
|
import
urllib
,
urllib
.
request
,
urllib
.
parse
,
urllib
.
response
,
json
,
sys
,
time
,
os
#此处是所有需要的库,后面不在带上
|
首先直接进行get请求然后获取到登陆页面的链接,登陆页面的链接中有发送post请求的大部分参数,简直大快人心
|
def
get_rel_url
(
)
:
req
=
urllib
.
request
.
Request
(
"http://172.21.1.1:8062/redirect"
)
req
.
add_header
(
'User-Agent'
,
'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0'
)
ipaddress
=
urllib
.
request
.
urlopen
(
req
)
#返回登陆页面的URl
return
ipaddress
.
geturl
(
)
|
然后进行解析URL中的参数,将其转换为JSON数据进行解析出来
|
#传入上面获取的URL 返回json数据
def
qs
(
url
)
:
query
=
urllib
.
parse
.
urlparse
(
url
)
.
query
rs_json
=
dict
(
[
(
k
,
v
[
0
]
)
for
k
,
v
in
urllib
.
parse
.
parse_qs
(
query
)
.
items
(
)
]
)
return
rs_json
|
初始化json数据进行解析