先に
この記事は下記事の内容をパクったと言っても過言ではありません.
もはや写経ですが勉強記録用なので.
動機
時の流れか,我が家では4月から新聞の購読を停止することになりました.非常に残念であります.かくいう私も,新聞をまともに読んでいたのはGコードが消えるか否かのころまでだったと思います.今ではラテ欄とスポーツ欄に隔月で発生する大相撲ぐらいしか読んでいません.あと下世話な週刊誌の広告.
テレビっ子な私はラテ欄の代替を探さなければならないわけですが,Webの番組表の扱いにくさは厳しいものがあります.あの縦長どうにかなりませんか.あの中で見たい番組を探すのは至難の技でしょう.こんな状態なので最低限,自分が興味のある番組くらいは抑えておきたいわけです.スクレイピングはPythonでかじっているので苦労はしないと思うのですが.
流れ
手作業でのURL取得
番組を探す — Gガイド.テレビ王国で見たい番組のキーワードや芸能人の名前を入力しURLを生成します.ここ一番ダサいです.試しに地上波
+金属バット
1で検索します.
https://tv.so-net.ne.jp/schedulesBySearch.action?condition.genres[0].parentId=-1&condition.genres[0].childId=-1&stationPlatformId=1&condition.keyword=%E9%87%91%E5%B1%9E%E3%83%90%E3%83%83%E3%83%88&submit=%E6%A4%9C%E7%B4%A2&descriptive=true
このURLとページのソースを元にスクレイピングしていきます.url.json
には後で使う情報を入れておきます.
url.json
スクレイピングと整形
TV_scrape.js
メモ
- ライブラリは
cheerio-httpcli
を使う.require
はimport
みたいなものだろうか. - 関数名の前に
async
を置くと内部でawait
が使える.await
は待機と例外処理を担う? index
側からfetch
にURLを投げる.- タグはそのまま,
id
は#
,class
は.
を付けて表現する. module.exports
は外から呼んだときに使えるようにするもの?
Slackへの通知
slack.js
メモ
- 一言一句違わず申し訳ない気持ちになる.
- やっていることは単純だが一から書くとなると…
index.js
通知といったら瓦版なのでチャンネル名は#瓦版
です.fetch
の前にawait
を入れないとエラーを吐くので気を付けます(1敗).
実行
node index.js
他にやりたいこと
- AWSで定期的に実行.
- Slackの
slash-command
を用いた検索条件の追加削除.
今回はここまで.
Tweet comments powered by Disqus