前回に続いてテキストブラウザLynxを使います。前回はLynxを使ってページを閲覧しました。今回はLynxを使ってWebページ内の検索などを行います。なお、見やすさの都合でUbuntu上でのLynxを使用していますが、Raspberry PiやmacOSでも同様です。(UbuntuはmacOS+Multipassで動作させています)

今回もこれまでのようにサンプルで利用するファイル・ディレクトリはデスクトップのsampleディレクトリとしています。デスクトップにsampleディレクトリがない場合は作成しておいてください。(コマンド入力ならmkdir ~/Desktop/sampleとして作成することができます)
また、カレントディレクトリも上記の場所になります。cd ~/Desktop/sampleのようにコマンドを入力してカレントディレクトリを変更しておけばよいでしょう。

Lynx上でページ内検索をする

 ページ内の検索ならLynxで該当するWebページを表示してから/キーを押します。

検索する文字列を入力するように促されるので検索したい文字列を入力してからリターンキーを押します。該当する文字列があれば対象箇所がリストアップされます。

該当する文字列がない場合は〜not foundといった見つからなかったことを示すメッセージが表示されます。このメッセージはしばらくすると消えます。

コマンドラインから検索する

 LynxはWebページを表示しなくてもコマンドラインから検索することもできます。Lynxにはdumpオプションを指定するとWebページ内の文字だけをピックアップして出力する機能があります。WebページでHTMLタグを削除したり面倒なことをするくらいならLynxでdumpオプションを指定して出力させてから様々な処理をさせる方が楽でしょう。特にRaspberry Piは最初からLynxが入っているのでcronなどと組み合わせれば定期的に特定のWebページの内容を保存しておくようなこともできます。
 それではdumpオプションを指定してWebページを表示してみましょう。以下のようにすると、この連載の目次ページが表示されます。

lynx -dump https://news.mynavi.jp/techplus/series/natonakucommand/

瞬時に表示されてしまいます。ページの先頭から見るにはlessやmoreなどのページャー関係のコマンドを使うと便利です。このようにすれば特にWebブラウザを使わずに手慣れた(?)lessなどを使って簡単にページを閲覧できることになります。

lynx -dump https://news.mynavi.jp/techplus/series/natonakucommand/ | less

なお、macOSの場合、日本語部分が文字化けしてしまうので以下のように-display_charset=UTF-8を指定する必要があります。以後もmacOSで日本語等を含むページを処理する場合は、このオプションを指定する必要があります。

lynx -dump -display_charset=UTF-8 https://news.mynavi.jp/techplus/series/natonakucommand/ | less

パイプ(|)を使えるということはgrepを使って検索できるということです。早速grepで検索してみましょう。grepの後に検索する文字列を指定します。該当する文字列がある場合は該当行が表示されます。

lynx -dump https://news.mynavi.jp/techplus/series/natonakucommand/ | grep 'IoT'

該当する文字列がない場合は何も表示されません。

lynx -dump https://news.mynavi.jp/techplus/series/natonakucommand/ | grep 'sample'

Webページを保存する(テキスト)

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら