← すべての記事

コマンドラインでHTMLパーサするために pup を入れる(導入)

**pup** は、HTMLをCSSセレクタで解析できる軽量なコマンドラインツールです。 WebスクレイピングやHTMLの一部抽出を簡単に行いたいときに非常に便利です。

pup は、HTMLをCSSセレクタで解析できる軽量なコマンドラインツールです。
WebスクレイピングやHTMLの一部抽出を簡単に行いたいときに非常に便利です。

この記事では、Homebrew を使って pup をインストールし、Macで実際に使えるようにするまでの手順を紹介します。
環境は macOS + zsh(Oh My Zsh 使用)です。


インストール方法#

公式Formulaページはこちら:
https://formulae.brew.sh/formula/pup

インストールは Homebrew で一発です。

Terminal window
brew install pup

入れましたが動きませんでした。

Terminal window
pup --version
Password:
sudo: port: command not found

alias がすでに貼られていて動かなかった#

私は Oh-my-zsh を使っているのですが、何か別の alias が貼られていました。

Terminal window
which pup
pup: aliased to psu && puo

MacPorts用のコマンド?のようですが、Homebrew を使っていて MacPorts は不要ですので、この alias は不要です。 MacPorts を使っている方は \pup でバックスラッシュをつければネイティブのコマンドを叩けるのでそちらで対応するのが良いかと思います。

pupのaliasを unalias で解除します。

Terminal window
unalias pup

再度確認すると、正しい実行ファイルが参照されていることが分かります。

❯ which pup
/opt/homebrew/bin/pup

動作確認#

例として、example.com の と <a> のリンク先を抽出してみます。

❯ curl -s https://example.com | pup 'title text{}'
Example Domain
❯ curl -s https://example.com | pup 'a attr{href}'
https://www.iana.org/domains/example

問題なく HTML をパースできています。