twitterのbotを作りました
javascriptとスクレイピングの練習のためにbotを作りました。
botはこちら ばちゃこんお知らせbot
ロジックはrequestで拾ってきたhtmlをcheerio使って解析しているだけ。 作っていて引っかかったのは配列の中に含まれるすべてのURLに対してリクエストをかけるところ。
Promiseチェーンで作るのはいいですが、全部の非同期通信が終わったら次のthenに行くのどうすればいいんだよと悩んでいたところで見つけたのがこれ Promise.all()
要はPromiseの配列を用意して渡してあげるとすべての評価が終わるまで待ってくれる便利な関数でした。
実際に使用している部分は↓
GitHub - vc-summary-bot/index.js
あと追加しようと思っているのが以下のロジック
- スクレイピングした結果をDBに保存する
- DBの結果を使って週間ランキングを作る
- 定期的にサイトを見に行って新しいコンテストが出ていたらツイートする
DBに保存すればサイトを作って過去の結果を公開するもの面白そうですね。