用30行代碼|搭建一個提醒《權遊》劇集系統

《權力的遊戲》最終季終於上映了,自2011年首播以來已經是第9個年頭,這9年的時間裏相信很多小夥伴經歷了中學、大學、職場等多種環境的角色轉變,以前可以悠閒地追劇,現在可能會忙的連更新時間都忘記。剛好最近得知一種信息提醒的新方法,就拿《權遊》來試試效果,實現一個劇集提示系統。

01.獲取最新劇情信息

很多影視網站上面都有《權力的遊戲》最新劇集信息,我們可以從中獲取需要的內容,本文選擇電影天堂作爲劇集信息來源。

下面這張圖片就是電影天堂網站《權力的遊戲》第八季頁面,從圓圈中的位置可以很直觀地看出當前的最新劇集是哪一集,這也正是我們需要爬取的內容。

這個頁面沒有什麼反爬措施,而且我們需要的信息也非常簡單,我直接放出爬蟲代碼:

上面這個函數返回的是網站上公佈的最新劇集信息和網站鏈接,下面我們就來看如何發送信息提示。

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並解決生活中的問題是最好的學習方式。

【菜鳥學Python】累計原創近400篇趣味乾貨(爬蟲,數據分析,算法,面試指南,原創趣味實戰,Python遊戲,機器學習),歡迎一起學Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章