Webコミックの次回更新日をWebスクレイピングで取得してみる
岩手県立大学とか、岩手の人たち Advent Calendar 2022 15日目の記事です。今日はWebで公開されているマンガの次回更新日をWebスクレイピングで取得する話をしようと思います。
Webコミックの次回更新日
私が読んでいるWebコミックの一つに「邪神ちゃんドロップキック(COMICメテオ連載)」があります。Webでマンガが読めるのはありがたいのですが、次にマンガが更新される日付を見落としがちだったりします…。こまめにWebサイトを確認すれば良いのですが、確認しに行ってまだ更新されていないとちょっと残念な気持ちになるので、自動的に次回の更新日を把握しておきたいものです。Webサイト上には「次回は○月×日更新」といった記述があるため、この情報を取得できればよさそうです。
Webスクレイピングで次回更新日を取得してみる
さっそく「邪神ちゃんドロップキック」のWebサイトのHTML構造を見てみます。更新日の表示は「次回は○月×日更新!」という形式になっているので、単純に「次回は」というキーワードでgrepしてみます。前後のHTMLを見ると、 <div class="work_next_update_txt">
タグの一行下に次回更新日が記載されています。
$ curl -s https://comic-meteor.jp/jyashin/ | grep -B4 -A4 次回は <div class="work_next_update"> <!-- 最新の投稿を表示 --> <div class="work_next_update_txt"> 次回は12月28日更新! 単行本20巻&ムック好評発売中! クラウドファンディング大反響実施中! </div> <div class="work_next_update_txt"> </div> <!-- 投稿記事数の判定終了 --> <!--次回は4月更新予定! ☆TVアニメ化決定ですの!☆特集ページもチェック!☆最新情報は公式twitter(@jashincyan)にて。--> </div><!-- work_next_update end --> <script src="https://comic-meteor.jp/jyashin/wp-content/themes/comic-meteor-child/indexPage.js"></script> <div class="work_episode">
というワケで、以下のようにすると無事に次回更新日が取得できました。
$ curl -s https://comic-meteor.jp/jyashin/ \ | grep -A1 '^ <div class="work_next_update_txt">' \ | tail -n1 \ | sed \ -e "s/更新.*//" \ -e "s/^.*次回は//" 12月28日
まとめ
Webコミックの次回更新日を取得する方法を紹介しました。小技チックな手法ですが、HTMLの構造次第では今回の例のように、簡単な文字列置換のみで目的が達成できたりします。 (なので、簡単なシェルコマンドを覚えておくのは意外と有用だったりします)