可以用 Python 编程语言做哪些神奇好玩的事情?
我觉得我现在做的事情还是挺有趣的,目前能做的就是每天帮我在常混的论坛签个到去京东领个京豆,但是应该会逐渐成为一个通用化和拓展性比较强的程序。
事情最初是这样的:我发现,作为一名单身狗程序猿,一定要避免自己闲下来。不然很容易就会因为寂寞难耐做一些不可告人的事情。但是在实验室实习真的好无聊啊怎么办呢?
这是个问题。
思前想后,久仰python大名的我决定学习一下python。总的来说,python果然还是很简单的,大概看了一个下午加一个晚上,我觉得是不是得写点啥出来。
可是我需要啥呢?我觉得每天我都需要登陆某些论坛签到抽奖真的挺麻烦的,还总是容易忘记,那就写一个自动签到抽奖的程序吧。
第一个版本很快就写好了,大概两个小时吧。因为其实原理也真的不难,借助selenium和phantomJS打开浏览器然后执行JavaScript脚本就可以了。可是为什么花了这么久呢?一是python还不熟练,二是有些phantomJS的坑以前不清楚耽误了很久。
可是就这么止步怎么行呢,总不能我需要登陆一个网站就需要写一个程序吧,这也太麻烦了。所以我很快就开始了第二个版本的编写。
第二个版本的大致思想就是利用配置文件来控制程序的运作,这样我只需要写配置文件就可以了。最开始的配置文件是这样的。
{
"url":"http://account.oneplus.cn",
"wait":2000,
"scripts":[
{
"element":"#loginName",
"value":"××××××××@qq.com",
"operates":["focus","click"]
},
{
"element":"#passWord",
"value":"××××××××",
"operates":["focus","click"]
},
{
"element":"a.login_win_loginBtn",
"operates":"click"
}
]
}
其意思也不难猜出来,大致就是为某个输入框赋值或者点击某个按钮之类的。通过这种方式,就需要更改程序代码只需要编写配置文件就能够实现新的任务了。
可是,既然决定提高通用性了,这还是不够高,因为对于不了解前段知识的人还是有点难度。所以,我决定增加一些配置方式。
所以,就实现了下面的配置文件方式。
{
"url":"http://account.oneplus.cn",
"wait":2000,
"scripts":[
{
"position":[506,256],
"input":"×××××××@qq.com"
},
{
"position":[510,303],
"input":"×××××××"
},
{
"position":[513,403],
"operates":"click"
}
]
}
就这样,咱也不需要看页面到底输入框是啥登陆按钮是啥了,截图总会吧?从浏览器左上角截个图,然后到输入框或者按钮为止,看看图片多宽多长,就知道位置在哪了,然后提供未知告诉程序你想干啥,剩下的就全不用你管了。
这样是不是实用性就大大提高了?
所以,我就很快写了几个论坛自动登录的配置文件还有京东的领金币文件之类的,也没花上几分钟,这可比一个个写程序快多了,而且也更可靠。
但是到了现在,原有的代码结构已经不是很能满足需要了,因此第三轮的重构又来了。主要就是增加验证功能和自动化。自动化就是你只需要把配置文件放在那里,不用手动启动了自动就开始帮你跑了,验证就是希望能够提供一些规则能够判断这个任务到底成功没有,如果没成功该怎么办。
目前代码还在不断修改中,等功能基本完善了可以考虑放出来。