用Python做一个愿望清单,2020年计划让小美女来督促吧!

2019年就要这样结束了,各位小伙伴们年初立的flag都实现了吗,还是说像下面图片中的这位仁兄一样被现实啪啪打脸呢?其实我们大部分人制定的“明年计划”还是比较靠谱的,只是在执行过程中由于各种原(借)因(口)不断拖延,慢慢就抛到脑后直至放弃,最终没能实现。

为了避免这种情况,我们可以写一个定时提醒系统,时不时的给自己打打鸡血,说不定加把劲,小目标就实现了呢。好了,闲话聊到这里,下面我们正式开工。

1

第一步,列出计划

制定切实可行的计划是工作的第一步,为了方便后期自动化读取,小编把列出的计划写在了石墨文档里,注意下图中的URL,这个就是写下明年计划的文档地址,在后面的步骤中会用到。

至于具体的目标麽...大家根据实际情况制定就好,目标太大实现不了也就没了动力,目标太弱可能不到半年就完成了,意义不大。

2

第二步,自动读取

这一步要实现的功能是让程度自己进到石墨文档中,自动获取刚辞我们提到的文档URL页面中的内容,具体方法就是写一个小爬虫。

但是,遇到了一个问题,那就是访问石墨文档是需要登录的(下图),好在它没有什么麻烦的验证环节。

小编使用的方法是selenium模拟登录,当然你也可以使用其他办法。selenium这个工具我们之前的文章中也是多次用到,不熟悉的朋友也不要担心,下面我们一起来讲解相关的代码,都是一些比较简单的操作。

首先初始化selenium.webdriver对象,同时设置好自己的用户名和密码、定义退出函数。


之后是自动登录模块,这一步最重要的就是获取用户名和密码的页面元素,等待这两个页面元素加载完毕后,先使用clear方法清空文本框中原有内容,再使用send_keys方法分别将用户名和密码写入对应的位置,最后模拟点击“立即登录”按键完成模拟登录的操作。

最后定义获取新年计划具体内容的函数,这一步可以算是最最基本的爬虫操作了,这里不再解释,大家直接看代码就好。

接着只要再加一个入口函数,就能实现自动登录+内容获取的功能了。

3

第三步,定期提醒

定期提醒是本篇文章的核心功能,一般来说我们现在常用的通讯工具非微信和钉钉莫属,但是微信做自动提醒门槛比较高,使用机器人还有被封号的危险,所以就使用钉钉吧。

1).钉钉机器人

钉钉的一大优势是官方支持机器人自动推送消息,而且配置起来很简单,通常只需要以下几步:

a).下载钉钉手机APP并登录;

b).建立只有自己的钉钉聊天群,如果你希望把消息同时推送给其他人,也可以把他们拉到群里来;

c).在群聊中添加机器人,类别就选最下方的“自定义”(下图);

d).在PC端登录钉钉,找到刚才建立的群聊机器人设置界面(下图),复制其中的webhook码备用。

经过以上步骤,钉钉消息推送机器人的配置就完成了,接下来让我们看看如何通过API自动发送消息。

2).发送消息

我们新建一个py文件,然后导入爬取石墨文档信息的python脚本,看看获取到的明年计划是什么形式的数据:

可以看到,获取到的信息是一个包含了计划内容的列表,也就是我们需要通过钉钉发送的核心消息。

虽然钉钉官方给出了消息发送的API,但是使用起来稍微有些麻烦,小编推荐使用DingtalkChatbot这个库来实现钉钉消息的自动发送。来看下面这段代码:

其中,webhook就是上面第四步中复制下来的内容。我们把获取到的missions列表转换成带换行符的字符串,然后通过send_text方法进行发送,is_at_all为True表示@所有人,来看看钉钉手机端收到的信息吧:

总的来说基本功能实现了,但是一年之内总是重复查看这条信息,估计用不了多久自己就烦了。所以,要不要考虑对接收到的消息进行一些修饰,比如说...配个小姐姐养养眼?

4

第四步,配个美女

我们刚才提到的用于发送钉钉消息的DingtalkChatbot库,除了普通文本之外还可以发送Markdown格式的消息,这就意味着我们可以在待发送的消息中进行字体设置、添加超链接、图片等操作,这样一来在消息中添加美女图片就简单了。

这里需要注意一点,Markdown消息中引用的图片地址必须是在网络中能直接访问的,不能是本地图片。

那么美女图片要从哪里获取呢,这个网上可真是一搜一大把了,小编就以plmm这个网站为例进行演示吧。

通过简单的页面分析,很轻易就能获取大量的美眉图片原地址,我们需要做的只是从中随机选出一张嵌入到待发送消息中。

例如,网站封面轮流滚动的7张图片会定期更换,我们可以每次从这几张图片中随机选取一张图片,这样可以保证每次选取的配图大概率是不一样的,从而保持新鲜感。通过分析页面,可以确定这几张图片的URL格式相对比较规范。

下面我们就开始尝试通过DingtalkChatbot自动发送Markdown格式的信息,为了讲解方面还是先看代码:

上面这段就是钉钉自动发送Markdown格式消息的完整代码,相对于上一段代码,此处着重对Markdown信息中的字体、图片等内容进行了设置,然后通过send_markdown方法进行了发送。来看下收到的提醒信息样式:

这下看上去是不是美观多了?你可以根据实际情况设置每周或者每月向自己发送提醒消息,每次都会有不同的美眉督促自己去完成计划。

此外还可以把记录新年计划的文档地址关联到标题中,这样一来如果某项计划完成了,可以直接点进去把该项任务删除掉以避免重复提醒,前提是你的钉钉中安装了石墨应用。


好了~今天的分享就到这里,项目中涉及的所有代码全都贴在了文章之中,有兴趣的朋友们可以自己尝试构建这个系统。最后,祝愿我们在2020年都能顺利实现自己的小目标。

另外,很多小伙伴说光看我们的文章不过瘾,我们也在陆续同步一些趣味的案例视频+源码在B站,尝鲜的可以点击阅读原文看哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值