Webコミックが更新されたかどうかを自動的にチェックしてみる

岩手県立大学とか、岩手の人たち Advent Calendar 2022 16日目の記事です。今日はWebコミックの更新確認をお手軽に行う方法を紹介しようと思います。

15日目の記事ではWebコミックの更新日を確認する方法を紹介しましたが、Webサイトによっては、そもそも次回更新日が記載されていない場合もあります。今回は、(私は単行本で読んでいるのですが)「ワカコ酒(ゼノン編集部)」を例に更新確認を行う方法を紹介しようと思います。

Webページの構造を把握する

さっそくWebページの構造を把握してみます。コミックぜにょんのWebサイトを見ると、第1話と最新話へのリンクがあり、最新話のURLは都度変わるという構成になっています。

このような場合は、「変わらないもの」に着目することで欲しいデータを引っかけるためのキーワード代わりにできます。今回の例では、「第1話」のURLは変わらないでしょうから、このURLをキーワードにできそうです。

URLはHTMLの a タグに記載され、 <a href="<URL>">ワカコ酒</a> のような記述になるため、URLとタイトルでgrepすると最新話のURLが取得できます。

$ curl -s  https://comic-zenon.com/series/zenyon | grep -A3 'https://comic-zenon.com/episode/10834108156688950516.*ワカコ酒'
    <h4 class="item-series-title"><a href="https://comic-zenon.com/episode/10834108156688950516">ワカコ酒</a></h4>
    <p class="item-series-author">新久千映</p>
    <div class="panel-tag zenyon">      <p>グルメ</p>      <p>おひとり様</p>      <p>TVドラマ化</p>    </div>
    <div class="panel-button">      <a href="https://comic-zenon.com/episode/10834108156688950516">1話へ</a>      <a href="https://comic-zenon.com/episode/316190247005800487">最新話へ</a>    </div>

こんな感じですね。この処理を一日一回走らせる等しておき、取得・保存しておいたURLと比較することで、URLが異なっていたら最新話が更新された、と判断できます。

$ curl -s  https://comic-zenon.com/series/zenyon \
    | grep -A3 'https://comic-zenon.com/episode/10834108156688950516.*ワカコ酒' \
    | tail -n1 \
    | sed \
        -e "s/\">最新話.*$//" \
        -e "s/^.*http/http/"
https://comic-zenon.com/episode/316190247005800487

まとめ

Webコミックの更新確認を行う方法の一つとして、最新話のURLを用いる方法を紹介しました。Webスクレイピングでデータ取得して以前のデータと比較するという、地味な方法ですが、チェックしたいWebコミックが多くなってくるとこのシンプルな実現方法の楽さが嬉しく思えてくるかと思います。