用30行代码|搭建一个提醒《权游》剧集系统

《权力的游戏》最终季终于上映了,自2011年首播以来已经是第9个年头,这9年的时间里相信很多小伙伴经历了中学、大学、职场等多种环境的角色转变,以前可以悠闲地追剧,现在可能会忙的连更新时间都忘记。刚好最近得知一种信息提醒的新方法,就拿《权游》来试试效果,实现一个剧集提示系统。

01

获取最新剧情信息

很多影视网站上面都有《权力的游戏》最新剧集信息,我们可以从中获取需要的内容,本文选择电影天堂作为剧集信息来源。

下面这张图片就是电影天堂网站《权力的游戏》第八季页面,从圆圈中的位置可以很直观地看出当前的最新剧集是哪一集,这也正是我们需要爬取的内容。哦对了,在分享这篇文字前,我先说一下,我自己有整理python的学习资料,可以直接加我的python直播学习群:975188894就能免费领取,长期真实有效。

这个页面没有什么反爬措施,而且我们需要的信息也非常简单,我直接放出爬虫代码:

扫描二维码关注公众号,回复: 6187355 查看本文章

上面这个函数返回的是网站上公布的最新剧集信息和网站链接,下面我们就来看如何发送信息提示。

02

向手机发送提示信息

本文的信息提示系统基于钉钉来实现。

1)关于钉钉

钉钉的功能和微信有很多相似之处,事实上也是如此。我们都知道,使用itchat等接口可以实现基于微信的聊天机器人,只不过itchat并不十分稳定而且还会发生网页版无法登陆等问题。和微信不同的是,钉钉官方本身就提供了聊天机器人支持,我们只需要设置并调用它的接口就可以。

在使用钉钉的信息推送功能前,需要先完成以下几项内容:

  • 下载钉钉手机app、注册账号并登陆。

  • 建立聊天群,钉钉的聊天群允许只有1人,也就是说如果只是为了给自己发送提示,可以建立一个只有自己的1人群。

  • 在群聊中添加机器人,选择最下方的“自定义”(下图)。

上述工作都可以在手机上完成,但是下面的操作必须要在钉钉的PC端进行操作。登陆PC版钉钉后找到群聊中的机器人设置界面(下图),复制其中的webhook码,后面马上就会用到。

2)信息发送

下面我们先写一个最最基本的钉钉信息提示脚本,看下面这段代码:

  • 代码中的webhook就是刚刚获取到的值,这个值决定了钉钉会向哪个群发送信息,也是requests的请求地址;

  • header是钉钉接受的数据格式;

  • data中包含的是发送信息的类型和内容;

  • 钉钉的这个接口默认只接收json格式的数据,所以在发送前需要将data转换为json格式的数据;

  • 最后一条post语句会将data中的数据发送到钉钉群聊中。执行上述代码,会在刚才建立的钉钉群聊中接收到一条内容为“message”的信息。

目前自定义机器人支持文本(text)、链接(link)、markdown三种消息格式,五种消息类型,但由于各种消息调用官方只提供Java语言的封装,使用python调用比较繁琐,好在早有大神实现了钉钉机器人的python封装——DingtalkChatbot。

3)DingtalkChatbot

DingtalkChatbot是一个开源的第三方库,相比原始的钉钉机器人,DingtalkChatbot的使用也更加方便,例如执行下面这四行代码:

就可以实现最基本的消息发送(还可以@所有人),效果如下:

除此之外,DingtalkChatbot还支持Link消息、image表情消息、Markdown消息、ActionCard消息等多种数据格式,关于DingtalkChatbot的详细介绍和使用方法,可以看这里。我们此次的新剧提示系统也将使用DingtalkChatbot来完成。

03

搭建新剧提示系统

现在最新剧集信息拿到了,提示信息的发送方法也有了,剩下的问题就是判断何时发送提示信息了。很显然我们需要一个对比条件,当本次获取到的最新剧集与上次获取到的信息不同时,证明剧集已经发生了更新,这时就需要发送提示信息。

最新的剧集信息可以从网上抓取,而上次获取到的信息则需要从存储的历史数据中提取。存储历史数据的方式很多,这里我采用最简单的txt文件,在程序首次运行前向文件中写入“第0集”的文本数据。

每次从电影天堂网站抓取最新的剧集信息后,紧接着从txt文件中提取上次获取的剧集信息,二者比较如果不相同,则向钉钉发送信息提示,同时将最新的剧集信息写入txt文件中。这部分代码如下:

代码中的send_msg是一个自定义函数,利用DingtalkChatbot发送一份Markdown格式的信息提示:

来看下最终的提示效果:

点击蓝色的链接“观看地址”,就会自动跳转到电影天堂的播放页面。当然,这个观看地址不是必须的,只要得知《权力的游戏》已经更新,相信大家有很多途径获取高质量的片源。

程序编写完之后,我们可以建立一个计划任务,比如每天下午6点运行一次,如果发现有剧集更新,下班后就可以慢慢欣赏了。

Python就是这么有趣,可以做很多事情,通过趣味学Python并解决生活中的问题是最好的学习方式。

如果在学习中遇到问题有不明白的地方,推荐加小编微信:Pythonsusu

有视频教程 ,直播课程 ,等学习资料,期待你的加入

猜你喜欢

转载自blog.csdn.net/weixin_44811417/article/details/89639498