更多课程 选择中心


Python培训

400-996-5531

用Python完成一个简单的自动化任务


时间过得飞快,如果不是刻意去记录,你总会猛然发现一转眼又是一年。

去年也就是在差不多这个时节开通了自己的微信公众号,从刚开始的兴趣盎然,慢慢也更新频率降低了很多。

如果说一年间都没有值得写的东西,那也有失公允。其实,零零碎碎也学了一点东西,很多时候也想记录下来,但是总是因为各种原因搁置了下来(可能是自己觉得没什么价值吧)。

好了,言归正传,回到今天的话题上来。

很多时候,要有需求,自己才会有去稍微专研的动力。这一次想讲一讲最近产生的一个小需求,然后如何用Python完成这个小任务。

首先明确需求:

大致来说,就是几个月前在某个存钱返利的网站,存了一点钱。然后,网站每天会返回大概几百块钱到网站上我的账户。重点是,我为了保证资金的安全,需要每天登陆网站将网站账户(类似于支付宝)的钱提现到银行卡。每天都要登陆,进行简单的几步操作,输入几次密码,久了也会感到厌倦的。

最初的想法思路:

很简单,就是需要写一个程序每天定时执行一次,然后每一次执行的时候模拟人类完成以下几个对网页的操作:

登陆网站首页,输入账户名及密码,点击登陆;

选择账户提现,选择要提现到的银行账户;

输入提现金额,输入提现密码;

点击确认,完成提现。

工具的选择

其实上面的描述来看,很像“按键精灵”完成的事情。但是我没用过按键精灵,也不确定输入账户名及密码是否方便或者安全。我最先想到的还是用Python。然后,在Google中简单的输入类似于“website log in with Python automatically",然后在第一页就会得到这样的结果。

点进去一看,文章介绍的是如果通过Python + Selenium这个库,完成谷歌邮箱登陆的。基本满足我们的需求。然后,查询以下Selenium文档,很简单清晰的一个库。无非就是,浏览器上按F12查找页面元素位置,然后get到页面元素后进行键盘输入、点击滑动等操作。最不济,也可以通过Chrome浏览器复制Xpath进行定位。

经过简单的调试(主要就是在等待页面加载这个坑,因为程序输入密码等操作是比人操作快很多的,有些网站如果是通过JavaScript加载的话,可能下一个页面的元素还没加载完毕,程序已经跑到下一步来。那么,程序必然会报错,因为元素没加载出来,程序找不到要操作的元素),小程序很快就可以工作了。

录屏的时候,电脑是连的手机热点,网速稍微有点卡顿。虽然,没有精确的算过比人工操作快多少,但是至少每天省去连一份机械化操作的任务。下一步,准备把这个小应用部署到云端,然后每天定时执行,这样电脑都不用开机连,做到完完全全解放。

正好在程序写好的当天,有个好基友闻到可以做一个类似的机器人,完成公司网络大学的考试不。因为,公司网络大学的考试,每次其实都是有题库的,只不过可能顺序稍微有点变化。想了想,程序加入读取本地题库,然后搜索查找的方式,应该是可以完成的(不需要理解题目意思,这属于高级的人工智能机器人领域连)。

P.S 最后,发现还有一个彩蛋。就是,之前在写爬虫的时候,总是会苦恼JS动态加载网站内容的爬取。比如,下面网页中的19200就是动态加载的,因为每天都会累计变化。

动态加载数据的网站,使用传统的beautiful soup + request是基本没有办法的。除非你具有高超的技能,能够分析数据包,在Network中找到API地址或者实际请求服务器寻求加载数据的地址。否则,是抓不到数据的。判断动态加载数据的方法也很简单,打开网站源代码,搜索19200,发现找不到结果,说明在HTML结构中是找不到数据的,因为数据是通过JS加载的。

那么,对待这一类网站,除了分析API,另外的方法就是用Selenium这样的headless浏览器来模拟操作网页,对待网页动态数据加载完毕后,再抓取数据。比如这里,我们就可以很容易抓到账户余额这样动态加载的数据。

好了,时间不早了,简单地讲了以下用Python完成一个自动化任务的思路过程。顺便提到了意外收获,用selenium抓动态数据。发挥脑洞,应该这一类自动化任务还是有蛮大需求的。

本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:非常好用的19个Python爬虫推荐
下一篇:python中的变量和简单的数据类型

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省