ホーム » 2022 » 2月

月別アーカイブ: 2月 2022

SeleniumでWebページをスクレイピングする

自分はバッチ大好きなので、何かを毎日チェックしたいときには、なるべくコードで自動化することを考える。たとえば最近MinecraftサーバをPaperMCで立てたのだが、PaperMCは(上流を含めて)開発が活発で頻繁にアップデートされる。これを定期的にチェックして常に最新版にしておきたいのだが、アップデート情報はWebページに記載されているのみの状況だ。具体的には

のページを見に行って、リストの一番上にあるものがアップデートされたものかどうか確認しなければならない。いちいちこれを目でチェックして手動でダウンロードするのは面倒なので避けたいわけだ。こういうときはWebページをバッチで読んで該当部分をparseしてやればよいわけだが、問題は該当ページがJavascriptによる動的生成である場合だ。このようなページはLWP::UserAgentのようなライブラリでは読めない。そこで動的にページ生成して、その結果を読むような仕組みが必要だ。

Seleniumはブラウザ自動化とそれを支えるツール・ライブラリ群のプロジェクトだ。

これと、APIをサポートしたブラウザを組み合わせれば、簡単にページをparseできるようになる。本稿ではAlmaLinux上のPerlでparseできるように環境を構築する手順を示す。

[続きを読む]