Post

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

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

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


インストール方法

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

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

1
brew install pup

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

1
2
3
❯ pup --version
Password:
sudo: port: command not found

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

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

1
2
❯ which pup
pup: aliased to psu && puo

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

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

1
unalias pup

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

1
2
❯ which pup
/opt/homebrew/bin/pup

動作確認

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

1
2
3
4
5
❯ 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 をパースできています。

This post is licensed under CC BY 4.0 by the author.