python实现自动登录

发布时间:2021-11-03 19:47:16 作者:cemon_liu 阅读量:28

电脑连接无线网时要做二次验证,即先输入无线密码连接无线,然后会弹出网页要求在网页输入账号和密码。每天连接都是这样比较麻烦,所以考虑使用自动化运行。思路如下:

  1. bat调用命令power-shell
  2. 使用power-shell script 运用python程序
  3. python使用request库访问URL 并post请求

那为何不是bat直接调用python呢?正常的情况下可以直接调用。但是不知我的电脑是不是环境设置有问题。在VS code中terminal里面使用的power-shell都可以正常运用,直接在cmd里面运用python就报错。所以不得不中转一下。

新建一个g.bat 调用power-shell命令,wifi.ps1为power shell命令档

powershell wifi.ps1
&D:/ProgramData/Anaconda3/python.exe e:/wifi.py

调用python命令来运行python文件

新建wifi.py文件

import requests
url = 'https://XXXXXXX/login.html'
headers = {
    'Content-Type''application/x-www-form-urlencoded',
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
    Chrome/94.0.4606.81 Safari/537.36'

}
data = {
    'network_name''wifi',
    'username''xxxxx',
    'password''xxxxx'
}
res = requests.post(url=url, headers=headers, data=data, verify=False)
print(res.request.body)
print(res.status_code)

使用requests库的post(url,headers,data,verify=False).在调试过程中发现下面两个问题:

  1. post的data类型比较多,要注意识别。这里使用比较通用的form类型。所以数据采用key:value模式。
  2. 报错SSL connection问题,增加verify=False可以跳过错误。

最后的设定,使用uTools将bat文件添加到本地命令启动。这样后面连接无线网之后,直接按alt+space,输入g回车即可自动认证。


苏ICP备 19049580号-1号

Catfish(鲶鱼) CMS V 6.4.0