#1.はじめに
週末の楽しみといえば、金曜ロードショー!
でも、金曜当日に特に興味ない映画だと発覚した時の残念感。。。あの気持ちになりたくないw
公式HPを見れば万事解決だけど、いちいち開くのがめんどくさい!
ワンボタンで確認できるようにしたいなー。。。
なら作ってしまおう。
最近、Pythonistaというものを知ったので、勉強がてらに作ってみました。
#2.開発環境
- ios 13.3.1
- Pythonista 3
#3.処理手順
下記の手順をPythonistaで達成するようにしました。
- 金曜ロードショーの公式サイトにアクセス
- 作品ラインナップから「今後の放送ラインナップ」の映画の日時、タイトルを取得
- 取得した日時、タイトルを表示
- 任意で、金曜ロードショーの公式ページを開けるようにする
#4.処理詳細
まずは、必要なものをimportする。
console:「はい/いいえ」の画面をつかうのに使用
webbrowser:指定したサイトを開くのに使用
requests:指定したURLの情報を取得するのに使用
BeautifulSoup:スクレイピングに使用
import console
import webbrowser
import requests
from bs4 import BeautifulSoup
金曜ロードショーのラインナップの情報を取得します。
※ラインナップの情報は、下図の赤枠内の放送日、タイトルです。
取得した放送日、タイトルは辞書にし、lineup_listリストに格納します。
※BeautifulSoup関連の説明は省きますm( _ _ )m
req = requests.get('https://kinro.ntv.co.jp/lineup')
soup = BeautifulSoup(req.text, 'html.parser')
lineup_text = soup.find(attrs={'id': 'after_lineup'})
cap_list = lineup_text.find_all(attrs={'class': 'cap'})
lineup_list = [{
'Date': cap.find(attrs={'class': 'date'}).get_text(),
'Title': cap.find(attrs={'class': 'title'}).get_text()
} for cap in cap_list]
lineup_list リストに格納されている放送日、タイトルを文字列に変換します。
display_text = ''
for lineup in lineup_list:
lineup_text = '◆' + lineup['Date'] + '\n' + lineup['Title'] + '\n\n'
display_text += lineup_text
作成した文字列を表示し、公式HPを開くかどうかの「はい/いいえ」のボタンを表示します。
「はい」を選択した場合は、公式HPを開きます。
「いいえ」を選択したときは、ホーム画面に戻ります
※ホーム画面に戻る処理をするためには、Launcherというアプリが必要になります。
(もしかしたらもっと良い方法があるかもしれません。。。)
この方法は、下記サイトで知ることができました。
https://reliphone.jp/post-15249/
res = console.alert(display_text, 'サイトを開きますか?', 'はい', 'いいえ', hide_cancel_button=True)
if res == 1:
webbrowser.open('https://kinro.ntv.co.jp')
else:
webbrowser.open('launcher://homescreen')
次は、作成したスクリプトをボタン1つで実行できるようにします。
#5.ワンボタンで起動できるようにする
Pythonistaには、ホーム画面にアイコンを配置できるのでそれを利用します。
作成したスクリプトを開いた状態で、右上のスパナマークをクリックし、Home Screenを押します。
これで、晴れて金曜ロードショーがワンボタンで確認できるようになりました。
#6.ソースコード
Gitにソースコードがあるので、良ければ参考に
https://github.com/sakagami0615/CheckFridayRoadshow
※Python3でも動作するソースも作成しました(main_python.py がそれです)