用python脚本4行代码实现自动登录上网认证系统
公司最近搞了个上网认证系统.每天开机要连上网络都要登录一下.一直听说python啥事都能干,说得我这个美工心痒痒.装好python,搜了一些教程,说简单的post发送就能搞定,再往下,了解到了post需要requests这个东西.还是搜索,知道怎么装了,...
公司最近搞了个上网认证系统.每天开机要连上网络都要登录一下.
一直听说python啥事都能干,说得我这个美工心痒痒.
装好python,搜了一些教程,说简单的post发送就能搞定,
再往下,了解到了post需要requests这个东西.
还是搜索,知道怎么装了,跳过写hello world这一步,直接把网上搜索的代码往IDE里一贴然后运行
>>>当当当当...当然是各种红色英文字了
对于一个只接触过css的美工来说,代码太难了
但是我不是一般的美工,我是一个机灵的美工.
经过不倦的copy,试运行,我还是没能写出一个简简单单就能搞定的python代码.
我还是老老实实的每天登录一遍那个认证,有记住密码功能似乎没那么麻烦.
然而,一种不认命的念头始终在我登录认证的时候浮现.
于是我又操起了python IDLE窗口,打开"Requests: 让 HTTP 服务人类"
从头开始这个简单而又神圣的目标.
很多教程都告诉我们怎么在浏览器的调试模式下找到"那个url",对,就是那个url
对requests来说,这应该是第一要解决的任务.
我们公司这个认证系统的post地址是写在js文件中,仔细找基本上能在代码行中搜索到.
但那对我太难了,
总到来说,我找到了这个url,但不是调试模式下找到的,我用了Charles这个工具,
大佬们用来抓包的,我粗略了解它的用法.打开它,然后点击认证系统上的登录按钮,
charles里就出现了一个新的地址,不消说,它应该是那个url了.
于是我开始写post方法了:
import requests
url = 'http://180.--.-.--/ac_portal/login.php'
r = requests.post(url)
我也用过get.但我觉得看长相就不应该用get
运行....! shell窗口出现了从未见过的空白景象.
我不知道发生了什么,但我觉得它没出错了.
print(r)一下.
<Response [404]>
404的含义就是url正确,但是找不到文件.请忽略这个,因为找到这个也不是我的目的.
解决登录的目的应该是发送用户名和密码给某个地址,然后它返回登录成功就可以了.
我对比了charles中用认证系统登录和用我python Post过去的结果,
它们的区别在于我这个代码没有带一个form过去.
form里面正是我填的用户名和密码

之后我尝试了网上搜索的各种方法,
什么url后面带参数,最后搞明白要用data.
import requests
url = 'http://180.--.-.--/ac_portal/login.php'
data = {'opr':'pwdLogin','userName':'你的用户名','pwd':'你的密码','rememberPwd':'0'}
#反正这里一堆参数或多或少,看原本页面上发送的form字段有哪些就行.
r = requests.post(url,data)
运行.....成功!
print(r)
返回<Response [200]>
事情解决的很突然,还有点不习惯.反正大概就这四行代码就搞定了.
有看别人写的要加什么header什么的,我也加过,不加一样可以用.
然后把文件拖到开机启动文件夹.每次自动运行.
曾经在登录页面心里浮现的想法(懒惰的想法)就这么实现了,果然程序员就是牛逼,可以用工具帮自己干活.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)